From 743b0c3eb81cdacc541ef2246779a1edc8c63c6f Mon Sep 17 00:00:00 2001 From: Pino Toscano Date: Tue, 28 Jun 2022 06:56:45 +0100 Subject: [PATCH] Import kdiff3_1.9.6.orig.tar.xz [dgit import orig kdiff3_1.9.6.orig.tar.xz] --- .clang-format | 32 + .clang-tidy | 28 + .editorconfig | 8 + .gitignore | 31 + .gitlab-ci.yml | 4 + .gitlab-nonkde.yml | 35 + .kde-ci.yml | 16 + AUTHORS | 1 + CMakeLists.txt | 147 + COPYING | 340 ++ ChangeLog | 47 + INSTALL | 63 + LICENSES/BSD-2-Clause.txt | 22 + LICENSES/GPL-2.0-or-later.txt | 319 ++ LICENSES/MIT.txt | 19 + NEWS | 1 + README | 107 + diff_ext_for_kdiff3/.krazy | 1 + diff_ext_for_kdiff3/CMakeLists.txt | 28 + diff_ext_for_kdiff3/LICENSE | 25 + diff_ext_for_kdiff3/Messages.sh | 2 + diff_ext_for_kdiff3/README | 39 + diff_ext_for_kdiff3/class_factory.cpp | 74 + diff_ext_for_kdiff3/class_factory.h | 31 + diff_ext_for_kdiff3/diff_ext.cpp | 462 ++ diff_ext_for_kdiff3/diff_ext.h | 68 + diff_ext_for_kdiff3/diff_ext_for_kdiff3.def | 6 + diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc | 65 + .../diff_ext_for_kdiff3_msvc.def | 6 + diff_ext_for_kdiff3/server.cpp | 428 ++ diff_ext_for_kdiff3/server.h | 83 + doc/CMakeLists.txt | 5 + doc/en/CMakeLists.txt | 6 + doc/en/dirbrowser.png | Bin 0 -> 8900 bytes doc/en/dirmergebig.png | Bin 0 -> 39092 bytes doc/en/index.docbook | 2080 +++++++++ doc/en/iteminfo.png | Bin 0 -> 7407 bytes doc/en/letter_by_letter.png | Bin 0 -> 13020 bytes doc/en/man-kdiff3.1.docbook | 206 + doc/en/merge_current.png | Bin 0 -> 185 bytes doc/en/new.png | Bin 0 -> 255 bytes doc/en/open_dialog.png | Bin 0 -> 14153 bytes doc/en/screenshot_diff.png | Bin 0 -> 37326 bytes doc/en/screenshot_merge.png | Bin 0 -> 39051 bytes doc/en/triple_diff.png | Bin 0 -> 20910 bytes doc/en/white_space.png | Bin 0 -> 8210 bytes kdiff3fileitemactionplugin/CMakeLists.txt | 10 + kdiff3fileitemactionplugin/Messages.sh | 2 + .../kdiff3fileitemaction.cpp | 280 ++ .../kdiff3fileitemaction.h | 40 + .../kdiff3fileitemaction.json | 61 + logo.png | Bin 0 -> 2952 bytes po/ar/kdiff3.po | 3340 +++++++++++++ po/bg/kdiff3.po | 3733 +++++++++++++++ po/br/kdiff3.po | 3357 +++++++++++++ po/bs/kdiff3.po | 3725 +++++++++++++++ po/bs/kdiff3fileitemactionplugin.po | 124 + po/ca/diff_ext.po | 134 + po/ca/docs/kdiff3/index.docbook | 4008 ++++++++++++++++ po/ca/docs/kdiff3/man-kdiff3.1.docbook | 451 ++ po/ca/docs/kdiff3/open_dialog.png | Bin 0 -> 27189 bytes po/ca/kdiff3.po | 3622 ++++++++++++++ po/ca/kdiff3fileitemactionplugin.po | 107 + po/ca@valencia/diff_ext.po | 133 + po/ca@valencia/kdiff3.po | 3626 ++++++++++++++ po/ca@valencia/kdiff3fileitemactionplugin.po | 107 + po/cs/diff_ext.po | 128 + po/cs/kdiff3.po | 3561 ++++++++++++++ po/cs/kdiff3fileitemactionplugin.po | 92 + po/cy/kdiff3.po | 3333 +++++++++++++ po/da/kdiff3.po | 3725 +++++++++++++++ po/da/kdiff3fileitemactionplugin.po | 121 + po/de/diff_ext.po | 129 + po/de/docs/kdiff3/index.docbook | 4133 ++++++++++++++++ po/de/docs/kdiff3/man-kdiff3.1.docbook | 451 ++ po/de/kdiff3.po | 3636 +++++++++++++++ po/de/kdiff3fileitemactionplugin.po | 101 + po/el/diff_ext.po | 128 + po/el/kdiff3.po | 3625 ++++++++++++++ po/el/kdiff3fileitemactionplugin.po | 106 + po/en_GB/diff_ext.po | 128 + po/en_GB/kdiff3.po | 3561 ++++++++++++++ po/en_GB/kdiff3fileitemactionplugin.po | 101 + po/eo/kdiff3.po | 3349 +++++++++++++ po/es/diff_ext.po | 135 + po/es/docs/kdiff3/index.docbook | 2931 ++++++++++++ po/es/docs/kdiff3/man-kdiff3.1.docbook | 452 ++ po/es/kdiff3.po | 3639 +++++++++++++++ po/es/kdiff3fileitemactionplugin.po | 105 + po/et/diff_ext.po | 132 + po/et/kdiff3.po | 3567 ++++++++++++++ po/et/kdiff3fileitemactionplugin.po | 101 + po/eu/diff_ext.po | 133 + po/eu/kdiff3.po | 3603 ++++++++++++++ po/eu/kdiff3fileitemactionplugin.po | 106 + po/fi/diff_ext.po | 130 + po/fi/kdiff3.po | 3825 +++++++++++++++ po/fi/kdiff3fileitemactionplugin.po | 105 + po/fr/diff_ext.po | 131 + po/fr/kdiff3.po | 3660 +++++++++++++++ po/fr/kdiff3fileitemactionplugin.po | 113 + po/ga/kdiff3.po | 3340 +++++++++++++ po/ga/kdiff3fileitemactionplugin.po | 93 + po/gl/diff_ext.po | 131 + po/gl/kdiff3.po | 3720 +++++++++++++++ po/gl/kdiff3fileitemactionplugin.po | 114 + po/hi/kdiff3.po | 3381 ++++++++++++++ po/hne/kdiff3.po | 3409 ++++++++++++++ po/hr/kdiff3.po | 3308 +++++++++++++ po/hu/kdiff3.po | 3634 +++++++++++++++ po/hu/kdiff3fileitemactionplugin.po | 122 + po/ia/diff_ext.po | 129 + po/ia/kdiff3.po | 3311 +++++++++++++ po/ia/kdiff3fileitemactionplugin.po | 92 + po/it/diff_ext.po | 130 + po/it/docs/kdiff3/index.docbook | 4147 +++++++++++++++++ po/it/docs/kdiff3/man-kdiff3.1.docbook | 447 ++ po/it/kdiff3.po | 3609 ++++++++++++++ po/it/kdiff3fileitemactionplugin.po | 102 + po/ja/diff_ext.po | 125 + po/ja/kdiff3.po | 3653 +++++++++++++++ po/ja/kdiff3fileitemactionplugin.po | 89 + po/ka/kdiff3.po | 3573 ++++++++++++++ po/ko/diff_ext.po | 128 + po/ko/kdiff3.po | 3534 ++++++++++++++ po/ko/kdiff3fileitemactionplugin.po | 100 + po/lt/kdiff3.po | 3430 ++++++++++++++ po/lt/kdiff3fileitemactionplugin.po | 93 + po/mai/kdiff3.po | 3335 +++++++++++++ po/ml/kdiff3.po | 3468 ++++++++++++++ po/mr/kdiff3.po | 3323 +++++++++++++ po/mr/kdiff3fileitemactionplugin.po | 94 + po/nb/kdiff3.po | 3476 ++++++++++++++ po/nb/kdiff3fileitemactionplugin.po | 94 + po/nds/kdiff3.po | 3742 +++++++++++++++ po/nds/kdiff3fileitemactionplugin.po | 122 + po/nl/diff_ext.po | 130 + po/nl/docs/kdiff3/index.docbook | 3987 ++++++++++++++++ po/nl/docs/kdiff3/man-kdiff3.1.docbook | 447 ++ po/nl/kdiff3.po | 3613 ++++++++++++++ po/nl/kdiff3fileitemactionplugin.po | 104 + po/nn/kdiff3.po | 3315 +++++++++++++ po/nn/kdiff3fileitemactionplugin.po | 94 + po/pl/diff_ext.po | 130 + po/pl/kdiff3.po | 3608 ++++++++++++++ po/pl/kdiff3fileitemactionplugin.po | 103 + po/pt/diff_ext.po | 135 + po/pt/kdiff3.po | 3740 +++++++++++++++ po/pt/kdiff3fileitemactionplugin.po | 109 + po/pt_BR/diff_ext.po | 130 + po/pt_BR/kdiff3.po | 3619 ++++++++++++++ po/pt_BR/kdiff3fileitemactionplugin.po | 106 + po/ro/kdiff3.po | 3394 ++++++++++++++ po/ro/kdiff3fileitemactionplugin.po | 121 + po/ru/diff_ext.po | 129 + po/ru/kdiff3.po | 3739 +++++++++++++++ po/ru/kdiff3fileitemactionplugin.po | 107 + po/rw/kdiff3.po | 3421 ++++++++++++++ po/sk/diff_ext.po | 127 + po/sk/kdiff3.po | 3570 ++++++++++++++ po/sk/kdiff3fileitemactionplugin.po | 100 + po/sl/diff_ext.po | 130 + po/sl/kdiff3.po | 3580 ++++++++++++++ po/sl/kdiff3fileitemactionplugin.po | 105 + po/sr/kdiff3.po | 3594 ++++++++++++++ po/sr/kdiff3fileitemactionplugin.po | 124 + po/sr@ijekavian/kdiff3.po | 3594 ++++++++++++++ po/sr@ijekavian/kdiff3fileitemactionplugin.po | 124 + po/sr@ijekavianlatin/kdiff3.po | 3596 ++++++++++++++ .../kdiff3fileitemactionplugin.po | 125 + po/sr@latin/kdiff3.po | 3596 ++++++++++++++ po/sr@latin/kdiff3fileitemactionplugin.po | 125 + po/sv/diff_ext.po | 129 + po/sv/docs/kdiff3/index.docbook | 4059 ++++++++++++++++ po/sv/docs/kdiff3/man-kdiff3.1.docbook | 451 ++ po/sv/kdiff3.po | 3577 ++++++++++++++ po/sv/kdiff3fileitemactionplugin.po | 102 + po/ta/kdiff3.po | 3555 ++++++++++++++ po/tg/kdiff3.po | 3450 ++++++++++++++ po/tr/kdiff3.po | 3591 ++++++++++++++ po/ug/kdiff3.po | 3332 +++++++++++++ po/ug/kdiff3fileitemactionplugin.po | 94 + po/uk/diff_ext.po | 135 + po/uk/docs/kdiff3/index.docbook | 3803 +++++++++++++++ po/uk/docs/kdiff3/man-kdiff3.1.docbook | 451 ++ po/uk/kdiff3.po | 3590 ++++++++++++++ po/uk/kdiff3fileitemactionplugin.po | 104 + po/zh_CN/diff_ext.po | 133 + po/zh_CN/kdiff3.po | 3508 ++++++++++++++ po/zh_CN/kdiff3fileitemactionplugin.po | 103 + po/zh_TW/diff_ext.po | 130 + po/zh_TW/kdiff3.po | 3391 ++++++++++++++ po/zh_TW/kdiff3fileitemactionplugin.po | 110 + src/CMakeLists.txt | 103 + src/CommentParser.cpp | 174 + src/CommentParser.h | 71 + src/ConfigValueMap.h | 100 + src/CvsIgnoreList.h | 27 + src/DefaultFileAccessJobHandler.cpp | 447 ++ src/DefaultFileAccessJobHandler.h | 71 + src/DirectoryInfo.cpp | 40 + src/DirectoryInfo.h | 62 + src/FileAccessJobHandler.h | 74 + src/FileNameLineEdit.cpp | 44 + src/FileNameLineEdit.h | 20 + src/IgnoreList.h | 53 + src/LineRef.h | 93 + src/Logging.cpp | 13 + src/Logging.h | 17 + src/MacOSXBundleInfo.plist.in | 53 + src/MergeEditLine.cpp | 53 + src/MergeEditLine.h | 146 + src/MergeFileInfos.cpp | 577 +++ src/MergeFileInfos.h | 225 + src/Messages.sh | 3 + src/OptionItems.h | 178 + src/Options.cpp | 138 + src/Overview.cpp | 309 ++ src/Overview.h | 64 + src/PixMapUtils.cpp | 161 + src/PixMapUtils.h | 30 + src/ProgressProxyExtender.cpp | 23 + src/ProgressProxyExtender.h | 26 + src/RLPainter.h | 69 + src/SourceData.cpp | 855 ++++ src/SourceData.h | 127 + src/TypeUtils.h | 24 + src/UTF8BOMCodec.h | 54 + src/Utils.cpp | 182 + src/Utils.h | 55 + src/autotests/CMakeLists.txt | 39 + src/autotests/CvsIgnoreListTest.cpp | 133 + src/autotests/DiffTest.cpp | 100 + src/autotests/FileAccessJobHandlerMoc.h | 36 + src/autotests/FileAccessTest.cpp | 173 + src/autotests/MocIgnoreFile.h | 67 + src/autotests/combinertest.cpp | 132 + src/autotests/commentparser.cpp | 406 ++ src/autotests/connectiontest.cpp | 43 + src/combiners.h | 87 + src/common.cpp | 312 ++ src/common.h | 94 + src/defmac.h | 79 + src/diff.cpp | 1602 +++++++ src/diff.h | 578 +++ src/difftextwindow.cpp | 2137 +++++++++ src/difftextwindow.h | 218 + src/directorymergewindow.cpp | 3083 ++++++++++++ src/directorymergewindow.h | 170 + src/fileaccess.cpp | 1139 +++++ src/fileaccess.h | 200 + src/gnudiff_analyze.cpp | 838 ++++ src/gnudiff_diff.h | 214 + src/gnudiff_io.cpp | 535 +++ src/gnudiff_xmalloc.cpp | 70 + src/guiutils.h | 215 + src/icons/128-apps-kdiff3.png | Bin 0 -> 2952 bytes src/icons/16-apps-kdiff3.png | Bin 0 -> 653 bytes src/icons/22-apps-kdiff3.png | Bin 0 -> 925 bytes src/icons/256-apps-kdiff3.png | Bin 0 -> 4872 bytes src/icons/32-apps-kdiff3.png | Bin 0 -> 1335 bytes src/icons/48-apps-kdiff3.png | Bin 0 -> 1662 bytes src/icons/64-apps-kdiff3.png | Bin 0 -> 1904 bytes src/icons/CMakeLists.txt | 23 + src/icons/sc-apps-kdiff3.svgz | Bin 0 -> 1945 bytes src/ignorelist.cpp | 176 + src/kdiff3.cpp | 1098 +++++ src/kdiff3.h | 475 ++ src/kdiff3.ico | Bin 0 -> 16958 bytes src/kdiff3_part.cpp | 165 + src/kdiff3_part.h | 70 + src/kdiff3_part.rc | 24 + src/kdiff3_shell.cpp | 159 + src/kdiff3_shell.h | 71 + src/kdiff3_shell.rc | 128 + src/kdiff3win.rc | 1 + src/main.cpp | 197 + src/merger.cpp | 73 + src/merger.h | 52 + src/mergeresultwindow.cpp | 3324 +++++++++++++ src/mergeresultwindow.h | 324 ++ src/opendialog.ui | 323 ++ src/optiondialog.cpp | 1592 +++++++ src/optiondialog.h | 122 + src/options.h | 198 + src/org.kde.kdiff3.appdata.xml | 350 ++ src/org.kde.kdiff3.desktop | 137 + src/pdiff.cpp | 2164 +++++++++ src/progress.cpp | 712 +++ src/progress.h | 141 + src/scroller.ui | 41 + src/selection.cpp | 110 + src/selection.h | 85 + src/smalldialogs.cpp | 563 +++ src/smalldialogs.h | 159 + src/xpm/autoadvance.xpm | 25 + src/xpm/currentpos.xpm | 22 + src/xpm/down1arrow.xpm | 25 + src/xpm/down2arrow.xpm | 25 + src/xpm/downend.xpm | 22 + src/xpm/file.xpm | 24 + src/xpm/folder.xpm | 24 + src/xpm/iconA.xpm | 22 + src/xpm/iconB.xpm | 22 + src/xpm/iconC.xpm | 22 + src/xpm/link_arrow.xpm | 24 + src/xpm/nextunsolved.xpm | 23 + src/xpm/prevunsolved.xpm | 23 + src/xpm/showequalfiles.xpm | 23 + src/xpm/showfilesonlyina.xpm | 23 + src/xpm/showfilesonlyinb.xpm | 23 + src/xpm/showfilesonlyinc.xpm | 22 + src/xpm/showlinenumbers.xpm | 21 + src/xpm/showwhitespace.xpm | 22 + src/xpm/showwhitespacechars.xpm | 21 + src/xpm/startmerge.xpm | 25 + src/xpm/up1arrow.xpm | 22 + src/xpm/up2arrow.xpm | 25 + src/xpm/upend.xpm | 22 + test/alignmenttest.cpp | 495 ++ test/fakefileaccess.cpp | 102 + test/fakekdiff3_part.cpp | 13 + test/fakeprogressproxy.cpp | 95 + test/generate_testdata_from_git_merges.py | 91 + test/generate_testdata_from_permutations.py | 107 + test/testdata/1_simpletest_base.txt | 2 + test/testdata/1_simpletest_contrib1.txt | 6 + test/testdata/1_simpletest_contrib2.txt | 5 + .../testdata/1_simpletest_expected_result.txt | 7 + ...er_identical_to_space_differences_base.txt | 2 + ...dentical_to_space_differences_contrib1.txt | 3 + ...dentical_to_space_differences_contrib2.txt | 3 + ...l_to_space_differences_expected_result.txt | 4 + test/testdata/README | 43 + windows_installer/COPYING.txt | 323 ++ windows_installer/DIFF-EXT-LICENSE.txt | 25 + windows_installer/Kdiff3-64bit.nsi | 3 + windows_installer/README | 9 + windows_installer/README_WIN.txt | 123 + windows_installer/diff3_cmd.bat | 36 + windows_installer/installForAllUsersPage.ini | 19 + windows_installer/kdiff3.bmp | 0 windows_installer/kdiff3.nsi | 515 ++ 343 files changed, 278239 insertions(+) create mode 100644 .clang-format create mode 100644 .clang-tidy create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 .gitlab-nonkde.yml create mode 100644 .kde-ci.yml create mode 100644 AUTHORS create mode 100644 CMakeLists.txt create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 LICENSES/BSD-2-Clause.txt create mode 100644 LICENSES/GPL-2.0-or-later.txt create mode 100644 LICENSES/MIT.txt create mode 100644 NEWS create mode 100644 README create mode 100644 diff_ext_for_kdiff3/.krazy create mode 100644 diff_ext_for_kdiff3/CMakeLists.txt create mode 100644 diff_ext_for_kdiff3/LICENSE create mode 100644 diff_ext_for_kdiff3/Messages.sh create mode 100644 diff_ext_for_kdiff3/README create mode 100644 diff_ext_for_kdiff3/class_factory.cpp create mode 100644 diff_ext_for_kdiff3/class_factory.h create mode 100644 diff_ext_for_kdiff3/diff_ext.cpp create mode 100644 diff_ext_for_kdiff3/diff_ext.h create mode 100644 diff_ext_for_kdiff3/diff_ext_for_kdiff3.def create mode 100644 diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc create mode 100644 diff_ext_for_kdiff3/diff_ext_for_kdiff3_msvc.def create mode 100644 diff_ext_for_kdiff3/server.cpp create mode 100644 diff_ext_for_kdiff3/server.h create mode 100644 doc/CMakeLists.txt create mode 100644 doc/en/CMakeLists.txt create mode 100644 doc/en/dirbrowser.png create mode 100644 doc/en/dirmergebig.png create mode 100644 doc/en/index.docbook create mode 100644 doc/en/iteminfo.png create mode 100644 doc/en/letter_by_letter.png create mode 100644 doc/en/man-kdiff3.1.docbook create mode 100644 doc/en/merge_current.png create mode 100644 doc/en/new.png create mode 100644 doc/en/open_dialog.png create mode 100644 doc/en/screenshot_diff.png create mode 100644 doc/en/screenshot_merge.png create mode 100644 doc/en/triple_diff.png create mode 100644 doc/en/white_space.png create mode 100644 kdiff3fileitemactionplugin/CMakeLists.txt create mode 100644 kdiff3fileitemactionplugin/Messages.sh create mode 100644 kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp create mode 100644 kdiff3fileitemactionplugin/kdiff3fileitemaction.h create mode 100644 kdiff3fileitemactionplugin/kdiff3fileitemaction.json create mode 100644 logo.png create mode 100644 po/ar/kdiff3.po create mode 100644 po/bg/kdiff3.po create mode 100644 po/br/kdiff3.po create mode 100644 po/bs/kdiff3.po create mode 100644 po/bs/kdiff3fileitemactionplugin.po create mode 100644 po/ca/diff_ext.po create mode 100644 po/ca/docs/kdiff3/index.docbook create mode 100644 po/ca/docs/kdiff3/man-kdiff3.1.docbook create mode 100644 po/ca/docs/kdiff3/open_dialog.png create mode 100644 po/ca/kdiff3.po create mode 100644 po/ca/kdiff3fileitemactionplugin.po create mode 100644 po/ca@valencia/diff_ext.po create mode 100644 po/ca@valencia/kdiff3.po create mode 100644 po/ca@valencia/kdiff3fileitemactionplugin.po create mode 100644 po/cs/diff_ext.po create mode 100644 po/cs/kdiff3.po create mode 100644 po/cs/kdiff3fileitemactionplugin.po create mode 100644 po/cy/kdiff3.po create mode 100644 po/da/kdiff3.po create mode 100644 po/da/kdiff3fileitemactionplugin.po create mode 100644 po/de/diff_ext.po create mode 100644 po/de/docs/kdiff3/index.docbook create mode 100644 po/de/docs/kdiff3/man-kdiff3.1.docbook create mode 100644 po/de/kdiff3.po create mode 100644 po/de/kdiff3fileitemactionplugin.po create mode 100644 po/el/diff_ext.po create mode 100644 po/el/kdiff3.po create mode 100644 po/el/kdiff3fileitemactionplugin.po create mode 100644 po/en_GB/diff_ext.po create mode 100644 po/en_GB/kdiff3.po create mode 100644 po/en_GB/kdiff3fileitemactionplugin.po create mode 100644 po/eo/kdiff3.po create mode 100644 po/es/diff_ext.po create mode 100644 po/es/docs/kdiff3/index.docbook create mode 100644 po/es/docs/kdiff3/man-kdiff3.1.docbook create mode 100644 po/es/kdiff3.po create mode 100644 po/es/kdiff3fileitemactionplugin.po create mode 100644 po/et/diff_ext.po create mode 100644 po/et/kdiff3.po create mode 100644 po/et/kdiff3fileitemactionplugin.po create mode 100644 po/eu/diff_ext.po create mode 100644 po/eu/kdiff3.po create mode 100644 po/eu/kdiff3fileitemactionplugin.po create mode 100644 po/fi/diff_ext.po create mode 100644 po/fi/kdiff3.po create mode 100644 po/fi/kdiff3fileitemactionplugin.po create mode 100644 po/fr/diff_ext.po create mode 100644 po/fr/kdiff3.po create mode 100644 po/fr/kdiff3fileitemactionplugin.po create mode 100644 po/ga/kdiff3.po create mode 100644 po/ga/kdiff3fileitemactionplugin.po create mode 100644 po/gl/diff_ext.po create mode 100644 po/gl/kdiff3.po create mode 100644 po/gl/kdiff3fileitemactionplugin.po create mode 100644 po/hi/kdiff3.po create mode 100644 po/hne/kdiff3.po create mode 100644 po/hr/kdiff3.po create mode 100644 po/hu/kdiff3.po create mode 100644 po/hu/kdiff3fileitemactionplugin.po create mode 100644 po/ia/diff_ext.po create mode 100644 po/ia/kdiff3.po create mode 100644 po/ia/kdiff3fileitemactionplugin.po create mode 100644 po/it/diff_ext.po create mode 100644 po/it/docs/kdiff3/index.docbook create mode 100644 po/it/docs/kdiff3/man-kdiff3.1.docbook create mode 100644 po/it/kdiff3.po create mode 100644 po/it/kdiff3fileitemactionplugin.po create mode 100644 po/ja/diff_ext.po create mode 100644 po/ja/kdiff3.po create mode 100644 po/ja/kdiff3fileitemactionplugin.po create mode 100644 po/ka/kdiff3.po create mode 100644 po/ko/diff_ext.po create mode 100644 po/ko/kdiff3.po create mode 100644 po/ko/kdiff3fileitemactionplugin.po create mode 100644 po/lt/kdiff3.po create mode 100644 po/lt/kdiff3fileitemactionplugin.po create mode 100644 po/mai/kdiff3.po create mode 100644 po/ml/kdiff3.po create mode 100644 po/mr/kdiff3.po create mode 100644 po/mr/kdiff3fileitemactionplugin.po create mode 100644 po/nb/kdiff3.po create mode 100644 po/nb/kdiff3fileitemactionplugin.po create mode 100644 po/nds/kdiff3.po create mode 100644 po/nds/kdiff3fileitemactionplugin.po create mode 100644 po/nl/diff_ext.po create mode 100644 po/nl/docs/kdiff3/index.docbook create mode 100644 po/nl/docs/kdiff3/man-kdiff3.1.docbook create mode 100644 po/nl/kdiff3.po create mode 100644 po/nl/kdiff3fileitemactionplugin.po create mode 100644 po/nn/kdiff3.po create mode 100644 po/nn/kdiff3fileitemactionplugin.po create mode 100644 po/pl/diff_ext.po create mode 100644 po/pl/kdiff3.po create mode 100644 po/pl/kdiff3fileitemactionplugin.po create mode 100644 po/pt/diff_ext.po create mode 100644 po/pt/kdiff3.po create mode 100644 po/pt/kdiff3fileitemactionplugin.po create mode 100644 po/pt_BR/diff_ext.po create mode 100644 po/pt_BR/kdiff3.po create mode 100644 po/pt_BR/kdiff3fileitemactionplugin.po create mode 100644 po/ro/kdiff3.po create mode 100644 po/ro/kdiff3fileitemactionplugin.po create mode 100644 po/ru/diff_ext.po create mode 100644 po/ru/kdiff3.po create mode 100644 po/ru/kdiff3fileitemactionplugin.po create mode 100644 po/rw/kdiff3.po create mode 100644 po/sk/diff_ext.po create mode 100644 po/sk/kdiff3.po create mode 100644 po/sk/kdiff3fileitemactionplugin.po create mode 100644 po/sl/diff_ext.po create mode 100644 po/sl/kdiff3.po create mode 100644 po/sl/kdiff3fileitemactionplugin.po create mode 100644 po/sr/kdiff3.po create mode 100644 po/sr/kdiff3fileitemactionplugin.po create mode 100644 po/sr@ijekavian/kdiff3.po create mode 100644 po/sr@ijekavian/kdiff3fileitemactionplugin.po create mode 100644 po/sr@ijekavianlatin/kdiff3.po create mode 100644 po/sr@ijekavianlatin/kdiff3fileitemactionplugin.po create mode 100644 po/sr@latin/kdiff3.po create mode 100644 po/sr@latin/kdiff3fileitemactionplugin.po create mode 100644 po/sv/diff_ext.po create mode 100644 po/sv/docs/kdiff3/index.docbook create mode 100644 po/sv/docs/kdiff3/man-kdiff3.1.docbook create mode 100644 po/sv/kdiff3.po create mode 100644 po/sv/kdiff3fileitemactionplugin.po create mode 100644 po/ta/kdiff3.po create mode 100644 po/tg/kdiff3.po create mode 100644 po/tr/kdiff3.po create mode 100644 po/ug/kdiff3.po create mode 100644 po/ug/kdiff3fileitemactionplugin.po create mode 100644 po/uk/diff_ext.po create mode 100644 po/uk/docs/kdiff3/index.docbook create mode 100644 po/uk/docs/kdiff3/man-kdiff3.1.docbook create mode 100644 po/uk/kdiff3.po create mode 100644 po/uk/kdiff3fileitemactionplugin.po create mode 100644 po/zh_CN/diff_ext.po create mode 100644 po/zh_CN/kdiff3.po create mode 100644 po/zh_CN/kdiff3fileitemactionplugin.po create mode 100644 po/zh_TW/diff_ext.po create mode 100644 po/zh_TW/kdiff3.po create mode 100644 po/zh_TW/kdiff3fileitemactionplugin.po create mode 100644 src/CMakeLists.txt create mode 100644 src/CommentParser.cpp create mode 100644 src/CommentParser.h create mode 100644 src/ConfigValueMap.h create mode 100644 src/CvsIgnoreList.h create mode 100644 src/DefaultFileAccessJobHandler.cpp create mode 100644 src/DefaultFileAccessJobHandler.h create mode 100644 src/DirectoryInfo.cpp create mode 100644 src/DirectoryInfo.h create mode 100644 src/FileAccessJobHandler.h create mode 100644 src/FileNameLineEdit.cpp create mode 100644 src/FileNameLineEdit.h create mode 100644 src/IgnoreList.h create mode 100644 src/LineRef.h create mode 100644 src/Logging.cpp create mode 100644 src/Logging.h create mode 100644 src/MacOSXBundleInfo.plist.in create mode 100644 src/MergeEditLine.cpp create mode 100644 src/MergeEditLine.h create mode 100644 src/MergeFileInfos.cpp create mode 100644 src/MergeFileInfos.h create mode 100644 src/Messages.sh create mode 100644 src/OptionItems.h create mode 100644 src/Options.cpp create mode 100644 src/Overview.cpp create mode 100644 src/Overview.h create mode 100644 src/PixMapUtils.cpp create mode 100644 src/PixMapUtils.h create mode 100644 src/ProgressProxyExtender.cpp create mode 100644 src/ProgressProxyExtender.h create mode 100644 src/RLPainter.h create mode 100644 src/SourceData.cpp create mode 100644 src/SourceData.h create mode 100644 src/TypeUtils.h create mode 100644 src/UTF8BOMCodec.h create mode 100644 src/Utils.cpp create mode 100644 src/Utils.h create mode 100644 src/autotests/CMakeLists.txt create mode 100644 src/autotests/CvsIgnoreListTest.cpp create mode 100644 src/autotests/DiffTest.cpp create mode 100644 src/autotests/FileAccessJobHandlerMoc.h create mode 100644 src/autotests/FileAccessTest.cpp create mode 100644 src/autotests/MocIgnoreFile.h create mode 100644 src/autotests/combinertest.cpp create mode 100644 src/autotests/commentparser.cpp create mode 100644 src/autotests/connectiontest.cpp create mode 100644 src/combiners.h create mode 100644 src/common.cpp create mode 100644 src/common.h create mode 100644 src/defmac.h create mode 100644 src/diff.cpp create mode 100644 src/diff.h create mode 100644 src/difftextwindow.cpp create mode 100644 src/difftextwindow.h create mode 100644 src/directorymergewindow.cpp create mode 100644 src/directorymergewindow.h create mode 100644 src/fileaccess.cpp create mode 100644 src/fileaccess.h create mode 100644 src/gnudiff_analyze.cpp create mode 100644 src/gnudiff_diff.h create mode 100644 src/gnudiff_io.cpp create mode 100644 src/gnudiff_xmalloc.cpp create mode 100644 src/guiutils.h create mode 100644 src/icons/128-apps-kdiff3.png create mode 100644 src/icons/16-apps-kdiff3.png create mode 100644 src/icons/22-apps-kdiff3.png create mode 100644 src/icons/256-apps-kdiff3.png create mode 100644 src/icons/32-apps-kdiff3.png create mode 100644 src/icons/48-apps-kdiff3.png create mode 100644 src/icons/64-apps-kdiff3.png create mode 100644 src/icons/CMakeLists.txt create mode 100644 src/icons/sc-apps-kdiff3.svgz create mode 100644 src/ignorelist.cpp create mode 100644 src/kdiff3.cpp create mode 100644 src/kdiff3.h create mode 100644 src/kdiff3.ico create mode 100644 src/kdiff3_part.cpp create mode 100644 src/kdiff3_part.h create mode 100644 src/kdiff3_part.rc create mode 100644 src/kdiff3_shell.cpp create mode 100644 src/kdiff3_shell.h create mode 100644 src/kdiff3_shell.rc create mode 100644 src/kdiff3win.rc create mode 100644 src/main.cpp create mode 100644 src/merger.cpp create mode 100644 src/merger.h create mode 100644 src/mergeresultwindow.cpp create mode 100644 src/mergeresultwindow.h create mode 100644 src/opendialog.ui create mode 100644 src/optiondialog.cpp create mode 100644 src/optiondialog.h create mode 100644 src/options.h create mode 100644 src/org.kde.kdiff3.appdata.xml create mode 100755 src/org.kde.kdiff3.desktop create mode 100644 src/pdiff.cpp create mode 100644 src/progress.cpp create mode 100644 src/progress.h create mode 100644 src/scroller.ui create mode 100644 src/selection.cpp create mode 100644 src/selection.h create mode 100644 src/smalldialogs.cpp create mode 100644 src/smalldialogs.h create mode 100644 src/xpm/autoadvance.xpm create mode 100644 src/xpm/currentpos.xpm create mode 100644 src/xpm/down1arrow.xpm create mode 100644 src/xpm/down2arrow.xpm create mode 100644 src/xpm/downend.xpm create mode 100644 src/xpm/file.xpm create mode 100644 src/xpm/folder.xpm create mode 100644 src/xpm/iconA.xpm create mode 100644 src/xpm/iconB.xpm create mode 100644 src/xpm/iconC.xpm create mode 100644 src/xpm/link_arrow.xpm create mode 100644 src/xpm/nextunsolved.xpm create mode 100644 src/xpm/prevunsolved.xpm create mode 100644 src/xpm/showequalfiles.xpm create mode 100644 src/xpm/showfilesonlyina.xpm create mode 100644 src/xpm/showfilesonlyinb.xpm create mode 100644 src/xpm/showfilesonlyinc.xpm create mode 100644 src/xpm/showlinenumbers.xpm create mode 100644 src/xpm/showwhitespace.xpm create mode 100644 src/xpm/showwhitespacechars.xpm create mode 100644 src/xpm/startmerge.xpm create mode 100644 src/xpm/up1arrow.xpm create mode 100644 src/xpm/up2arrow.xpm create mode 100644 src/xpm/upend.xpm create mode 100644 test/alignmenttest.cpp create mode 100644 test/fakefileaccess.cpp create mode 100644 test/fakekdiff3_part.cpp create mode 100644 test/fakeprogressproxy.cpp create mode 100755 test/generate_testdata_from_git_merges.py create mode 100755 test/generate_testdata_from_permutations.py create mode 100644 test/testdata/1_simpletest_base.txt create mode 100644 test/testdata/1_simpletest_contrib1.txt create mode 100644 test/testdata/1_simpletest_contrib2.txt create mode 100644 test/testdata/1_simpletest_expected_result.txt create mode 100644 test/testdata/2_prefer_identical_to_space_differences_base.txt create mode 100644 test/testdata/2_prefer_identical_to_space_differences_contrib1.txt create mode 100644 test/testdata/2_prefer_identical_to_space_differences_contrib2.txt create mode 100644 test/testdata/2_prefer_identical_to_space_differences_expected_result.txt create mode 100644 test/testdata/README create mode 100644 windows_installer/COPYING.txt create mode 100644 windows_installer/DIFF-EXT-LICENSE.txt create mode 100644 windows_installer/Kdiff3-64bit.nsi create mode 100644 windows_installer/README create mode 100644 windows_installer/README_WIN.txt create mode 100644 windows_installer/diff3_cmd.bat create mode 100644 windows_installer/installForAllUsersPage.ini create mode 100644 windows_installer/kdiff3.bmp create mode 100644 windows_installer/kdiff3.nsi diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..4013bfc --- /dev/null +++ b/.clang-format @@ -0,0 +1,32 @@ +--- +Language: Cpp +BasedOnStyle: LLVM +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: Never +SpaceInEmptyParentheses: false +SpacesInCStyleCastParentheses: false +IndentCaseLabels: true +IndentWidth: 4 +TabWidth: 4 +UseTab: Never +AllowShortFunctionsOnASingleLine: Inline +AllowShortBlocksOnASingleLine: true +AllowShortIfStatementsOnASingleLine: true +AllowShortCaseLabelsOnASingleLine: false +AllowShortLoopsOnASingleLine: true +ColumnLimit: 0 +DerivePointerAlignment: true +PointerAlignment: Left +BreakBeforeBraces: Custom +BraceWrapping: + AfterClass: true + AfterControlStatement: true + AfterEnum: true + AfterFunction: true + AfterNamespace: false + AfterStruct: false + AfterUnion: false + BeforeCatch: true + BeforeElse: true + IndentBraces: false +... diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..548479d --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,28 @@ +--- +Checks: '-clang-analyzer-optin.cplusplus.VirtualCall,-clang-analyzer-optin.performance.Padding' +WarningsAsErrors: '' +HeaderFilterRegex: '.*' +AnalyzeTemporaryDtors: false +CheckOptions: + - key: google-readability-braces-around-statements.ShortStatementLines + value: '1' + - key: google-readability-function-size.StatementThreshold + value: '800' + - key: google-readability-namespace-comments.ShortNamespaceLines + value: '10' + - key: google-readability-namespace-comments.SpacesBeforeComments + value: '2' + - key: modernize-loop-convert.MaxCopySize + value: '16' + - key: modernize-loop-convert.MinConfidence + value: reasonable + - key: modernize-loop-convert.NamingStyle + value: CamelCase + - key: modernize-pass-by-value.IncludeStyle + value: llvm + - key: modernize-replace-auto-ptr.IncludeStyle + value: llvm + - key: modernize-use-nullptr.NullMacros + value: 'NULL' +... + diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f9366fa --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f0b2112 --- /dev/null +++ b/.gitignore @@ -0,0 +1,31 @@ +# general +apidocs +.directory +.kdev4 +build +*~ +*.patch +*.diff +*.bak +*.orig +*.pyc +*.rej +*.swp +doxygen.log +Doxyfile +*.kdevelop +*.kdevelop.filelist +*.kdevelop.pcs +*.kdevses +.*kate-swp +build/ +mem.log.* +massif.* +callgrind.* +perf.data* + +# from kdiff3 +*.BACKUP.* +*.BASE.* +*.LOCAL.* +*.REMOTE.* diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..25662fa --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,4 @@ +# windows is currently unsupport at invent.kde.org. Will be activated when ready +include: + - https://invent.kde.org/sysadmin/ci-utilities/-/raw/master/gitlab-templates/linux.yml + - https://invent.kde.org/sysadmin/ci-utilities/-/raw/master/gitlab-templates/freebsd.yml diff --git a/.gitlab-nonkde.yml b/.gitlab-nonkde.yml new file mode 100644 index 0000000..5c500e1 --- /dev/null +++ b/.gitlab-nonkde.yml @@ -0,0 +1,35 @@ +stages: + - build + - test + +build_ubuntu_20_04: + stage: build + image: reporter123/kdiff3env:groovy + #before_script: + # - apt-get update + # - apt-get install -y libqt5test5 gettext qtbase5-dev extra-cmake-modules libkf5i18n-dev libkf5coreaddons-dev libkf5iconthemes-dev libkf5parts-dev libkf5doctools-dev libkf5crash-dev libboost-dev + script: + - cmake -DBUILD_TESTING=YES . + - make + artifacts: + untracked: true + retry: + max: 2 + when: + - runner_system_failure + - stuck_or_timeout_failure + +ubuntu_20_04_test: + stage: test + needs: ["build_ubuntu_20_04"] + image: reporter123/kdiff3env:groovy +# before_script: +# - apt-get update +# - apt-get install -y libqt5test5 + script: + - make ARGS="-V -E appstreamtest" test #exclude appstreamtest this does not run properly in my #image + retry: + max: 2 + when: + - runner_system_failure + - stuck_or_timeout_failure diff --git a/.kde-ci.yml b/.kde-ci.yml new file mode 100644 index 0000000..bab9164 --- /dev/null +++ b/.kde-ci.yml @@ -0,0 +1,16 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 + +Dependencies: +- 'on': ['Linux', 'FreeBSD', 'Windows'] + 'require': + 'frameworks/extra-cmake-modules': '@stable' + 'frameworks/kconfig': '@stable' + 'frameworks/kcoreaddons': '@stable' + 'frameworks/kcrash': '@stable' + 'frameworks/kdoctools': '@stable' + 'frameworks/ki18n': '@stable' + 'frameworks/kio': '@stable' + 'frameworks/kparts': '@stable' + 'frameworks/kwidgetsaddons': '@stable' + 'frameworks/kxmlgui': '@stable' diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..e4781f1 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Joachim Eibl diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0c90661 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,147 @@ +# SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de +# SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com +# SPDX-License-Identifier: GPL-2.0-or-later + +#cmake < 3.1 has no sane way of checking C++11 features and needed flags +#need at least 3.8 for cxx_std_11. +cmake_minimum_required(VERSION 3.8 FATAL_ERROR) + +project(kdiff3) + +set(CMAKE_CXX_EXTENSIONS ON ) #disable trigraphs in clang/gcc -- officially removed in c++17 +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(ECM_MIN_VERSION "5.10.0") +set(QT_MIN_VERSION "5.8.0") +#KF5 5.27 fixes a crash bug triggered on exit. +set(KF5_MIN_VERSION "5.37.0") + +find_package(ECM ${ECM_MIN_VERSION} CONFIG REQUIRED) +set( + CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + ${ECM_MODULE_PATH} +) + +include(KDEInstallDirs) +include(KDECompilerSettings NO_POLICY_SCOPE) +include(KDECMakeSettings NO_POLICY_SCOPE) +include(FeatureSummary) + +include(ECMInstallIcons) +include(ECMAddAppIcon) +include(ECMSetupVersion) +include(ECMAddTests) + +ecm_setup_version(1.9.6 VARIABLE_PREFIX KDIFF3 VERSION_HEADER ${CMAKE_BINARY_DIR}/src/version.h) + +# Some older versions on boost contain a bug that prevents compiling gcc offers a built-in workaround +# but that isn't enough to ship as clang has no such workaround. 1.65 is known to be affected. +find_package(Boost 1.66 REQUIRED) + +#needed on craft and possiablely other custom setups. +include_directories(${Boost_INCLUDE_DIRS}) + +find_package( + Qt5 ${QT_MIN_VERSION} + CONFIG + REQUIRED + COMPONENTS + Core + Gui + Widgets + PrintSupport +) + +find_package( + KF5 ${KF5_MIN_VERSION} + REQUIRED + COMPONENTS + I18n + CoreAddons + Crash + OPTIONAL_COMPONENTS + DocTools +) + +set_package_properties(KF5DocTools PROPERTIES PURPOSE "Allows generating and installing docs.") + +option(ENABLE_AUTO "Enable kdiff3's '--auto' flag" ON) +option(ENABLE_CLANG_TIDY "Run clang-tidy if available and cmake version >=3.6" OFF) + +set(KDiff3_LIBRARIES ${Qt5PrintSupport_LIBRARIES} KF5::I18n KF5::CoreAddons ) + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + #Adjust clang specific warnings + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wshadow") + set(CLANG_WARNING_FLAGS "-Wno-undef -Wno-trigraphs -Wno-invalid-pp-token -Wno-comment -Wshorten-64-to-32 -Wstring-conversion -Wc++11-narrowing -fstack-protector-all") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CLANG_WARNING_FLAGS}") +elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + add_compile_options("/EHs") + add_definitions(-DNOMINMAX) #Suppress MSVCs min/max macros +elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-check") + endif() + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-trigraphs -Wduplicated-cond -Wduplicated-branches -Wshadow") + endif() +endif() + +#new in cmake 3.6+ integrate clang-tidy +if(ENABLE_CLANG_TIDY) + find_program(CLANG_TIDY_EXE NAMES "clang-tidy" "clang-tidy-7" "clang-tidy-6.0" "clang-tidy-6" DOC "Path to clang-tidy executable") + if(NOT CLANG_TIDY_EXE) + message(STATUS "clang-tidy not found disabling integration.") + else() + message(STATUS "Found clang-tidy: ${CLANG_TIDY_EXE}") + set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE}" "-header-filter=.*") + endif() +endif() + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}") + +set( + needed_features + cxx_std_11 +) + +if(ENABLE_AUTO) + add_definitions( + -DENABLE_AUTO + ) +endif() + +add_definitions( + -DQT_DEPRECATED_WARNINGS #Get warnings from QT about deprecated functions. + -DQT_NO_URL_CAST_FROM_STRING # casting from string to url does not always behave as you might think + -DQT_RESTRICTED_CAST_FROM_ASCII #casting from char*/QByteArray to QString can produce unexpected results for non-latin characters. + -DQT_NO_KEYWORDS + -DQT_NO_CAST_TO_ASCII + -DQT_NO_PROCESS_COMBINED_ARGUMENT_START + -DQT_DISABLE_DEPRECATED_BEFORE=0x050800#disable deprecated api for Qt<5.8. + #Boost 1.74 and possibly others trigger these warnings in boosts own internal headers making + #the warning useless. + -DBOOST_ALLOW_DEPRECATED_HEADERS + #KF5 5.64+ flags + #Don't warn for API depreciated after 5.36.0 (below as hex.hex.hex number) + -DKF_DEPRECATED_WARNINGS_SINCE=0x052400 + -DKIOCORE_DEPRECATED_WARNINGS_SINCE=0x052400 +) + +add_subdirectory(src) +if(KF5DocTools_FOUND) + add_subdirectory(doc) + kdoctools_install(po) +else() + message(WARNING "DocTools not found.") +endif() + +ki18n_install(po) + +add_subdirectory(kdiff3fileitemactionplugin) + +if(WIN32) +add_subdirectory(diff_ext_for_kdiff3) +endif() + +feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..a3e6345 --- /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 02111-1307 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. + + + Copyright (C) + + 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 + + +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. + + , 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/ChangeLog b/ChangeLog new file mode 100644 index 0000000..86f66f6 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,47 @@ +Version 1.9.6 - 2022-6-23 +=========================== +*BUG:428759 -Fix horizontal scroll to be by character not pixels +*BUG:444636 - Update window when ending selection mode. + +Version 1.9.5 - 2022-2-23 +=========================== +*Attempt encoding detection for non-BOM UTF-8 +*BUG:448353,450225 Rewrite EOL detection + -fixes speed regression. + -Better EOL detection decoding handled by Qt + +Version 1.9.4 - 2021-11-17 +=========================== +*Fix windows style cr/lf line ending handling +*Fix race on exit if qt sends QApplication::focusChanged during teardown. + +Version 1.9.3 - 2021-7-15 +=========================== +*Fix multiple regressions in file comparison. +*Fix trailing EOL stripped. +*Fix arbitrary line insertion during merge. + --Appears to pre-date 1.9 refactoring but was not reported on 1.8 branch + +Version 1.9.2 - 2021-5-13 +=========================== +*Hotfix for Bug 436958 + +Version 1.9 - 2021-4-28 +=========================== +*Rewrite of SourceData::FileData::preprocess now only loops through file contents once. +*Major rework of event handling + -Move away from event filters where feasible, drop code for events now handled by qt. + -decentralize handlers +*take advantage of Qt and boost signal/slot pattern to avoid needless nullptr checks. + -decentralize cut/paste handling +*Introduce LineRef wrapper class +*Add enum types and use existing ones. + -improves readability of code. +*split out doDirectoryCompare from improveFilenames + -Principle of least surprise +*Stop mis-using c style [] pointer access there is no documented reason to assume QVector has a + c-style memory layout. Much less that this will remain so. + +Not even going to try to list everything here. + +See git history for complete log. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..2f63898 --- /dev/null +++ b/INSTALL @@ -0,0 +1,63 @@ +Building KDiff3 requires the fallowing minimum versions: + 1)Qt 5.8 or later + 2)KF5 5.37+ + 3)CMake 3.1 + 4)ECM 1.8 + 5)boost 1.66+ + Support compilers: + 6)MSVC 2015+, gcc 5.0+, clang 3.3+ + +*nix: + +On debian based systems you needed to install the fallowing. +gettext, qtbase5-dev, extra-cmake-modules, libboost-dev, libkf5i18n-dev, libkf5coreaddons-dev, libkf5iconthemes-dev libkf5parts-dev, libkf5doctools-dev, libkf5crash-dev, cmake, (gcc or clang) +These should available as part of the standard repos. +To build KDiff3 run: + cmake . && make + sudo make install +cmake will automatically verify that the requirements are met before attempting to build. + +Windows: + +For windows the build should be done via. craft. Although other methods may work they are not +tested. + +Craft requires python 3.6 or later to be installed it can be downloaded here: +https://www.python.org/downloads/windows/ +This should be automatically installed by craft. + +You will also need to start a power shell environment as administrator instruction for that are at: +https://docs.microsoft.com/en-us/powershell/scripting/getting-started/starting-windows-powershell?view=powershell-6 + +On Windows 10 this will be the default shell. +Run the following: +1)Set-ExecutionPolicy -Scope CurrentUser RemoteSigned +2)iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/KDE/craft/master/setup/install_craft.ps1')) + +You may also have to exempt your craft directory from virus scans as these can interfere with the build process. + +1)cd to your craft root +Run: +2)C:\CraftRoot\craft\craftenv.ps1 +3)craft png2ico +4)craft kdiff3 +If you what to build 1.9x than use: +4) craft --target 1.9 kdiff3 + +Otherwise craft will use master which is the development branch and therefor more likely to experience breakage. + +At this point you can run kdiff3 itself via the following: +cb kdiff3 +bin/kdiff3 + +If you want to create an install package you would run: +5)craft nsis + +6)craft --package kdiff3 or craft --target 1.9 --package kdiff3 + +This will be a time consuming process on first run as craft will have to download all dependencies. +KDiff3 does not require special configuration for craft. + +There should be an installer package generated in CraftRoot/tmp + +Please contact kde-windows@kde.org before filing a bug report regarding this process. diff --git a/LICENSES/BSD-2-Clause.txt b/LICENSES/BSD-2-Clause.txt new file mode 100644 index 0000000..2d2bab1 --- /dev/null +++ b/LICENSES/BSD-2-Clause.txt @@ -0,0 +1,22 @@ +Copyright (c) . All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES/GPL-2.0-or-later.txt b/LICENSES/GPL-2.0-or-later.txt new file mode 100644 index 0000000..1d80ac3 --- /dev/null +++ b/LICENSES/GPL-2.0-or-later.txt @@ -0,0 +1,319 @@ +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 Lesser 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. + +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. + + + +Copyright (C) + +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. + +, 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 Lesser General Public License instead +of this License. diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 0000000..204b93d --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,19 @@ +MIT License Copyright (c) + +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 (including the next +paragraph) 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. diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..203ae39 --- /dev/null +++ b/NEWS @@ -0,0 +1 @@ +See the ChangeLog diff --git a/README b/README new file mode 100644 index 0000000..b23e33a --- /dev/null +++ b/README @@ -0,0 +1,107 @@ +KDiff3-Readme +============= + +Author: Joachim Eibl (joachim.eibl at gmx.de) +Port to KF5/Qt5 by Michael Reeves (reeves.87@gmail.com) +KDiff3-Version: 1.9.5 + +Now requires Qt 5.8 or later and KF5 5.37+. Legacy 0.9.98 and earlier builds are not supported. +MacOS X build is 64-bit only unfortunately I can't test build locally. The Konqueror specific plug-in +is not ported and no longer maintained. This plug-in would only apply to KDE before 4.6. As of 1/13/17 +cmake 3.1+ is the targeted cmake version. + +cmake is now the only build system supported. KF5/Qt5 was big jump. A lot changed besides just the API. +I am not against a Qt5-only build variant but see no reason to maintain two separate build systems. +At present KF5 is my focus. + +Known Issues: +*Binary comparison has been temporarily disabled due to stability issues. +*Network comparison operation via non file urls may fail for some configurations. This is under investigation. + +The current repository is at https://invent.kde.org/kde/kdiff3 + +Bugs can be reported at https://bugs.kde.org + +The original pre KF5/Qt5 Readme follows old build instructions have been removed to avoid confusion: + + +Copyright: (C) 2002-2014 by Joachim Eibl + +KDiff3 runs best on KDE but can be built without it, depending only on Qt-libs. +These are available for Un*x, Windows, Mac. +Thus there are many setup possibilities to consider. + +Supported Qt-versions: 4.8, 5.2 or higher. +Supported KDE-version: 4, 5 +(For KDE3/Qt3 use KDiff3-0.9.92 or older.) + +Contents +-------- + +- Introduction +- License +- Additional hints + + +Introduction +------------ + +KDiff3 is a program that +- compares and merges two or three input files or directories, +- shows the differences line by line and character by character (!), +- provides an automatic merge-facility and +- an integrated editor for comfortable solving of merge-conflicts +- has support for KDE-KIO (ftp, sftp, http, fish, smb), +- has an intuitive graphical user interface, +- provides a context menu for KDE-Dolphin and Windows-Explorer, +- supports 64 bit systems. (Some build issues are discussed in here.) +- Support for many encodings and Unicode. + +Do you want help translating? Read the instructions on https://l10n.kde.org/ ! + + +License +------- + + GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 + 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 02111-1307 + USA + + For details see file "COPYING". + + +------------------------------------------------------------------------ + +Additional hints +---------------- + + Start from commandline: + - Comparing 2 files: kdiff3 file1 file2 + - Merging 2 files: kdiff3 file1 file2 -o outputfile + - Comparing 3 files: kdiff3 file1 file2 file3 + - Merging 3 files: kdiff3 file1 file2 file3 -o outputfile + Note that file1 will be treated as base of file2 and file3. + + If all files have the same name but are in different directories, you can + reduce typework by specifying the filename only for the first file. E.g.: + - Comparing 3 files: kdiff3 dir1/filename dir2 dir3 + (This also works in the open-dialog.) + + If you start without arguments, then a dialog will appear where you can + select your files via a filebrowser. + + For more documentation, see the help-menu or the subdirectory doc. + + Have fun! diff --git a/diff_ext_for_kdiff3/.krazy b/diff_ext_for_kdiff3/.krazy new file mode 100644 index 0000000..8498793 --- /dev/null +++ b/diff_ext_for_kdiff3/.krazy @@ -0,0 +1 @@ +EXCLUDE system diff --git a/diff_ext_for_kdiff3/CMakeLists.txt b/diff_ext_for_kdiff3/CMakeLists.txt new file mode 100644 index 0000000..739f43c --- /dev/null +++ b/diff_ext_for_kdiff3/CMakeLists.txt @@ -0,0 +1,28 @@ +# Work around buggy windows sdk headers that prevent certain symbols from being exported the normal way +# even though they are required exports for shell exentions. +if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") +set(kdiff3extdefs diff_ext_for_kdiff3_msvc.def) +elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") +set(kdiff3extdefs diff_ext_for_kdiff3.def) +endif() + +set(kdiff3ext_SRCS + class_factory.cpp + diff_ext.cpp + server.cpp + ${kdiff3extdefs} +) + +set_source_files_properties(${kdiff3extdefs} PROPERTIES HEADER_FILE_ONLY TRUE) + +set(kdiff3ext_RCS + diff_ext_for_kdiff3.rc +) + +add_library(kdiff3ext MODULE ${kdiff3ext_SRCS} ${kdiff3ext_RCS}) + +target_link_libraries(kdiff3ext KF5::I18n uuid ole32) +target_compile_definitions(kdiff3ext PRIVATE -DTRANSLATION_DOMAIN=\"kdiff3\" -DUNICODE=1 -Dkdiff3ext) + +#If we don't do this the nsi packer won't pickup the shell extention library. +install(TARGETS kdiff3ext DESTINATION ${KDE_INSTALL_PLUGINDIR} ) diff --git a/diff_ext_for_kdiff3/LICENSE b/diff_ext_for_kdiff3/LICENSE new file mode 100644 index 0000000..c05a18d --- /dev/null +++ b/diff_ext_for_kdiff3/LICENSE @@ -0,0 +1,25 @@ +Diff-Ext: Copyright (c) 2003-2006, Sergey Zorin + All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/diff_ext_for_kdiff3/Messages.sh b/diff_ext_for_kdiff3/Messages.sh new file mode 100644 index 0000000..57a6b7c --- /dev/null +++ b/diff_ext_for_kdiff3/Messages.sh @@ -0,0 +1,2 @@ +#! /usr/bin/env bash +$XGETTEXT *.cpp -o $podir/diff_ext.pot diff --git a/diff_ext_for_kdiff3/README b/diff_ext_for_kdiff3/README new file mode 100644 index 0000000..7de3738 --- /dev/null +++ b/diff_ext_for_kdiff3/README @@ -0,0 +1,39 @@ +Diff-Ext for KDiff3 - Readme +============================ + +Authors: + Sergey Zorin (Author of diff-ext, see http://diff-ext.sourceforge.net) + Joachim Eibl (KDiff3-specific extensions and integration.) + + +Copyright (c): +Original Diff-Ext: Copyright (c) 2003-2006, Sergey Zorin, All rights reserved. +Extensions for KDiff3: Copyright (c) 2006, Joachim Eibl + + +License: See file LICENSE in this subdirectory + + +Building: +Via MinGW-compiler package (http://www.mingw.org/): Compile via gnu-make (Makefile) +Via MSVC2005: Use vcproj-file. + + +Installation: +For basic testing you can run "regsvr32 diff_ext_for_kdiff3.dll". +To use all features the installation that comes with the KDiff3-setup*.exe is recommended. + + +Translation: +If you would like help translating diff-ext-for-kdiff3 please copy the diff_ext.pot to +diff_ext_xx.po (where xx is the language-shortcut). +Then edit that file and fill in the msgstr-string for each respective msgid-string. +Then place the for in the KDiff3-translations subdirectory. +Use the language selection within KDiff3 to switch the language or set the language shortcut +in the registry HKEY_CURRENT_USER\Software\KDiff3\diff-ext: Language +If everything works, please send me the created file. + + +Have fun, +Joachim + diff --git a/diff_ext_for_kdiff3/class_factory.cpp b/diff_ext_for_kdiff3/class_factory.cpp new file mode 100644 index 0000000..0714d47 --- /dev/null +++ b/diff_ext_for_kdiff3/class_factory.cpp @@ -0,0 +1,74 @@ +/* + SPDX-FileCopyrightText: 2003-2006, Sergey Zorin. All rights reserved. + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: BSD-2-Clause +*/ +#include "class_factory.h" +#include "diff_ext.h" +#include "server.h" + +CLASS_FACTORY::CLASS_FACTORY() { + _ref_count = 0L; + + SERVER::instance()->lock(); +} + +CLASS_FACTORY::~CLASS_FACTORY() { + SERVER::instance()->release(); +} + +STDMETHODIMP +CLASS_FACTORY::QueryInterface(REFIID riid, void** ppv) { + HRESULT ret = E_NOINTERFACE; + *ppv = nullptr; + + if(IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) { + *ppv = static_cast(this); + + AddRef(); + + ret = NOERROR; + } + + return ret; +} + +STDMETHODIMP_(ULONG) +CLASS_FACTORY::AddRef() { + return InterlockedIncrement((LPLONG)&_ref_count); +} + +STDMETHODIMP_(ULONG) +CLASS_FACTORY::Release() { + ULONG ret = 0L; + + if(InterlockedDecrement((LPLONG)&_ref_count) != 0) + ret = _ref_count; + else + delete this; + + return ret; +} + +STDMETHODIMP +CLASS_FACTORY::CreateInstance(IUnknown* outer, REFIID refiid, void** obj) { + HRESULT ret = CLASS_E_NOAGGREGATION; + *obj = 0; + + // Shell extensions typically don't support aggregation (inheritance) + if(outer == nullptr) { + DIFF_EXT* ext = new DIFF_EXT(); + + if(ext == nullptr) + ret = E_OUTOFMEMORY; + else + ret = ext->QueryInterface(refiid, obj); + } + + return ret; +} + +STDMETHODIMP +CLASS_FACTORY::LockServer(BOOL) { + return NOERROR; +} diff --git a/diff_ext_for_kdiff3/class_factory.h b/diff_ext_for_kdiff3/class_factory.h new file mode 100644 index 0000000..c4e6bcd --- /dev/null +++ b/diff_ext_for_kdiff3/class_factory.h @@ -0,0 +1,31 @@ +/* + SPDX-FileCopyrightText: 2003-2006, Sergey Zorin. All rights reserved. + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: BSD-2-Clause +*/ + +#ifndef class_factory_h +#define class_factory_h + +#include +#include + +class CLASS_FACTORY : public IClassFactory { + public: + CLASS_FACTORY(); + virtual ~CLASS_FACTORY(); + + //IUnknown members + STDMETHODIMP QueryInterface(REFIID, void**); + STDMETHODIMP_(ULONG) AddRef(); + STDMETHODIMP_(ULONG) Release(); + + //ICLASS_FACTORY members + STDMETHODIMP CreateInstance(IUnknown*, REFIID, void**); + STDMETHODIMP LockServer(BOOL); + + private: + ULONG _ref_count; +}; + +#endif //class_factory_h diff --git a/diff_ext_for_kdiff3/diff_ext.cpp b/diff_ext_for_kdiff3/diff_ext.cpp new file mode 100644 index 0000000..d5cc414 --- /dev/null +++ b/diff_ext_for_kdiff3/diff_ext.cpp @@ -0,0 +1,462 @@ +/* + SPDX-FileCopyrightText: 2003-2006, Sergey Zorin. All rights reserved. + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: BSD-2-Clause +*/ + +#include "diff_ext.h" + +#include + +#include + +#include +#include +#include + +#include +#include + +DIFF_EXT::DIFF_EXT() +: m_nrOfSelectedFiles(0), _ref_count(0L), + m_recentFiles( SERVER::instance()->recent_files() ) +{ + LOG(); + _resource = SERVER::instance()->handle(); + + SERVER::instance()->lock(); +} + +DIFF_EXT::~DIFF_EXT() +{ + LOG(); + if(_resource != SERVER::instance()->handle()) { + FreeLibrary(_resource); + } + + SERVER::instance()->release(); +} + +STDMETHODIMP +DIFF_EXT::QueryInterface(REFIID refiid, void** ppv) +{ + HRESULT ret = E_NOINTERFACE; + *ppv = 0; + + if(IsEqualIID(refiid, IID_IShellExtInit) || IsEqualIID(refiid, IID_IUnknown)) { + *ppv = static_cast(this); + } else if (IsEqualIID(refiid, IID_IContextMenu)) { + *ppv = static_cast(this); + } + + if(*ppv != 0) { + AddRef(); + + ret = NOERROR; + } + + return ret; +} + +STDMETHODIMP_(ULONG) +DIFF_EXT::AddRef() +{ + return InterlockedIncrement((LPLONG)&_ref_count); +} + +STDMETHODIMP_(ULONG) +DIFF_EXT::Release() +{ + ULONG ret = 0L; + + if(InterlockedDecrement((LPLONG)&_ref_count) != 0) { + ret = _ref_count; + } else { + delete this; + } + + return ret; +} + + + +STDMETHODIMP +DIFF_EXT::Initialize(LPCITEMIDLIST /*folder not used*/, IDataObject* data, HKEY /*key not used*/) +{ + LOG(); + + FORMATETC format = {CF_HDROP, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; + STGMEDIUM medium; + medium.tymed = TYMED_HGLOBAL; + HRESULT ret = E_INVALIDARG; + + if(data->GetData(&format, &medium) == S_OK) + { + HDROP drop = (HDROP)medium.hGlobal; + m_nrOfSelectedFiles = DragQueryFile(drop, 0xFFFFFFFF, 0, 0); + + TCHAR tmp[MAX_PATH]; + + if (m_nrOfSelectedFiles >= 1 && m_nrOfSelectedFiles <= 3) + { + DragQueryFile(drop, 0, tmp, MAX_PATH); + _file_name1 = tmp; + + if(m_nrOfSelectedFiles >= 2) + { + DragQueryFile(drop, 1, tmp, MAX_PATH); + _file_name2 = tmp; + } + + if( m_nrOfSelectedFiles == 3) + { + DragQueryFile(drop, 2, tmp, MAX_PATH); + _file_name3 = tmp; + } + + ret = S_OK; + } + } + else + { + SYSERRORLOG(TEXT("GetData")); + } + + return ret; +} + +static int insertMenuItemHelper( HMENU menu, UINT id, UINT position, const tstring& text, + UINT fState = MFS_ENABLED, HMENU hSubMenu=0 ) +{ + MENUITEMINFO item_info; + ZeroMemory(&item_info, sizeof(item_info)); + item_info.cbSize = sizeof(MENUITEMINFO); + item_info.wID = id; + if (text.empty()) + { // Separator + item_info.fMask = MIIM_TYPE; + item_info.fType = MFT_SEPARATOR; + item_info.dwTypeData = 0; + } + else + { + item_info.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | (hSubMenu!=0 ? MIIM_SUBMENU : 0); + item_info.fType = MFT_STRING; + item_info.fState = fState; + item_info.dwTypeData = (LPTSTR)text.c_str(); + item_info.hSubMenu = hSubMenu; + } + if ( 0 == InsertMenuItem(menu, position, TRUE, &item_info) ) + SYSERRORLOG(TEXT("InsertMenuItem")); + return id; +} + + +STDMETHODIMP +DIFF_EXT::QueryContextMenu(HMENU menu, UINT position, UINT first_cmd, UINT /*last_cmd not used*/, UINT flags) +{ + LOG(); + + SERVER::instance()->recent_files(); // updates recent files list (reads from registry) + + m_id_Diff = UINT(-1); + m_id_DiffWith = UINT(-1); + m_id_DiffLater = UINT(-1); + m_id_MergeWith = UINT(-1); + m_id_Merge3 = UINT(-1); + m_id_Diff3 = UINT(-1); + m_id_DiffWith_Base = UINT(-1); + m_id_ClearList = UINT(-1); + m_id_About = UINT(-1); + + HRESULT ret = MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 0); + + if(!(flags & CMF_DEFAULTONLY)) + { + /* Menu structure: + KDiff3 -> (1 File selected): Save 'selection' for later comparison (push onto history stack) + Compare 'selection' with first file on history stack. + Compare 'selection' with -> choice from history stack + Merge 'selection' with first file on history stack. + Merge 'selection' with last two files on history stack. + (2 Files selected): Compare 's1' with 's2' + Merge 's1' with 's2' + (3 Files selected): Compare 's1', 's2' and 's3' + */ + HMENU subMenu = CreateMenu(); + + UINT id = first_cmd; + m_id_FirstCmd = first_cmd; + + insertMenuItemHelper( menu, id++, position++, TEXT("") ); // begin separator + + tstring menuString; + UINT pos2=0; + if(m_nrOfSelectedFiles == 1) + { + size_t nrOfRecentFiles = m_recentFiles.size(); + tstring menuStringCompare; + tstring menuStringMerge; + tstring firstFileName; + if( nrOfRecentFiles>=1 ) + { + firstFileName = TEXT("'") + cut_to_length( m_recentFiles.front() ) + TEXT("'"); + } + + menuStringCompare = fromQString(i18n("Compare with %1", toQString(firstFileName))); + menuStringMerge = fromQString(i18n("Merge with %1", toQString(firstFileName))); + + m_id_DiffWith = insertMenuItemHelper( subMenu, id++, pos2++, menuStringCompare, nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED ); + m_id_MergeWith = insertMenuItemHelper( subMenu, id++, pos2++, menuStringMerge, nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED ); + + //if( nrOfRecentFiles>=2 ) + //{ + // tstring firstFileName = cut_to_length( m_recentFiles.front() ); + // tstring secondFileName = cut_to_length( *(++m_recentFiles.begin()) ); + //} + m_id_Merge3 = insertMenuItemHelper( subMenu, id++, pos2++, fromQString(i18n("3-way merge with base")), + nrOfRecentFiles >=2 ? MFS_ENABLED : MFS_DISABLED ); + + menuString = fromQString(i18n("Save '%1' for later", toQString(_file_name1))); + m_id_DiffLater = insertMenuItemHelper( subMenu, id++, pos2++, menuString ); + + HMENU file_list = CreateMenu(); + std::list::iterator i; + m_id_DiffWith_Base = id; + int n = 0; + for( i = m_recentFiles.begin(); i!=m_recentFiles.end(); ++i ) + { + tstring s = cut_to_length( *i ); + insertMenuItemHelper( file_list, id++, n, s ); + ++n; + } + + insertMenuItemHelper( subMenu, id++, pos2++, fromQString(i18n("Compare with ...")), + nrOfRecentFiles > 0 ? MFS_ENABLED : MFS_DISABLED, file_list ); + + m_id_ClearList = insertMenuItemHelper( subMenu, id++, pos2++, fromQString(i18n("Clear list")), nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED ); + } + else if(m_nrOfSelectedFiles == 2) + { + //= "Diff " + cut_to_length(_file_name1, 20)+" and "+cut_to_length(_file_name2, 20); + m_id_Diff = insertMenuItemHelper( subMenu, id++, pos2++, fromQString(i18n("Compare")) ); + } + else if ( m_nrOfSelectedFiles == 3 ) + { + m_id_Diff3 = insertMenuItemHelper( subMenu, id++, pos2++, fromQString(i18n("3 way comparison")) ); + } + else + { + // More than 3 files selected? + } + m_id_About = insertMenuItemHelper( subMenu, id++, pos2++, fromQString(i18n("About Diff-Ext ...")) ); + + insertMenuItemHelper( menu, id++, position++, TEXT("KDiff3"), MFS_ENABLED, subMenu ); + + insertMenuItemHelper( menu, id++, position++, TEXT("") ); // final separator + + ret = MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, id-first_cmd); + } + + return ret; +} + +STDMETHODIMP +DIFF_EXT::InvokeCommand(LPCMINVOKECOMMANDINFO ici) +{ + HRESULT ret = NOERROR; + + _hwnd = ici->hwnd; + + if(HIWORD(ici->lpVerb) == 0) + { + UINT id = m_id_FirstCmd + LOWORD(ici->lpVerb); + if(id == m_id_Diff) + { + LOG(); + diff( TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\"") ); + } + else if(id == m_id_Diff3) + { + LOG(); + diff( TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\" \"") + _file_name3 + TEXT("\"") ); + } + else if(id == m_id_Merge3) + { + LOG(); + std::list< tstring >::iterator iFrom = m_recentFiles.begin(); + std::list< tstring >::iterator iBase = iFrom; + ++iBase; + diff( TEXT("-m \"") + *iBase + TEXT("\" \"") + *iFrom + TEXT("\" \"") + _file_name1 + TEXT("\"") ); + } + else if(id == m_id_DiffWith) + { + LOG(); + diff_with(0, false); + } + else if(id == m_id_MergeWith) + { + LOG(); + diff_with(0, true); + } + else if(id == m_id_ClearList) + { + LOG(); + m_recentFiles.clear(); + SERVER::instance()->save_history(); + } + else if(id == m_id_DiffLater) + { + MESSAGELOG(TEXT("Diff Later: ")+_file_name1); + m_recentFiles.remove( _file_name1 ); + m_recentFiles.push_front( _file_name1 ); + SERVER::instance()->save_history(); + } + else if(id >= m_id_DiffWith_Base && id < m_id_DiffWith_Base+m_recentFiles.size()) + { + LOG(); + diff_with(id-m_id_DiffWith_Base, false); + } + else if(id == m_id_About) + { + LOG(); + + MessageBox( _hwnd, (fromQString(i18n("Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n") + + i18n("This software is distributable under the BSD-2-Clause license.\n") + + i18n("Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n") + + i18n("Ported to Qt5/Kf5 by Michael Reeves\n") + + i18n("Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n"))).c_str() + , fromQString(i18n("About Diff-Ext for KDiff3 (64 Bit)")).c_str(), MB_OK ); + } + else + { + ret = E_INVALIDARG; + TCHAR verb[80]; + _sntprintf(verb, 79, TEXT("Command id: %d"), LOWORD(ici->lpVerb)); + verb[79]=0; + ERRORLOG(verb); + } + } + else + { + ret = E_INVALIDARG; + } + + return ret; +} + +STDMETHODIMP +DIFF_EXT::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT*, LPSTR pszName, UINT cchMax) +{ + // LOG(); // Gets called very often + HRESULT ret = NOERROR; + + if(uFlags == GCS_HELPTEXT) { + QString helpString; + if( idCmd == m_id_Diff ) + { + helpString = i18n("Compare selected files"); + } + else if( idCmd == m_id_DiffWith ) + { + if(!m_recentFiles.empty()) + { + helpString = i18n("Compare '%1' with '%2'", toQString(_file_name1), toQString(m_recentFiles.front())); + } + } + else if(idCmd == m_id_DiffLater) + { + helpString = i18n("Save '%1' for later operation", toQString(_file_name1)); + } + else if((idCmd >= m_id_DiffWith_Base) && (idCmd < m_id_DiffWith_Base+m_recentFiles.size())) + { + if( !m_recentFiles.empty() ) + { + unsigned long long num = idCmd - m_id_DiffWith_Base; + std::list::iterator i = m_recentFiles.begin(); + for(unsigned long long j = 0; j < num && i != m_recentFiles.end(); j++) + i++; + + if ( i!=m_recentFiles.end() ) + { + helpString = i18n("Compare '%1' with '%2'", toQString(_file_name1), toQString(*i)); + } + } + } + lstrcpyn( (LPTSTR)pszName, fromQString(helpString).c_str(), cchMax ); + } + else + { + ret = E_INVALIDARG; + } + + return ret; +} + +void +DIFF_EXT::diff( const tstring& arguments ) +{ + LOG(); + STARTUPINFO si; + PROCESS_INFORMATION pi; + bool bError = true; + tstring command = SERVER::instance()->getRegistryKeyString( TEXT(""), TEXT("diffcommand") ); + tstring commandLine = TEXT("\"") + command + TEXT("\" ") + arguments; + if ( ! command.empty() ) + { + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + if (CreateProcess(command.c_str(), (LPTSTR)commandLine.c_str(), 0, 0, FALSE, 0, 0, 0, &si, &pi) == 0) + { + SYSERRORLOG(TEXT("CreateProcess") + command); + } + else + { + bError = false; + CloseHandle( pi.hProcess ); + CloseHandle( pi.hThread ); + } + } + + if (bError) + { + tstring message = fromQString(i18n("Could not start KDiff3. Please rerun KDiff3 installation.")); + message += TEXT("\n") + fromQString(i18n("Command")) + TEXT(": ") + command; + message += TEXT("\n") + fromQString(i18n("CommandLine")) + TEXT(": ") + commandLine; + MessageBox(_hwnd, message.c_str(), fromQString(i18n("Diff-Ext For KDiff3")).c_str(), MB_OK); + } +} + +void +DIFF_EXT::diff_with(unsigned int num, bool bMerge) +{ + LOG(); + std::list::iterator i = m_recentFiles.begin(); + for(unsigned int j = 0; j < num && i!=m_recentFiles.end(); j++) { + i++; + } + + if ( i!=m_recentFiles.end() ) + _file_name2 = *i; + + diff( (bMerge ? TEXT("-m \"") : TEXT("\"") ) + _file_name2 + TEXT("\" \"") + _file_name1 + TEXT("\"") ); +} + + +tstring +DIFF_EXT::cut_to_length(const tstring& in, size_t max_len) +{ + tstring ret; + if( in.length() > max_len) + { + ret = in.substr(0, (max_len-3)/2); + ret += TEXT("..."); + ret += in.substr( in.length()-(max_len-3)/2 ); + } + else + { + ret = in; + } + + return ret; +} diff --git a/diff_ext_for_kdiff3/diff_ext.h b/diff_ext_for_kdiff3/diff_ext.h new file mode 100644 index 0000000..2ac631b --- /dev/null +++ b/diff_ext_for_kdiff3/diff_ext.h @@ -0,0 +1,68 @@ +/* + SPDX-FileCopyrightText: 2003-2006, Sergey Zorin. All rights reserved. + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: BSD-2-Clause +*/ + + +#ifndef diff_ext_h +#define diff_ext_h + +//This option is not compatible with our shell extention. +#undef WIN32_LEAN_AND_MEAN + +#include +#include +#include + +#include "server.h" + + +// this is the actual OLE Shell context menu handler +class DIFF_EXT : public IContextMenu, IShellExtInit { + public: + DIFF_EXT(); + virtual ~DIFF_EXT(); + + //IUnknown members + STDMETHODIMP QueryInterface(REFIID interface_id, void** result); + STDMETHODIMP_(ULONG) AddRef(); + STDMETHODIMP_(ULONG) Release(); + + //IShell members + STDMETHODIMP QueryContextMenu(HMENU menu, UINT index, UINT cmd_first, UINT cmd_last, UINT flags); + STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO info); + STDMETHODIMP GetCommandString(UINT_PTR cmd, UINT flags, UINT* reserved, LPSTR name, UINT name_length); + + //IShellExtInit methods + STDMETHODIMP Initialize(LPCITEMIDLIST folder, IDataObject* subj, HKEY key); + + private: + void diff( const tstring& arguments ); + void diff_with(unsigned int num, bool bMerge); + tstring cut_to_length(const tstring&, size_t length = 64); + + private: + UINT m_nrOfSelectedFiles; + tstring _file_name1; + tstring _file_name2; + tstring _file_name3; + HINSTANCE _resource; + HWND _hwnd; + + ULONG _ref_count; + + std::list< tstring >& m_recentFiles; + UINT m_id_FirstCmd; + UINT m_id_Diff; + UINT m_id_DiffWith; + UINT m_id_DiffLater; + UINT m_id_MergeWith; + UINT m_id_Merge3; + UINT m_id_Diff3; + UINT m_id_DiffWith_Base; + UINT m_id_About; + UINT m_id_ClearList; +}; + +#endif // __diff_ext_h__ diff --git a/diff_ext_for_kdiff3/diff_ext_for_kdiff3.def b/diff_ext_for_kdiff3/diff_ext_for_kdiff3.def new file mode 100644 index 0000000..5d16a33 --- /dev/null +++ b/diff_ext_for_kdiff3/diff_ext_for_kdiff3.def @@ -0,0 +1,6 @@ +LIBRARY "kdiff3ext" +EXPORTS + DllCanUnloadNow=DllCanUnloadNow@0 + DllGetClassObject=DllGetClassObject@12 + DllRegisterServer=DllRegisterServer@0 + DllUnregisterServer=DllUnregisterServer@0 diff --git a/diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc b/diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc new file mode 100644 index 0000000..fdf1a9d --- /dev/null +++ b/diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2003-2006, Sergey Zorin. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,6,1,145 + PRODUCTVERSION 1,6,1,145 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0L +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT_UNKNOWN +{ + BLOCK "StringFileInfo" + { + BLOCK "040904b0" + { + VALUE "Comments", "" + VALUE "CompanyName", "" + VALUE "FileDescription", "diff shell extension" + VALUE "FileVersion", "Release 1.6.1" + VALUE "InternalName", "diff shell extension" + VALUE "LegalCopyright", "Copyright © 2003-2005 Sergey Zorin" + VALUE "LegalTrademarks", "" + VALUE "OriginalFilename", "diff_ext.dll" + VALUE "PrivateBuild", "" + VALUE "ProductName", "Diff Context Menu Extension" + VALUE "ProductVersion", "Release 1.6.1" + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x409, 1200 + } +} diff --git a/diff_ext_for_kdiff3/diff_ext_for_kdiff3_msvc.def b/diff_ext_for_kdiff3/diff_ext_for_kdiff3_msvc.def new file mode 100644 index 0000000..dadaae8 --- /dev/null +++ b/diff_ext_for_kdiff3/diff_ext_for_kdiff3_msvc.def @@ -0,0 +1,6 @@ +LIBRARY "kdiff3ext" +EXPORTS + DllCanUnloadNow PRIVATE + DllGetClassObject PRIVATE + DllRegisterServer PRIVATE + DllUnregisterServer PRIVATE diff --git a/diff_ext_for_kdiff3/server.cpp b/diff_ext_for_kdiff3/server.cpp new file mode 100644 index 0000000..b9670f8 --- /dev/null +++ b/diff_ext_for_kdiff3/server.cpp @@ -0,0 +1,428 @@ +/* + SPDX-FileCopyrightText: 2003-2006, Sergey Zorin. All rights reserved. + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: BSD-2-Clause +*/ + +#define _CRT_NON_CONFORMING_SWPRINTFS + +#include "server.h" + +#include + +#include + +#include +#include +#include + +#include +#include + +#include + +#include "class_factory.h" + +#define DllExport __declspec( dllexport ) + +// registry key util struct +struct REGSTRUCT { + LPCTSTR subkey; + LPCTSTR name; + LPCTSTR value; +}; + +SERVER* SERVER::_instance = 0; +static HINSTANCE server_instance; // Handle to this DLL itself. + +//DEFINE_GUID(CLSID_DIFF_EXT, 0xA0482097, 0xC69D, 0x4DEC, 0x8A, 0xB6, 0xD3, 0xA2, 0x59, 0xAC, 0xC1, 0x51); +// New class id for DIFF_EXT for KDiff3 +#ifdef Q_OS_WIN64 +// {34471FFB-4002-438b-8952-E4588D0C0FE9} +DEFINE_GUID( CLSID_DIFF_EXT, 0x34471FFB, 0x4002, 0x438b, 0x89, 0x52, 0xE4, 0x58, 0x8D, 0x0C, 0x0F, 0xE9 ); +#else +#error unsupported configuration +#endif + +tstring SERVER::getRegistryKeyString( const tstring& subKey, const tstring& value ) +{ + tstring keyName = m_registryBaseName; + if (!subKey.empty()) + keyName += TEXT("\\")+subKey; + + HKEY key; + HKEY baseKey = HKEY_CURRENT_USER; + tstring result; + for(;;) + { + if( RegOpenKeyEx( baseKey, keyName.c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &key ) == ERROR_SUCCESS ) + { + DWORD neededSizeInBytes = 0; + if (RegQueryValueEx(key, value.c_str(), 0, 0, 0, &neededSizeInBytes) == ERROR_SUCCESS) + { + DWORD length = neededSizeInBytes / sizeof( TCHAR ); + result.resize( length ); + if ( RegQueryValueEx( key, value.c_str(), 0, 0, (LPBYTE)&result[0], &neededSizeInBytes ) == ERROR_SUCCESS) + { + //Everything is ok, but we want to cut off the terminating 0-character + result.resize( length - 1 ); + RegCloseKey(key); + return result; + } + else + { + result.resize(0); + } + } + + RegCloseKey(key); + } + if (baseKey==HKEY_LOCAL_MACHINE) + break; + baseKey = HKEY_LOCAL_MACHINE; + } + + // Error + { + LPTSTR message; + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, + GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &message, 0, 0); + ERRORLOG( (tstring(TEXT("RegOpenKeyEx: ")+keyName+TEXT("->")+value) + TEXT(": ")) + message ); \ + LocalFree(message); + } + return result; +} + + +STDAPI +DllCanUnloadNow(void) { + HRESULT ret = S_FALSE; + + if(SERVER::instance()->reference_count() == 0) { + ret = S_OK; + } + + return ret; +} + +extern "C" int APIENTRY +DllMain(HINSTANCE instance, DWORD reason, LPVOID /* reserved */) { +// char str[1024]; +// char* reason_string[] = {"DLL_PROCESS_DETACH", "DLL_PROCESS_ATTACH", "DLL_THREAD_ATTACH", "DLL_THREAD_DETACH"}; +// sprintf(str, "instance: %x; reason: '%s'", instance, reason_string[reason]); +// MessageBox(0, str, TEXT("Info"), MB_OK); + switch (reason) { + case DLL_PROCESS_ATTACH: + server_instance = instance; + SERVER::instance()->save_history(); + MESSAGELOG(TEXT("DLL_PROCESS_ATTACH")); + break; + + case DLL_PROCESS_DETACH: + MESSAGELOG(TEXT("DLL_PROCESS_DETACH")); + SERVER::instance()->save_history(); + break; + } + + return 1; +} + +STDAPI +DllGetClassObject(REFCLSID rclsid, REFIID riid, void** class_object) { + HRESULT ret = CLASS_E_CLASSNOTAVAILABLE; + *class_object = 0; + + if (IsEqualIID(rclsid, CLSID_DIFF_EXT)) { + CLASS_FACTORY* pcf = new CLASS_FACTORY(); + + ret = pcf->QueryInterface(riid, class_object); + } + + return ret; +} + +/*extern "C" HRESULT STDAPICALLTYPE*/ STDAPI +DllRegisterServer() { + return SERVER::instance()->do_register(); +} + +STDAPI +DllUnregisterServer() { + return SERVER::instance()->do_unregister(); +} + +SERVER* SERVER::instance() +{ + if(_instance == nullptr) + { + _instance = new SERVER(); + _instance->initLogging(); + MESSAGELOG(TEXT("New Server instance")); + } + + return _instance; +} + +SERVER::SERVER() : _reference_count(0) +{ + m_registryBaseName = TEXT("Software\\KDE e.V.\\KDiff3\\diff-ext"); + m_pRecentFiles = 0; + m_pLogFile = 0; +} + +void SERVER::initLogging() +{ + tstring logFileName = getRegistryKeyString( TEXT(""), TEXT("LogFile") ); + if ( !logFileName.empty() ) + { + m_pLogFile = _tfopen( logFileName.c_str(), TEXT("a+, ccs=UTF-8") ); + if (m_pLogFile) + { + _ftprintf( m_pLogFile, TEXT("\nSERVER::SERVER()\n") ); + } + } +} + +SERVER::~SERVER() +{ + if ( m_pLogFile ) + { + _ftprintf( m_pLogFile, TEXT("SERVER::~SERVER()\n\n") ); + fclose( m_pLogFile ); + } + + delete m_pRecentFiles; +} + +HINSTANCE +SERVER::handle() const +{ + return server_instance; +} + +void +SERVER::lock() { + InterlockedIncrement(&_reference_count); +} + +void +SERVER::release() { + InterlockedDecrement(&_reference_count); + + //if(InterlockedDecrement((LPLONG)&_reference_count) == 0) + // delete this; +} + +void SERVER::logMessage( const char* function, const char* file, int line, const tstring& msg ) +{ + SERVER* pServer = SERVER::instance(); + if ( pServer && pServer->m_pLogFile ) + { + SYSTEMTIME st; + GetSystemTime( &st ); + _ftprintf( pServer->m_pLogFile, TEXT("%04d/%02d/%02d %02d:%02d:%02d ") + TEXT("%S (%S:%d) %s\n"), // integrate char-string into wchar_t string + st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, function, file, line, msg.c_str() ); + fflush(pServer->m_pLogFile); + } +} + +std::list& +SERVER::recent_files() +{ + LOG(); + if ( m_pRecentFiles==0 ) + { + m_pRecentFiles = new std::list; + } + else + { + m_pRecentFiles->clear(); + } + MESSAGELOG(TEXT("Reading history from registry...")); + for( int i=0; i<32; ++i ) // Max history size + { + TCHAR numAsString[10]; + _sntprintf( numAsString, 10, TEXT("%d"), i ); + tstring historyItem = getRegistryKeyString( TEXT("history"), numAsString ); + if ( ! historyItem.empty() ) + m_pRecentFiles->push_back( historyItem ); + } + return *m_pRecentFiles; +} + +void +SERVER::save_history() const +{ + if( m_pRecentFiles ) + { + HKEY key; + if( RegCreateKeyEx(HKEY_CURRENT_USER, (m_registryBaseName + TEXT("\\history")).c_str(), 0, 0, + REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_WOW64_64KEY, 0, &key, 0) == ERROR_SUCCESS ) + { + LOG(); + //DWORD len = MAX_PATH; + int n = 0; + + std::list::const_iterator i; + + for(i = m_pRecentFiles->begin(); i!=m_pRecentFiles->end(); ++i, ++n ) + { + tstring str = *i; + TCHAR numAsString[10]; + _sntprintf( numAsString, 10, TEXT("%d"), n ); + if(RegSetValueEx(key, numAsString, 0, REG_SZ, (const BYTE*)str.c_str(), (DWORD)(str.size()+1)*sizeof(TCHAR) ) != ERROR_SUCCESS) + { + LPTSTR message; + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, + GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language + (LPTSTR) &message, 0, 0); + MessageBox(0, message, TEXT("KDiff3-diff-ext: Save history failed"), MB_OK | MB_ICONINFORMATION); + LocalFree(message); + } + } + for(; n<32; ++n ) + { + TCHAR numAsString[10]; + _sntprintf( numAsString, 10, TEXT("%d"), n ); + RegDeleteValue(key, numAsString ); + } + + RegCloseKey(key); + } + else + { + SYSERRORLOG(TEXT("RegOpenKeyEx")); + } + } +} + +HRESULT +SERVER::do_register() { + LOG(); + TCHAR class_id[MAX_PATH]; + LPWSTR tmp_guid; + HRESULT ret = SELFREG_E_CLASS; + + if (StringFromIID(CLSID_DIFF_EXT, &tmp_guid) == S_OK) { + _tcsncpy(class_id, tmp_guid, MAX_PATH); + + CoTaskMemFree((void*)tmp_guid); + + TCHAR subkey[MAX_PATH]; + TCHAR server_path[MAX_PATH]; + HKEY key; + LRESULT result = NOERROR; + DWORD dwDisp; + + GetModuleFileName(SERVER::instance()->handle(), server_path, MAX_PATH); + + REGSTRUCT entry[] = { + {TEXT("Software\\Classes\\CLSID\\%s"), 0, TEXT("kdiff3ext")}, + {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), 0, TEXT("%s")}, + {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), TEXT("ThreadingModel"), TEXT("Apartment")} + }; + + for(unsigned int i = 0; (i < sizeof(entry)/sizeof(entry[0])) && (result == NOERROR); i++) { + _sntprintf(subkey, MAX_PATH, entry[i].subkey, class_id); + result = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp); + + if(result == NOERROR) { + TCHAR szData[MAX_PATH]; + + _sntprintf(szData, MAX_PATH, entry[i].value, server_path); + szData[MAX_PATH-1]=0; + + result = RegSetValueEx(key, entry[i].name, 0, REG_SZ, (LPBYTE)szData, DWORD(_tcslen(szData)*sizeof(TCHAR))); + } + + RegCloseKey(key); + } + + if(result == NOERROR) { + result = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Classes\\*\\shellex\\ContextMenuHandlers\\kdiff3ext"), 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp); + + if(result == NOERROR) { + + result = RegSetValueEx(key, 0, 0, REG_SZ, (LPBYTE)class_id, DWORD(_tcslen(class_id)*sizeof(TCHAR))); + + RegCloseKey(key); + + // NT needs to have shell extensions "approved". + result = RegCreateKeyEx(HKEY_CURRENT_USER, + TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), + 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp); + + if(result == NOERROR) { + TCHAR szData[MAX_PATH]; + + lstrcpy(szData, TEXT("diff-ext")); + + result = RegSetValueEx(key, class_id, 0, REG_SZ, (LPBYTE)szData, DWORD(_tcslen(szData)*sizeof(TCHAR))); + + RegCloseKey(key); + + ret = S_OK; + } else if (result == ERROR_ACCESS_DENIED) { + TCHAR msg[] = TEXT("Warning! You have unsufficient rights to write to a specific registry key.\n") + TEXT("The application may work anyway, but it is advised to register this module ") + TEXT("again while having administrator rights."); + + MessageBox(0, msg, TEXT("Warning"), MB_ICONEXCLAMATION); + + ret = S_OK; + } + } + } + } + + return ret; +} + +HRESULT +SERVER::do_unregister() { + LOG(); + TCHAR class_id[MAX_PATH]; + LPWSTR tmp_guid; + HRESULT ret = SELFREG_E_CLASS; + + if (StringFromIID(CLSID_DIFF_EXT, &tmp_guid) == S_OK) { + _tcsncpy(class_id, tmp_guid, MAX_PATH); + + CoTaskMemFree((void*)tmp_guid); + + LRESULT result = NOERROR; + TCHAR subkey[MAX_PATH]; + + REGSTRUCT entry[] = { + {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), 0, 0}, + {TEXT("Software\\Classes\\CLSID\\%s"), 0, 0} + }; + + for(unsigned int i = 0; (i < sizeof(entry)/sizeof(entry[0])) && (result == NOERROR); i++) { + _stprintf(subkey, entry[i].subkey, class_id); + result = RegDeleteKey(HKEY_CURRENT_USER, subkey); + } + + if(result == NOERROR) { + result = RegDeleteKey(HKEY_CURRENT_USER, TEXT("Software\\Classes\\*\\shellex\\ContextMenuHandlers\\kdiff3ext")); + + if(result == NOERROR) { + // NT needs to have shell extensions "approved". + HKEY key; + + RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), 0, KEY_ALL_ACCESS, &key); + + result = RegDeleteValue(key, class_id); + + RegCloseKey(key); + + if(result == ERROR_SUCCESS) { + ret = S_OK; + } + } + } + } + + return ret; +} diff --git a/diff_ext_for_kdiff3/server.h b/diff_ext_for_kdiff3/server.h new file mode 100644 index 0000000..6aa240d --- /dev/null +++ b/diff_ext_for_kdiff3/server.h @@ -0,0 +1,83 @@ +/* + SPDX-FileCopyrightText: 2003-2006, Sergey Zorin. All rights reserved. + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: BSD-2-Clause +*/ +#ifndef server_h +#define server_h + +//This option is not compatible with our shell extention. +#undef WIN32_LEAN_AND_MEAN + +#include // std::list +#include + +#include // std::wstring + +#ifdef UNICODE + +typedef std::wstring tstring; + +#define toQString(s) QString::fromStdWString(s) +#define fromQString(s) (s).toStdWString() + +#else + +#error "Unsupported configuration" + +#endif + +#define MESSAGELOG( msg ) SERVER::logMessage( __FUNCTION__, __FILE__, __LINE__, msg ) +#define LOG() MESSAGELOG( TEXT("") ) +#define ERRORLOG( msg ) MESSAGELOG( TEXT("Error: ")+tstring(msg) ) +#define SYSERRORLOG( msg ) \ + { \ + LPTSTR message; \ + FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, \ + GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &message, 0, 0); \ + ERRORLOG( (tstring(msg) + TEXT(": ")) + message ); \ + LocalFree(message); \ + } + + +class SERVER { + public: + static SERVER* instance(); + void initLogging(); + + public: + virtual ~SERVER(); + + tstring getRegistryKeyString( const tstring& subKey, const tstring& value ); + + HINSTANCE handle() const; + + HRESULT do_register(); + HRESULT do_unregister(); + + void lock(); + void release(); + + ULONG reference_count() const { + return _reference_count; + } + + std::list< tstring >& recent_files(); + + void save_history() const; + + static void logMessage( const char* function, const char* file, int line, const tstring& msg ); + + private: + SERVER(); + SERVER(const SERVER&) {} + + private: + LONG _reference_count; + std::list* m_pRecentFiles; + static SERVER* _instance; + tstring m_registryBaseName; + FILE* m_pLogFile; +}; + +#endif // __server_h__ diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 0000000..41187d4 --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de +# SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com +# SPDX-License-Identifier: GPL-2.0-or-later + +add_subdirectory(en) diff --git a/doc/en/CMakeLists.txt b/doc/en/CMakeLists.txt new file mode 100644 index 0000000..6ff8b36 --- /dev/null +++ b/doc/en/CMakeLists.txt @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de +# SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com +# SPDX-License-Identifier: GPL-2.0-or-later + +kdoctools_create_handbook(index.docbook INSTALL_DESTINATION ${KDE_INSTALL_DOCBUNDLEDIR}/en SUBDIR kdiff3) +kdoctools_create_manpage (man-kdiff3.1.docbook 1 INSTALL_DESTINATION ${KDE_INSTALL_MANDIR}) diff --git a/doc/en/dirbrowser.png b/doc/en/dirbrowser.png new file mode 100644 index 0000000000000000000000000000000000000000..01da6ecc2c2d774994cd267ceac427978809540c GIT binary patch literal 8900 zcmZ{J1yoc~_wNj&gOp%^fCwmH5Yi|}3@Hst3^h_BQX(;+goK2oARvt(C5&83YUoap z9zs%ynW1wC;a&9mzxBPh-aBirdt&yPbIv_GetX{#ZOw-?l+2V62!uvOS>Z7RLIyw} zQ203*I1&@I$PIzOAlmA>ibqE~M@I*wztuk2IyxdA9vvNl&C{}ZczATU`mg=(3347C zk&X^GPPvYb=D-OD_@jgInf-&KgZWW#-u}q%{rxF$e1Gg{e`bTUeYiKYu?r(@4>fP@ z)NhiyH+PrUH&!=JY3(nqtZyuDY_zR!{p*&G_$n!Wnus8B57eBEO@V9(7oBO8FRayGoI7a zkWc;>+9!obKx{K)3e2xMRo;xiEHKLGvMzX|Dw{NL0E zY5y_P@x9OX`^MW|vd*6GZarHa-93KY@oPN^U7aoMot>VY+dXaA;Fi_TE%W}(n@tUn z*NyhMb-0cCz?b!FiZv^`)yt06D+uh0I(9jva(cP)b#p~gVMTjj1);jUO1gYms$|)y zl;BvpGF$8~RYWu^#y>B@I}|Mh7WH-(LJ$B!1|UcS1gZZIc@oLU8u9_s7Ny%0ZDbsQ4R{Areb?p} z08Jy~xBkDB0PQL2aR@WCw-XK(nkB zB%fx#wbV#5S3;Pk_!+B;8L>(ke*9pdq>Hpd=tnB*c*^U%ZGQxP_~@mfhCQn~#8UOe zb7gBMC2b`IHA4jzO9jmr3MORoWYzLeDR~`Dd1X6!D_MjppY%NuDIL)V3LN(p1@B2V z2|{6KVEK{=dr<1hVm8G?V+h1Oj36QBjc9eKo#3 zAb7!7n@+ybOT(yd_S8uzhNcd2Y5=9zRAO8fU??6`QrwtL$qsqhbYDo|V_Cz@fF=UEMN192-r`&m zl&WJCvcTmpj`gNbSI?3v<8J0C~BeL4bNWNYHh0}-gJD&X8$hmlTUcH$U z6XALZtAO(2qdcdxXCl=vQF5(II!>AArE#YfrdDzH1*pcC3x5$jNqOs>s_-RGND%Yn z_@`S2=WCO5xy(|?3VyE-CWCv6YX%ZPZYvJUHz=uRlzOcen2vichqI2$w~0G>BbzNi zXTCEK(|EkM6G_s^(dQ;V-yHJ%?4>D`#;0wBsQVRLN?h;%+Db zI2tCTGbk>NEY(8fp9PDF3|`GqINBn-jlQAwarlDS_;)KA%e#|?5f>bOxODYVBlah& zx;`Z92S+4e-l<(JOIx%#`lUM|4?X_I(3LvTt0zVV7_CVWU8E$r_1l@7wH9pAUY5F= zFG{~iP4FiT+SgP~4c(JZuxlD3^|SKf6fVW*)n;k8sR#&klV0 z?kjYe6w=0i?cIxCLNYe&v8-zuqn=zc*MX|TixSdScn>7bCC>u~Ghye@_@eVlTWyBB z!f>8jF~_*-kJqK9_j_ajrEbdGK-ir2vmuMm^GSWU5d^&#kf93$eg-NL=%Gl!J*m0m zq_ArXhzWS^nIMM`tf}2S!uVON#XYBSa(KcOy>0xl#JxZSDI+)pm-%Sd$VSzkm4H(b zTIqWh-6j1}BW2q#VB1{P?^~l>i%G`q;05P|Gk|RVb>NH5kD*EBN}-F=O`9W2_VIdN zfDGK^Q|Ec=8vl`(ja5(9a~|ygAx}R2DNKSMUA#_l<(+b62e+p{;mUgEEt9jAOyW4R z!rL$$`>+6VTW@cGTd^swn$b+$opxU8ybD)EW9j|#q*a@}Y<+I}(jSjqu2G&4^utc< zFl9lZV!4L(6z3`lQHC%2UyW0@1lzH$&2MzS%vav93O7!+c&>igB>J1%(>Gbgb2obE z%lOI+R^Dt-)0T`6{+K}~)u%haN0{Z^B@}(4tnAO1D0pH`uQlu2kxj(p5W+ZXdEMv4 z(oOTcuZ`Qb`eR<@>gU&vh5h`zv(o!Z*KlJ`D0iYj-Tfq4o}GmP*AvLWVPpQi$0mUX zhpPG*?e)f_ipqI`k_eICOKc!yeUZ7;BfTo@_s+*a-1?5fd7o#Fj7{k7qnDQ9R|Upr z-+ncCIsZM5*kh|MXX;^eTTj!}sIBtsTRZge^R;k`q^=PuO$*i1nQSiMa0_~thiP!{ z0ne(T`)3i`u{uMSAg0Q_RF-pzX_*X#;o;inf1Trw$ehI|{G7OyrSvvv)brd~ft%;( z=qQ5jnB9&2Hb`>wu1O3&^v0m<-L$TCrP5T}*PF7bBKM{m7TQ-UMy3wyL-CwncQu>z z&vxOH{NBqW2jX10P%5WYHr2Vm^?$nmsiaCZ*w6LF6>Q#8qU)r_V+GF*#IY;m1Ana|wE9}pQoZ8MLO7x&I@o?SlH zj=$T84qH%_RzjU@USVjic3%_AA-+MraK<0ZwNjzc-&rVvub<_T0i0=m85T>s;kQ@5 zV|!*Fz7}8p)KKx6YImDCD~^>BoNwAnI#}IG`7y1ijKFdJ?mIbJ-K+P!AS;UclnU4+ zCX{n#VfG!w<=wPUW^A1LNPW?mLnl1*G|pZ8(?d2pw1(e=*)x<4Z}v4grMB?|ml{v= z@~Y<|L!Sa$eT#FaAIK1uFQR--s+Z)YP;5(x=8%W*TJIYo6ZSJ$2J_IcklYMir3sE> zP3w#w&t&QveSg$!H6EKRc%hnRUfeOcH&M-!RDcd@p2eFOxZv|bR+7K`VMNDy#YFySsGc4*s6^WQj+ zjZf=-c0SCN9KLc(!u4p0*}~q@KTR-}D0t1Y&O_~Rv7o+{Mww$4aJ!vN?9wcRzo1Avef4 zaV%}$H(qVjeMFrwo8H)B%T@@KjPKN+Y0^JhrwsNKekj4%-DWW}&st9FR>BZxUVCGJNVQ7IUN0XHf@1) z6+pAzNnb!IR~s$i_s6)qLG>ywF5ARwneB%alk^em&~T_VPpQ0&h<7Ef;r-`hPMqE| z3>H<8CL7a7PrQ|ZxiE2dHU4HIFoNLwCDQYT*3=p0bm^@PiT?4q@1G*P+Zi+cz8V;} zo);41-D6&M>=MSxs{oiD{W5roy%#&iwqM7=)8s1NR+cuuHTx~~%4vU#$>L$86qec=vP|y{7AJU+!C3eQDK4 zFbYt(I8UvNRUIQs>eJg-CJUIJ@V|E+L-u#@xh!&?gCeWDv>Iuf$gJH9ArP2pXbeel zYaZ*mmtnghX7%n@iTSTM{am-Y>+-~M;IYEK*j}*-FMjv7CEHz3O?Q6BwM@I;8I^#N zXZnXc=sa~g@Sd7_f$Dw#uz2EGCWQ$DWGe@S!U{9x*=jcd(exDP(2jA?J?qvb$_z&B z<`@%j!F~8Z&)L^)*W7@XJaS{0VQ$H{aS|)_MZS70@G{Ts%^zikR zuSk@r%ImXE>|}4Ihv7 z>He05*W_MySkQR=GTro=M$SJWPV?{Ew9)*zUNm(3P&+>Eq6DP_%pnxaGuQBMpWd?#gWN zTTZH$4d-+=jbT1J?%66Jm)ZJ<$=Qs(*&o5cvQp#z;gdio@*d z-4kh_s$g@z@vnD4?S-`@RU>+uKINlONEMQZ-?K=-HH0cPfD2TD|8a)SaL~=I-UP+n z-<9js= z7rd&1p%&N|`(i3c#Zv)9*Ym`WnZ{r1VtErA-#iE1RJnVe{&x`?9p_N$dHvhAh+Vg< z_sMas2~yD+F7(iUhvXSFoZJ-R4A;iJb9gYennx90kc%l^j9xa&JK+QXyNbmAO47pqU#nBcS+i@{g0;1`E?dqQ2=Ji8tx!*X6<==_w$ z{R#Wg2P0MjZd&6xGb`tVo>Di*SGc43&m3-zP2Ksi^mrv7IM}^so#=gIbZter<%P}~ z+`U2>*M9O&Isl;j4XWH9(EQK-ge)0}6qWoI6kN=5Hy4OFX?y(ZrmQ%uIw&}QB`oF( z&*<(Q77C(aZ2l*c^4)uJ>n4UfBfbrLC4%wB)-$2rnkkrMsuQeLzJC1}%f-e@D8M!yNxL8-4Q~NeQ+n6W;Ml1 zlccQ9rjJBc71ZC30pA=UrO|_9iBi$GPmdd3k_<~yh#jY({E4&7CR>hs~ z?ll}e*2w22zgmQS3@G7S4M)U!jrKu3M>ZNhnz+jc#KfungM|KCy45IGD+_itfJb>M zzf`M-_Vqk=b?e2f4cQPn&Xg_?lyKxLIaDIkC32PvC=Pk|T1-TEx|+#{Lr!~aVVDRP zs^TqhhYxL970*33A`f0GC5MwlRa=^XkT?6Rs5ApgFg|ar;hY5aF=$MaZi7Bc7JCu2 zo}fYf+voyySm{)!o#DzznvxA2z4-aQh>7toCbLf3QzNVL1#@E-`s0&KJQ3^}bu%en zyi7rRpCEa_LO1fb*SFjmZZLeiK1bOx*!q2B-aC-FH?u#u5B$S#vBG9)uRO5cRSavd z#Jx8{^Re6)SzqdsxK9lQ-#qpGSxE9KQFQx@PfQIs@24(B7gL{pFXX3lcm^Ukc)0$p zeDpfx+s>N*V*DLzgfY0Atkc~%8}sY@UAc&{Lpjm{0Wwt;oN}mv9K*wpIVH^s3Lx{; z&$+D;%pFa!>gc_S(?cMu!a<*cnv=U_KKui84l2kU7x38s4i9<@Wh6G)_n%pd9WHY@ zY#z#q(Pkb%TSkFS>GYl1zNd~tfj;I-k}v}Mq7E1zAI{IUjzJNK9$T^U2L}dri&caN zsYt%pXk7Oe_iEU^-g!2s24^JCi+3N{cneZPI6i8T_>S%F9T$M3#!HqKXG+Y&G1=-!a#G#L4)6|=;bg!!%GM{ZljAh6_R842@^{OI;>(3pSX9^7fMpjb*maQa;ohne6cMrkAH7r9q|@)lMP8|b_5**-xH zrn0FLW{@A5Ra#m|r`W7ZBhFx$-ahcwXge~@(zW*WQ8!0qwHbKc6q(#4Gv45r5I8r@6dDxj7AUXi_nQm(~&K;yF; zJyy;f!eT>@4aHR|XI-x^DBUo?#|Lw#SGbwx5CzE#`ADDFA1?mDoi7La(JSC3OjH6P z4=-}23A5upCO1>FX9P7(M0~W7$K=>*ecYVb z6t63NA&zj+EcoyjiX?FzwRP_yZd93!%NhRJ^Or7q$6G}BAX5b!sw5YEivIH4q>$sG zS~HrmCMcg+df53yfFz-hvpcJOX6BY<79;6;4r7#SpkDGTK{}MqWmpI?UzyYI=Lj0@ z(B+bzh*X;h03HkaMg$1K3^(lO)6#exV1h3uYhD@vcA38>jB{0!=TUr1{NBc%90O?V zr0cB%j{+cleNt&^Z3e}6KV57x9$gjy^gZDDh2s0RyRhH<8536tgeqL@a6ln(o*M2F zuaQ)5jvTMKR|20gT;L5)dnK`#$8+I5*1XP+J~mk{YFVwYH8@TKN*_Yy+?_ySAEMeN)t(v>~T$K8fqjRG|veFnq@=TNgD zJ|t5as`}JlcX4GgAohw#+6ukvB+K^8sUY3K^NFzUSyKBMyhrV^lBHGapOsu<)ml=o zdHhbMzbhY4tB3hjf>9KbJMQZl)LOnrFJw#+J1}`BnG&zMXM5q)Mq%?Ivf80k|BO6E zz!`kLT(2*4-;`keD-x$I)+M>O9*Xi7@{zBfbzwU_<$Z@7}ZOVIp)D z`uWe+BS#uSvFFD0!2~x7B5=_=p?-|Ufk5H2{b+$Sz$+_XEqL&g@SX>j zSt~_6COEAt6dJ|Y$j6B}jTab|Km1ctbp2h+FSkqE`*(zgL=BoAd%O~ChK^{I@mkb}1B;;F>~J?T94 z-)zeNiA+JbB_f1~0%C;`ARyh)(u+O?VfnxByb#o~;TX`L;EJl2-c( zvc{M0+{fY_5^_!M`AAH55kOioFWq-S^HH-PwUG4AaOr*!uS!ZH#8IDyhlX?)*C(?r z!|~av<-38eZ4Xp6x)I59Sm_6-K_NkhN2W*+!3vGf3e5Q1nATFgwb^|{njW^f@pmzO zTt|T0NJBk;FH69?pzLwfBvs?FS9yHB*@bYen=Ve%Zz!(R)6TT6fw={9{@g~7X%aGR z)x1ag!t&lOlRA=hH2VVy#KhIVTAZYNDI9bdXy%-IxpRPd`D}iHROD% zch%SeDuh7DFW-mjL`bQ{hp*yIy!XO0pNmu~A^$XQ@D|@#N?N^^U%G$rc)wrt+1sRU zrlKD#X1Gl4CMo=?@yaPj=ipK^mU%WXXga1~q!8xPik zd&%fNvI#kZZL`;Q5r-YNe@uI#V%h8T)2GO>?1L~nEvCS)7Z5T$M21 z{-`y{52jtimO>5FG1tn&dD4M{1RC4B*1lFxw(oA|%(VoVAPas|cR1+Px$(_r>V5zo z=c+!T9@?TUx>4W#bU7rGXlC@Zv?35idgLhR>md*#LNGGE97POOtLgElS43j2Z|-+g z0)khEOnMkL5Mwd`AzFnfhwrv*en1xrvwQklLRrw{)C zFVV&|AqtAk4F^tx(s!<9>B&QL17p*%)~>EM6;p*_BtGNJV(L$qycVRg=J$*smS&AeU{(KzZsasowC+ zW}c*)jZB~!;JWL2QUCgY_rwkAAn@ypjuD~GnP0DD13l|QFIl?y4*1q7q3!+LA0C%VblHl>SEzy!B-!>hTT zM9FPkeQHMUS>*%&UDvoVY*{M=?~$wEm*RIHRZ!TQBL3%T$=!#Z*e?6Yaex7D7FD-K3F8}}l literal 0 HcmV?d00001 diff --git a/doc/en/dirmergebig.png b/doc/en/dirmergebig.png new file mode 100644 index 0000000000000000000000000000000000000000..4e2e80217435804e084c026b4c3b53d8a090bb59 GIT binary patch literal 39092 zcmaHSby!qE+xITb(y(+%A6i;qfu#kB1px^GX;eb#E&&Mv!KDS3773+8Lg_|QkWT4F z8otHndB6Ai{`t-|d(O<9nS1W3-yO3j5}~C^1fhd~Kp-Nuhf2C25EcRi!X(1OMCU~8 zzA8c|KnM*zWe`Xo1mXsPNYVNK{|gff7eu51B6~zfCrnQd&@wPFFfcGN@iQ|sv#_wR zvGKC8@v*V-v#@jh3jjO&e*!N%J1;9c4?8hIC;^5^WVkJ z#lyLCR^}iQ80I&f73;NE(gU2Jm%=_PqpPye?SeQ@r?h+Fd153c<1E^)DRc|CQWbbUV2b9R06 zxAE}!=;kEz;P7bgU~B#0VE5o)?_b#6|8E4H+}YdT+ne6m-J9Ay*xcIQ+TQNkK0Mg& zE!{Z3{8PNPGQF_4Ix{!BKU+65V?8}%hraL46iogGrA!`=O-_QwL1UvjIA*=qURt@;L+5%Js z3a-ffT3O}vWp$t|LZ)mJ9rVifm&@Gp3Q!%{)!=NhgACtKAIsCyGN#fkQ&K;sq<(mk zG9LdSX&I^Dh^)nqJMWA$0mo1&hIJQ&zX%P*40sdT6s$EEAhhU<{mA=siJQg;7vnA$ zHo@0*j?Ql2m*4_>c{fX~REtLl3wP;fAI+aV(|=~4XsW1ZYWLXGM%UC@&&*EuskM%Y zm9~k6_7n4H{f8O`rj~j>YI-KBh$pg$FqAg2ucoSj`a{cy9z@C?#g)ul6!mQ6o+IR* ztI8>q%VAi;B&DR~g~VZYqKPyj2mwI>9zYYq>2{A3aOS|Hr>9q>AvvHVAc8XB6X}o< zLevR)_#wOmc+I%DMBUg}SeRI@7#LtM_!zj*#POG}hMeSm9%|gj)Ydv`YDzG1R;d0nEd?$*A|h20W?o!savTC| z2tE$FnRft@00@-Gpr$0R=k4-{%Vgg?zQ~AypAF!tBd22>7Lesfepc*)=F2?d4p#;kK$*);8!)H<> zK8mkc_uAxPRdR)W2JsJ{!i^TKJ68zEBpp?3!qC)kw1v4wtXo$o$RssC zbt5&RjF8U`^IoxPhW4nkx}+iExx=6zfFIjEt&#U>yJ(hW$Rv3?AH*uyuypXLfAu=N zr){f6&MCry>q$1;udZOjshk5ViL}JcPeV7{lki20Ek`X;L0wFj5Jdyy{%DP+YnMzG zkLW3Y>Xzh$62Qo~-oCjnncplO9ihdY?eZW3NuY#Jr9Egj@IlB{D}l3OrPD%*UB7}m z68Ydo-p3&-oeB9OnPGH2+7C63E%nh6ziS3QML=Va#!wMp9PYi?L(`!)k!R@QLPbW2 zuE)v|E2wmSsf2HZztT|nU-wMchSXYs1MoP5dEohUZtIx`D%V?$DTo|Ul z9LZ{H*=liCrq2rS>^1*U9qm^W`I??}dn>8q3N`il9Xev>HTNP54%3nHesi34Q$|A= zE*4$nIGR#=nxyJXnh(X}{tY+>W*;+DV?+61FYXolMgi(fRED zt2jNc#%5V2kUBR{9+3O#2VYWVO@zzXF@6rFx)^*|c33KSVC%-VODbg?Zz5g5>OM`1 zqQ?V=-13Ft3H4!>qE0|62QU#08(~7|Epq=U|IL-Jsim!bc^+H1(84SiaB;kMc?&un zete_dw*P)bGI!KFbJAnZop6RljG^p{;l6#c*02gUS0%#dH>>(LgdTi2tZIwq%C2&F!Px~N!Ja?cKqu#cKWm& z#X9n+4DM_`?yzE#;cUcruFZ+DvNBzqVu6o&@Az%`B;2q&>9Ta#S=r$Lg74yDe`U#1 zSU&&R4mcNus8M+y36v^K5dfd}KluqGWa}SDN~RvS$7;HHs`?MPnoyKan2^vFMBzK`Jl!nOa(9LOcqQ_;z{6U>2W1K&ImFT(z;6>LlM zWPa38$<@&Wyw`Q9-(j@a7lv6Hk`-uGOviwjp4xGAfQ@^fnS z%7b-&CPJWLpYXGnFx|=J@=+SXa)@Z=CrQYCyhdVzj_=*N8F_l%9o(hgpYydpvFq$G z0B8qvfJ(yM)B)Q8=U{h!B>M|Ijx?=5t@|S?=h@n6ed65s`Gn)CrD4Lmr>eO;d4z5o zI%L=qKE_f*!$WjU0Co|ZmrBd%*%q@FF#^c^sEDx?1VV_%siDErd~$;5|i57i1p zmP!{CH`TstTSWfR>U7|?OGUoSBs=Mh+QQn!_^_Z z5RG_q4^{r&wBxH1_Pr^`jcX_tT(~*m;pWTiZfxc3pL+O8tmcw`5)tB=msJ!|$=z<+ zfVyxvwM1{6-^l%5i`8L;@`c6SQ{G%c9I2d7o;q%Sykik_Tb>BB9crdy{0IG;rslo; ze1B)?%=+`Pi|fdkj{Mxyf9zF@JTZ6xRo`V7=aZy2T*^yzT}i|7cIVBi*u&#U3a7?- z`vv!9i8l^AuA))>>SlwT#Y1rJc5>#E3sdB23m;TQLDB)HzbKz&IC1jI>#2iC>dCdM_^_&@51kRcK@kqW}?c5k%4PO zPC)!D0w0?cau1pvgpl>M%T4bbJ~^QG`?Ao4`QDZT+Zog+p5V2R z7(5*R1iUJbRKFA#$?kyy2cvNs=Z0FT_#xDn!5if{m zMsBKEFtLr;RND~ucwwJ}=LTJh&g$W6 zVz_hD#(I0gnYO!On`#~8G?7D?km%s0=E<3-9YtgSf5l7{B?6=9eS=4Z;HghpNY6-u zMS>u<`JZIbYRi}()Hslfs@ZMoPTM}wYN2exv}*51m36-xjHt>h`!ML<3}3)d?1D2h zYq6HKIMDTCa99Vt$k4d^1B}LN*ShS}mW;>!^*}DgOl#^#R4;`QuhiCjvFkL=#Q&-*daH zPJAQJ#TDw~{N+#mU!?74*$z7Xbev~a_Zd6_*hYU(imh2SjvWoUj=`l}CeO96ugBl?q;tip?t{=ArVZOlewH8C`IfISmRDrpsMXmd|tMHQ1D*=STr-aiHG||RFSi7x%S(6iG7~D z@of#*t}Q(q(*|W@m)ee%iz;%Be>ioiV;yWs*=wDIML{pZmcFT!3%mbCeRycj&n5V2 zC??9rK64^d>ElG;*o4+X-4gwz%Oe5ONTCz@jLnIPe0douCN|L$*sEN6r80bVbLo+9 zpUp}U?1+mnulf%W+a4}kcK(}&uXk*QLC7oLx0{LPA{PmIpClqWB#{BOgisA``44u+ z&ENvHhDjl8JFt4FZ3>op2YIt|!`E?bp26jq2L0W4x_A!(4b0xMZ!T-^<)G}JIBKNu zQ!brG^(?O1V-o1ciBec!+y`Mh4hOR$w=}j}pcxt*vSF({oQFcidcq74PKEwSy={4FYTB}qx28pI>E{*_q?AA&@<)J-1Rc0ldx_Pe%&hqx0o0>n3_GQ(U4iO;Q z)$`V+7*n~48iWjbulmk(RMCdZbM{*O!W4h4V6CWu5)sl#nbc8CIR2>ky)V3I9#{SF zLYmcpNKsOgzA5ChEFQp`B)1-aiF&V^`F`xzM>`Zuj}Thos0okni;0<1U`j;hqZ^K7 zA$dvx;moJi6X~lW{-wag^YjG=(u5J%lo3Jb=^Efh?a{H2n5nOQq)PZz=-xL8D|Mng z#Cpezb9}~lQZViwN(_Cc_LRUIIN18V>gp$@sYi633V~7{zWb#d43A`}all5J$@@E# zkVSu}$guSI_5#<5ey@g{H%3QS+K2MVm z(t!H9Uk3FP&-mOV5y^4ioARaAeH&*v|EGQj6;nE<$)-u#bcm}whnwW5e^EB{2^CGo z9{xkxy|Lj}7M2G!2fgw`m$_6#b>*d&9mE2+G>-Hp@h;BmhQSgw+$dn)WqMLY$8ma+ zX@{8~ca|x*zOW|dfJsw+6+KorOlxcHXbd`;{pd~tG`|d-KC1{nwvR?cd1|70ENJ%0 zXwv##r(p9+RBfgn7aG53)}UGK_>NsqKCj`VM=L=u*wd`)D$P21^#cwxaQcD2)ORzl z`v`>dEv(R^f@r#v52rUrZMO5IDm0@Qd!)0?mF3wC8wF-qFnM7U_CY&Rux#~PEC-cR z(bDe=+D`*;3lz*7wY_xnldGUK^X>yK9@Q&NbH zS*O%ZPhSjg^Ze`%jkJ??9D2D2OD6+7Jwx(~W{EElAI>~lJw4vuuJlM?_RiuC{8)Mo z?tmjV&&aq?)`6KCP)FPJpu-~@hPQu`TN-p2m^b_w6-Eo(_q~GaKyac`6p-16R#?583)Bn&v?YUt$nTuE zV}DCb{lk}atFO1S;fv$gUY49ukzAsRgv^TJW$#--t6HO$;ILrU3SX8dfMu5nh2_Ad zkp^xrf;+1?9L2MAysCTr!?_ap}9X44wPiE z!OAkY!Y@^nhKPXgcsJdyTD>@!`8! zM*inxWdopid~=f_$Wo&>95<@*?BMJQu{_xSVPCd&?=X}keeA+&ju$G%uaSIc663I*gok>}R327xQ8pWv=qs0-qkS z^7u2lxO&W0XZK!Sq&KF`CucEUZJ4gdG?*>O6$G0xzZ~VV_+=QSuh( zErtKh(eKK3XJDVQCU#?G5)Zj~{Jx72YI;vSqNR`GD@hdyLR}VWxJu&{l3JFDX+&Da z=sJ+?=a1g~RUri}rpu*^nWXN*@({HsE*1meG}5x7@p3QlwZ3ebv`rg&5Diy>%>E|1 zY!@IclM21Ty9`t8xxjYJA zAmF>n$`?U5enh?HE&eJ=HV}3PKD|%d{|CD|Ed3q-17jUGH@H;1$mY1{ctb+up6e3x zXX zm@w^T$fab_&~mFF<@&T^xV@f#K!gH5+%t%UoQ-T*dIW|WDdgIs366dU!nm~s0~FY` zqhCp1)?fyaBgh9TGMUgLLx?Ojm@}8iBgJ)?;5f+yF63Yq`3eC58MbQ@HL56z{=wD$bId_XWpZ8u!5 zlZy4qd{Vv6dGME!7sZ}7Y^2pwu5Kzvi=KZPAihm~y99L|iUIHvNzk2_r|>rk{@m^_ zb^NoAcq;e(&!y@xo^3p*%lk&u(9q0(HEU5hlX~4fxoXWrsI;5wmZpR{g+nT*u)a|o z56X*DI1MKg|FcnYh!(fj5ILD_{3uacrFl@D1uEa%lDT#Y+TJMz!Yxtg1lWnjG$m%?AdWpqvwat&fT zQ%R#fz~ZFYyho1>Whh@iD31H6_nm>ERB^@Qs~-kp9eaU#evg@YhYUd)rt`rM^<5XU z7nG?($nr#cf&}$UWseCA?C<>UjV6Ik(X_VLi6y!DO5fuF#UA$TA*QM=XywTeFP^$l z-m!`tm}FKcRoW~9-RU8bqT%dAwBQaBZ|kVV-{q@*Pp6&}S2Y3w33~(!-<_}YQ15<8 ze+5J75_nMx_YjEsE6HEMtgKr||Mwv9#nJ;>Fm}?I6WVd{RhcRmkH1zaYaM=&OxW9p zt~is~s%HUa3^`&6?eCL8mAnfUZpwS#hUp62=|8ZCbz0O=plEApZEdajX)Y#~ETW8n zKG(gGV>+-ZMJ$M4%l@+G2m(_M$@9`Q z7-&^+-8}E6K#+eSTjHM)(B96=BBR+4yoVSgf^v>d;$O$!yOfRo<>m@k3-qNLz2Z(? zBm9J@mEhw<+{a~C8zZ-b9=h4b=tLk2hIuF}x9mh)F0}sIxEpnH=jc`L&70-~GrkLE{ZR2`JS`}p;^BwbXF(YbL_m+Z%S&Wk{>HZ&b-B}W z{~_F{s&@$e^!&^>l#l)9PhUS|nVRBa(f(|bU9~MT-`A;Wds3f-JUPIr)q`-)8Rj|_ zHe`g(vjqN7iI(IIynL-I{)s(JXw##ooQeR*q`!WPp*#z>z=`@+?|mQWUlN;ljZT-| z6Ru2MGZVl3pqVU+;&bU{OTK4FVtAttv1p#D=06dbz|zIFX8b{Iy~+=wLN6wfnAJIpYiU` zcOZ%!t?FxcuoBy+?WqGAsR#i)N-*-O=!*3@@8*~*MOC)>*RdwdIFm1C&sB+lO&o{_ zf`@9YpRd5q<(8Ex>&LM~N+;bU-ONk#hRET@PgA+RyapQRDa1nT5=^5y*Gmu8rs-o- zk^2R;EK@nih+WFchZ&Iy2N!w_q+|tJ5MPM59c7uJ4DfV$nH2vvXaTTEHkam(r5Vr ztu=iR1Bpsr^C|_yaO#WHa@9yW z2l}TY4GP^=08TzpsF~Zz^CzMm6>JofG$-akW<~RtnFrDSoSaq?nPIexsuuYtx@Sys20V1)xF42VRnw?=x- z^bYAoyuXm=Jq#s_%yoD?KGeSx5k++Agn%#NbZx&@S)<%vKFyeWr3^36d|%QRgaHN^ zptsZUni;n*JIr$(HJV|vBKq9l2DZyMlH7p-kLVPNlZ_!bV5 z5~mjuT9s z;wc#-695Cr1n~OGS0hzjr+rqH?u>w^^)CE4Jf<4WtcQ26=OsPCjbHiX-q!;~F$dV? zM20WR5d@0xE06#IKi#n**DrpJ84z9`V zg*Ilv1kkJvA`m1L>run~6Ep22i8>Gz4-Q7$-RsLR{yo76(OECly)BuFIZOZ)b*t_W z$a0s620=l}29|*l?@ySF_P|i8AXeUTIi+r&xRO&=5H@@l?r--KCZQX>6xM@*c%Ls~6(Vm08uORnb z(8-LjX;Pi=trP?Uf$Kiz!?*d-(JFe1DR=C(H3`3i8-0qI3H%_mEIMr;O0$^~koMbA zCN6c)-dm6*P}G1|s7VXNaREouzxhH)kC46WKVIM7-gZH;x6o#5t}UNMA5J<}Cex5m zS4}>8&BBbbcP|q+9$RWsflJEC?NI}A*T;`r;E^r%Q&rs6JVGFBqrGcNCe)Q2iO%4f z(@;kJCK$RXe;726D~EDOs(##AnhD=18$J8{wNCGk)h{fdMeg!qs-9O4y?ak@FD|vq zEjiR6*p%V4x||#lyGkIu~pcH9-#5Pqs^B)ftx}$*N6-$LFOva(ea& zy+~Lget=lb^!gF_?u&TZxahE@qiWeb9~#jW+riJ2ghI|4dXJVaK&xAJJIsNot6%fe za@U~Mx4+odu76EqL91EWECh}|BU8S8RwTv%EGUAOIC@j}t;^_vgVGm1MP)%tj@kXq z+}6>~e6EWrM7E9mP%Hh?;fL&}FH=ow1%p~)sh^W8J1B6X%(zn5O}|h@U5-8>=(yg% z1y=c|0sUXRLJB*_y0b#bCadi`MHj|3lj{sv2-Ht(8@Wr4t~XtL&$Bc;G7ObGj)dhTkRxwRCn>~-p?s+B}w8+#1_U>iY} z|ByZV1~bb%!^r3J&#E2J2!t2y=uyZ7v;I*nBSE-jHc|sp+E+p3^B48xRvuNV6Jn@t zc@Q?l7g0m44fv(hSM?piEGiNNd(+3;ZA_Vn0N*3r)s*SR`G#Hiu=k-EY8`ff35lVd z?kB#Ph9L6#+Hk>8fV{1fDf1zsh9O;Qoe}9+qB%s(pQ}fo`dNC-em1qP6x-&A0XZI= zP-pIGY0Y8F*Ek+5d_r`-Yg%lv?38&1QvMSuh;W*{>_*5>y||GtU%<#`M2fB63&IHV zvrOk=;!V?iiQfp1w^+6nbG_{rk6AVD1jMv5h!Oo~INz31nNTT}dLN(McUXt3IXx|o zbRJwTW;8rD|=8*JQPz|H==yzojoD+hK=jJ zK)>^=!|GPi)mMeTYD`1t_VE5e3<#TcIvfl7LzPRHTNQ}DJ_~L$Nk2lVCkH(iaS8Fe zW62lq5ZsHg_Y@S?fW>F`qUBuCLLg$!DB4Zdjk&pG`6nA)gy$sr zat}fRJdjlbQAAc&tgD=zd_V@JeKHo<5w{zUeIuJ`ztr0LgT_{1eI!rI@vpO-WU z0|h5LSruYK{pj}q1U1az!Gc2zAq#yJU?STZk<;Y*J=1d#b~Ee^Bt$SyvX2ucBvG7T z6|VIredo%i?0Oj!dUi<2ht~{4=Dh!dUGL3IV7o3_Hx;{YJ%|hJuhJTl`gtRh2W>kH zzl2xr$)Vp^s;Q#$nGpBR4!<^G8imC+;XU`XdsWGp!R3m6L4Nl_2?U@UKyMZdbkiT= zWLwnb<2c(k``ApG*xF4qe++oIWqJi;m}ja^NjLj=aXpk_P?-8I>$D%(v7u`5ca?Sr z%cjzTu$S1WCikeF0L`OcK$tTS)OrEyZ-&7fu3kpGjlq?e-dMsXXoi6xK_MN%V2!4? zf+Ru0SYY68@IXiq77B#!!kt9D8v%4F4Aeas-(U^5QZ`duq>#h&Fw4vC)fPZNdWWYS#)(W1PAz7ah~hXNO ze_sW!`Djvddf*9=cjfOEd6X~{aRIj3v`_CrVXn@>;gTiqbS$qv zcn0T0^;F-K76u2mqNzk+=KKAst}~poQa#Kl*zsr1LsnqY&-1$$eQ1K2Jo#Ald4mKC z(o$04KCKXIP;QXKQlaDouhjc`j(uApUOdgU`c1~nTzu7D%Bsvxxj>2X*U08}oWu61 zPkPXjap0?-wcll%hm8xDqe+gE>z_RsAD=|GSyCN3=IUz_;X!{1y?)~)j)Pu%IFNLY z0!qY-^Pb4QAO*o-m)kYn<*k*#X0-tQ>G5(B?A~}0&Sxx`Wh3Prlv_3(*T{@Fg2sRw zYC}U~ZUYZ2e>hx<- zA&w+EV`}<^&)WC;ORk_1<462WRUs3R!3D=IGlIfSkA(|GdHgWt<)01pah2Je;l>@p z&RlZKlXV5R&IH`q^DMQE${$#3D}bYda;OpZQ@=O3y(zOAuQ*G=Hh)i&zldNVYkv4< zws9?A(jm_Do-krS%R{M|TjjvegV#`<~mrx z@y!m;H13lbfuVRAQB*$@H;RwhWOtCm#x52T9UZ+jUM?F{fs&%8Jk=DaY&qzd((SuZ z+B%%c=lWUP$L8+!4Wd1h5x#Ovo<&@>Wo+}%tsXgmv73lM2_ z_HW@^JbVMPDI&d(@ZLf~6ovMipDSEpsC_OaO>>Hl?KJ2RR(%3Exz`H<5Ay&OY?b zIo|4XR%Qj{VB3^x8_38{@n7JX=TE!OWJtMGP|V6t1qZQatq0>Ezh%80PVT~lN?JQ4 zX}Yd4ll+lLqfH!-;efvuBSqlIGK>C~O-+Z(M6Q~1jIgTS3^FEhr-QEtZ(?u;A}@dH zFfpMVoA_SwK9k4RW+<98F`#33>~80`ocFxQyeX))dQ7;Z)586mu$KG5LqW}8ebENI zkr!>9Z(sT(zf~>so}4UQ-sQ>Z>SCOHwoRyL*he92&V&OwYBwxh z{o|Rwsh>mz*)lkobj)ryMYWF;2C2W}{?3n#zOEe`dwI3q@2qdt`Q+T;AV&G*C+IdA z-!?L*lP6|ov~;(nbmV)E)uDL3$u15gFe>$L;d{$qaEH|*rgG ztQxfBpij}5Eih1y3yc{)|7|OQIE!l(gx62XReZ`YkBltlHlH8t;)AR0j`G{aiIh>0 z3axjG*K1HC#tIEz$%R1)s={36$o#xz8GvG#BorPgj_~vIPPlyQiy!;V_-ev8$P$(^ z|LHkDw3cGJ5v2aB*>|9Ii>!??UE+5v83wc&yUWu%Yp7_sGD;HzxvS065rPr*Z*1N- zgW$9?$#2&WmdkyH&y$IvRKa;OM9^}5YE*ZC1VZKcXVHwtHTXgKelS`PVW0?i``V6y zapA`J!Ej=<#*72q{A~|k^cO@>nZ>-?x)~9O11awv?sIP(Vv#`237F3gK>(uqwH0 zqKU`-Aoda39Fs;C~$TN__Rx$sw~mJy}eS{I{c~}mo~|H zr&Uh0FpQgL_f%DrP3^^I?@wMCbU4Jlr^{FIolJ>BZ^Vs5SpGHE-s4g(H%|eVkvzwH z|LLPPO)v)P*=y8LsJP0AyI~)CIyZ_bkAI+z*aFB@>a6;<)Scj68;4vxL(5#z>r}2$ z6*6E6%?=!-em~@HkibCqBwCJu)E}bdHd>tl129=)bj*z#@$RHxRfJ{`|M5+AQqFsy z`_E|;E(Zu_ZJUNyE+iN6oMVh23({-fqbd)upWLJDHE_yPN-XYCfO)A|3 z81f>qM>2nEC;a1_!_*EL-rrlV%=?nH(L^Y?1QpQpW~YJ~!82NK*_4!o+4-tcjdtty z^nn#!K3$>0@{EjR;*CX3`QQD@M()kawOlzU6BYfSa#%$oeYuy}k>~*PAMUKMjuw2x z%@B^F;=i^gwmm!kZmcE~fqT;x1d{WkT6~Rh5vX(mWZ33*F&Q%oInHaiCZL^=@tw~# z#n`J_X|K>2-(V@xJW2f){sGIXKy`C%ewX9j!0(81V~)P^l=23NkvBT&Lsq)k4y!7B zW|jrQK79M&_`HnwA*Sfw$wx`ES-$x8iXHBqQGfOx1X1yJ+6LmvjkI=u`-8&fX0R}A zT9WGBeLpc~I;NYyGz;t9QnibF{%s~NY{Pt;!KZ+)D1G$8eKX#$(;ziDbx=6a2b53# z0b;`|VM)6+Wc4)SMwdRu{9_6ZlzY-N_2Y8kJ$SZpZ!RJ9cW(hrO@4&O+~YwV7ND?&V;OceKhfPK}#h7MmhFnXiTE)UNL2@YAUK^zru zA@M}#q*?Q1E<6;{c$cegJvF6srOWzQSxu|e2V713Pa_u_z&+UqwRRxdRy3wQ0ek3t)^ z9O9@T)l44SE5pR60cJ>v`4i2DyPvJ*P$e@D33|!v*;QP?MBI}_B@&3GQOUoTYN@P) zfcOJM&U&9ncYA)AirA1*>eA-(H5YE5_g_3(A;=$Sv%<&+RKLW_ivf?9Fr+(^ZR-pM zg;oEg6}Kg+Q@-#SzA2B&ZX`hJ2y=+k7>k<=D-g?=Wjc%>!a}wf#clb$-o{9(PAU_k zjrQ}F3ZZ{%=CKg+!9l_M$E)n&t@XW3uL(O+GQT9dTG^UMeHM%pPLg!9+@K zi6I%iD3Li&@PwDSZ*nyjs*~bc1G$gud?;&ZHBn-F*Lwl^XCf4*yd} z^Zfh)8(b)<*vbM|{k9o4Bi3b{nT>Z>8dIsG@mtUmr@aGaey3VdhCrw5*wY~4qu!{u zjKKBf;XeA~v2a$Pq8VnXHI5Cf8CodKOB1VM5Ucr1j9Ajs=?-4nyMspXU6E^W$3l6v zN3?kZ>}ksblQ0^z=i=vT@C{p3iQtgSC?o6x%0#UJMu+ghwTZzM?X5BC=|rD}XK+by z0R&(`{_K#i_VZ{*I4kaJ4k33`NX15e0}hl{+^nxC`YGzG!ptgKlyyCg82KuMg~D3s zV_R<3h)tbsOP=rjdSIr28HILQ3RT*JR~4=`9bO)^i-WKgLh`}FuT7oWlmmi-0Vfk@Kdl`av-LEHna{{Cm2Vcl6>6?2N{;wLx|!7J(O z@kr$dTTSdGf1+%vv)K!iOH+DA!no@Z#Tqs0`5wQCPjrfR<<*v0XyrlBbz6+E#}o`E zWP?6}_*=^+zTQ1=@AYih6kGf08$SK~#L~s$iA_afKR_bsi2FzOY(6^Bl^4m*lt6|B z4|d{2=p`9&wHoblNF;oNC7piLW$89(-@spK-R+e!DT@8;&71H)WqAa!n^KY{NVV=sLE7vIzQZ21v6Ne>>{`j!w4A9+#z5wL5b zMv?Mqb+CVxKoItFnrOP21BpEo13q$XrnxUdzSblycU*itF-!1zs6rYDzB5^D3B!_K z-;D&Q!|)G{x>$C_oNv&`ppTr^aJq|zz;>BN4Xc?`*3A5)hZWNQ9S-In$y^PlO!&k~ zqUd_cfAuGPNf3Ir#64#G*xz_Rltu(A-cNd)%W<&q?w$o0Z3o}{JdsuJ-)PmCIt6i% z&6b=pp$wBfys?0P<2G&#bT(8WU}`YGhA^~+OnxGuJ@w9M!dJ~uTLyV`<>9OGFk!SW zN$h0cPqgyT*K$2hli2L`Xl$M*nxr`o+?%7a@w_y+O&B)JZGH6*e3a)|TlFcauGH5Z#CM;0@uCHBvQ*l~z7ytB-;o z?Q-4TvinnZ6?AwxW4_kRh5sacrEgh|lJKQB>fz;K$&TpXk>1EW+pbn(}Kz^mZH zfNRUw5s!#WLtd!S5W8N3vExN&WwQpWO^2 zMEd9jum&L#W*)_iWBS)F0vJ9+j*n#u?DbUp4SSh$NWK`>4O8xw(|PsK>E0)AiFWr8{Q^9Ml`AfsVD>);d)0o!^uf@`w7}*{A}D_M-Y8tpP=m(fdgdbO{#`k(wXL zb~QQ!f1QZt-zQ(~%$I3gV z8;5*5pV&ddz1?WgtHYr{`yT8u!bVfh)%XST-|ba29_NG!AK5qs6!&uL>J?P}b)pBx zj(P@}k%DXTLI~S=Xoa%YgwGB(3RaIV{KYul`vnGckZ6Sj`W7;wV(nctv08sCrHBF5* zqXG9lHnBG`7!@WC?<)N!zuG(rQixBU)G+l<_6Vtnsopqe4XLpBI$XyMKUe&Ps}+ci zn0dM%X2^V3`yhsbR$TUKPjJo}S>6$`4MFrzT`WEl7C$AXmnf!15A01I2-#&20N60w zZ9meoellmin3e8B0tQ;H|C+1>kF*Gqr0-y%%Sf<3T`jbiyt+A_>Y8Ym>PT)EWA_lekFJ_PTzwDWaQgXeyE7sd)yn9k?IzX zk3Mf&JXWuuMCIN7z8MaxNNARbFZ_~`F(_-)qoJ|ZMu2Sg_jaqyV8P`072sWZ%noMz zzyqs!d^$p$vB-E{Qgb=zO3;zkJ(87C<@48XR>>)B(0X@uo9{_VTK`eNh1nc7gt?(B zdD4hiOkQk+h?74&Z06=QCl@sjsxAvImU-wC28wC{LDfLq^v|>LbQ*#WAD9{%m1n_j zkjC?Iquw{J_T#mJaZWW9q=<^a<*tdm>$8L2ye3PVC%>gBc#W;z#2ULL1zCP6$s=%M zOzdBY#6PFxN?Z*YgzP;&?bfOewv>LlNRe(|pFgsgx9c zKpn&i=(I3Z&ta>p z1mz5pQyO~2g0;i&*eQ731o~hL*Ob!J?(rB&N9{7U-}LjafEOYg-C=Rq?9boUWc|ECi}j8C{=36MTayiBcS2F>onK& zLI0N!!k~hX=J%X_kTIEP`6t{X?k@kGkDn)-)!__xL|fX?R?A$$v923JlOuR+u;b2JEnbF_-asAGXR5(FO!qAt1(bbt|7tE(Ykyf~-Vfc{twytHw+ zAI66bEj&uiYXt{mSRlEQM^(Lj4wM>X2$6Vh-Z%%V!(Qaqh_75mF@x3L4t9EA1p}d zJ%bLFLMq4=hr?sAfvb@(c~bBVEE{gr3lj(puazU}l}&~~+>7$b(_@R}!7v`5zEk5x zDdsIo3?LBwJ+SKUD{Q)us#%07R(K5V{_6RLLR;44-{;u`K!$}?t;ka9B&QJ4jc4|G zwtZXYseM)IkS7s+VTo4qTj%$^g(s1YE*8F%hO^NT?h;?ne1ZT&1~03L!^t0`jCbd+ z$aE02D_bCr2t_FW4`+Y=+z&lr&w~epka+98Xi1mS41ySgAi_0wCacRp=*NmXRp<^= zu~26Wq4z-8Xgc@M<^u-$j#i0SbBmeKerR-#)P?pX+Q=sjvcv$|GPnuQ7#`JP${$UX z>Q>G?N{Wrz&)t1;KppFyigwl63YLp}at?cgi6+60-&|H%S=raJ+T*Ok3PFPWyjK`y zIK)H>vI@lMN&`#t!wI3yGEcU!qpoi6>)p|{PNmEkn9Y=S9UlrzH$&0XDi9#=`FTI} zJz(IrO>o+XdpMmcHOafeLpf zBF(?;4W_B8{6aNP&<fgRg$J`{&<++0K05`R2Hfy6VG5c#)-eW2U ze+)(=huyWexb!W*>o)1nerlh5T34U6@OJL$wEI&UM+xI`(OXOh(HBWQPOa5~Sb&WH zLNMJ0jWqQ?vhI1q9l2D$yt;qa8T7$zD3>c8qMJN0pq88sebQ)a;lu4*av1+vxX1i~ z2h-2XXAa^!lU>4+AE^@__Jd6tqDR*ti5t&^P++%{D+YPjh ze7OVG9qU|4!k3%-naeVqzuy}P9%+6bT=8lNCrW?zuDh?o1mXrMh=4EGLAu0Z2+>T! zratu1(e9yroX>GLt;obY`kxOvt%bXSAwkp@}mSX4l|q#Fb&N$HN2?(T2#{k{M9`5t)A-FxqenK?6aX3m^*t_*?? z9@Bc{>UAkag4S&hkpEW)cNn~6h=>~EZ;i9dUVeCi^HFESW z7^hsdjKzU*%(7D%0lG_9r-@*BIOvd~8^#>@asmnRGH$zFL?kJM3ii7QZr92N5mq{o zo(}qQV&2=;6Nv|1A03VR3H@P$wx$3@uvrUg$W8lV88xsu1q zkK(ptTvhDe_I}Ne@YY_~2IPs_4VwLAzP;VLEzdGp>w38VGLFclq`E(eE{n8pJN)^w z0s4gUq$M*|^?l|mBq@=$nEGSTRmHcM>aIqFAn<830K7)%rWl8Go{(B2oDN`7Gg>rb zDHDX83wt&~e0faghXRD_3qN}dUH#u2837O;inIZNNXY>Gi+4S~LDn6tO7p01kQ08C zPp~8+>w|OdL2wCaN8X#?JX#LY%rq8y51b;DM#*U^2_>j)z0|snseFPjRnjRAIIC= zjq`@6{jW6D^dQlcSAoVr^%MNL{-0A9g4o~4x;|Q|6v&v|FC%p0PNdz9WaX{j;e^GD zDr88q0RF)tjSMv6QC)YY_g^wL*fxdEaIsZmpguN?x>NS_6hWgJnS>xC)iJJ^c8%M{ zg`%YHwWnZGAVZzi0lh}Th~^j9=P*R0#0VEglr8Ra5=!03rv`%F#%{Dk@R5rPgzh4) z^8d=5Jb#GrNJLLVpymxp5So#pM8OE)4EXGO)19`YkiVB&9gWX0jcd`2Xsoe@&Q*yZ+{t4k1s;v$5ftP!>tihV-+h_kAwu#R z6-z?02kEsVhoJwiD*DgbqM*kGM#$vx)nob<85spWmXwJ64nRg)Z*vEliAKK7!qFeO zD-hL)1{obzMeV=3Y7mE_RzJ>dGayL8?rvo z)x%{6_@FkxK9ONtY5N~H4G0O+yF@l~jO51Yy*!P#Y-=e9-SAr5hEk(|-VecXwvT?= z|1a0e!(L0H>`?M0H_ri`goa3};Kzj}$hAiQ=CrSnaFxu|^=}q`X+^Mlu>`Qimbze> zLLNx6KHxA)JWi)eh#{lir(U`~2LKBOAky1HuJNDkL{cyzetE!bh|13y%9Q*ae6IWv z>Bxl!J^k?*1EE9u*b!emvCm@d%Ph2P(+E&xH?Ywdt^Zr$@Ue3^CL_`N`f1)SAUHAR z80h$jKUOr_4PnT7z;qMZ@7^FlTo+fp3V}6B7|QCZ6G|2QeIE>cT81v!FT|(Hi4@Up z$eR9UeCtBAGv_{4e(!S1=is;^6OI+-;q@}?--Q4M^h|jT1ntmzV8r}ZQ!Bwcp+qsN848+C(Yx4n@kJehc+_U_Jz6S z&gi?dbGh8K$>d730bLgis zQH*ih-u!Uq7dU)kfkHq>B`Qg!FHpy+-H??SZYTJyV?`ZPC)DS|TpK))1f1av*r1JC z?o!IPm_{dXSOLT4?b}kSK5gM}e6|}*M;OVa7|(Za8Xl9tXy;q3cceaGCuuDmS8fWS z)*jA{cBFNj1Sc!l2ZyXX!BcFB?BD&YaN(AKkQ6L@6(COLogaz~{~llzO|5(eiZcFV zeN!WU(9I%(nrlUuE!Q0Wd*%c2o&RPbd?&uEGCKPY4ePm08tNZq zIrauI8HmYmbx$(;Meeq1X^2t@UlGYdp`kuk^+v}Wkeb59l6!A;7r=!p{18hZE!l)r zqCQLwO3^i|G^s$cuW%_gz?=k~6x3x!Q*yetbGUz}u)n(FhEAOxt=vzDJH-L0`S6ne zl->LDLBX08dhYr#vs|th-V7p`7}c=!sEH+$BMWoR=y}-^dHKpSGk$4b zE<}|dy)lzZ6wHidMk(Nz(gJQvLBj(xgR5NPuYcLYs|#lr+yECc@I$=+;;#x_-N-tH zw~i${Pd1 z-JXr=o;EZ0l$zIjPWdi0vhBrekDfGyTd_P9{!`~%#XU-|N9vs%Hlq5H9QACHeON_? zE0z5iM?ArSj6ODIuHI$+YVX0oZ=zZRxke6fPod9pHWqksg=w637Ztni z5L*F7IyK2q>f4+&sDGX>Wvy8w<4>fu+Sqfxo(9z{sXebS4;==4UFfhg{=8bLe zMxh)rOgHdBjtuf2mAwpAi7WGOfPs;pIKtn;sc>;T_%xQ6%Hixv7@M16tP*(tF#O@CQ-6i94A6+*OBkB-Vy>bX zeo6C!YC$>z()Oa0e-HQ9d*l1(GiKkNxuf%~f^Z{t$v5X5aI3ewZnsm-$*8sZ4oN6v zjBp2pV3R+xtE8P>$O*e&^n4{vpHou!Hmhls`T?Up-q8FrKMMI5ul0Gsp3@J+U_)hT zOG8PJ0+7cP8}tGHz5y<1x>+c(LhiuJ(Zw0)gp&*Z$@Q_NP$!r^LPXwm8mCT|$v@72 zYq9*U!SZa^CKdc(2-W;#%VWpUnaDCmPqtrT{4hB-epd%Sn)v;~)96X{KJIuzHPOP{ zlFIZooZbDRphx=~!ufo_j4t+ff-SAa+;E9@fcr4FZguizNI%higve&Q0aG)u8^LtN zQlXMTjnWC|C)yNjOEK5tOat=O!SR)%(8LGO!_$sfHt`3Fvzl+#^P=t=D4p%x>ZuiP7RNr(`DzND@}5%n>UV@l{?=%QjT`M> zsLS)APqA!1HA}U9+!}i2yEW;)%LVX{KO?VdG_eV-C%@WPW0LR_;tOxSa!Cvin1ZX#OYrToy9xWzKzuBL*8 zl-rb@sf7rUESMi2q9GGj1MJ>I>O_}Sx`8H~ ztqFy?9B zyzb$1*fg0X#;*+IW@7Vd;>g+p5zetnR4!QEV)t0JuV}QE)w@lD^%(`bCtbd`hzvR3 zXMKH#`~94pM#r=ybcSVd(?)hL8p(gL;**NB{dukiokwar#vFRw!M6SyHA~_*UWj>- zp3@}9qIbJowGALpoHSH3Eo1K9>FdPxU}{C_u^k|au2U&r%Y;raS%l>Fw z*%U1x!nqePTjEUYh?e&zd@3zo>%c21sB5i_V2f15;c5MHF4nvHFm34S0js>@+qMBF z0Xj&SrQHc`+khB{Bnw|i#IJy7r#_v*rsW2`ol4kId}mWVTvO@Swrfw8|Dp+^XIx(e zAHKMC7wvNV47URa(6+No|G{UsAB4dnlByMjIf1z1T}`%1$l$os30h{b(%qYyr{JZ0 zplnAz5V3jI_F;q3FV4zY);v^C-CEV|q+Y=yIRj@=&sW5b8iygTK-t?p=cBS8&c0(g zKQzoz7oa9N{EnEv?ieOBuXE>MZg^mUu#8R)jo>P65T)fj_K;t1qp4e*h~>g((Vdju z`|xE`f$Du%hc7w_)eOn+2qPyBgpcsYn{-s81V1@^z9nK0fb>T%U!o6h$j!E-lzf2K zv&@4Xa-YK9pZ&JF`>w0pK-7#^{9(P&Qh#QRJo}hIJHG{sQ>%DG8eGd9<;$T=!Zc5b z{zoC$rh|Z;LmOEZR0qY5l3^XP_fTNrp2~^KV9_ImMf??E@c2u(St6~qYWOpmB_A)l z!4@Qzdpd80pTg6KHj4f`wo&WEB#eg1|B&g1x}&6nd+l45Ae&CxI%|9t&MZxK?w`;S z_`7~`4-cR3aSiS1z%Y^{L-~D@173?%_oQsp{TL5QuBqCC*kcbzh z-YXC?_E2h=Bv9Gmn--q`0CY>Q+PjKp9B*il zxMNM>T1o{TTlj}*jeX`;FZfDNlYLUYV&?asWyfM;-QD>w%;x-{B!>q6I;`546i+$i z(q(HTGY2_}O_;SwhI#h-1n2Mw{&h}faIobwN$acX0U(D3^CfSGC_1hCUz3|L-|_VE z0Y61yCi5@DQ?-DNUz~Kp2e~EPQO5dpCSFV`&aHXn&r_f4`Q}ZKysZT&2Pcx>>FS{; zisr1Bzw3Xm%}LV1OfQa2Vnd?wV}Yi4g+Y6r*zIqRM;*#)zLR==m^zd_`AB^6<-u<` zZoJBj^NJVvN?#7d@;R7+oy;lNyDuQVSI)e?PcnP4JDzG##Z^zbhh-Z;c>*~(ljTGO zM&bqY-Jard{aG;V2(S6@w$Jd1P<{;(*E&Wsz{74s7O*_ZDvR9MJMbURtdPL!F+1Yj zHFBXou961Wi#I62kt|I=vE1DyORJdhf-Oi-bAfcxxL$QU z_H!Y|KIl9d2)b0xCU)(~tjsP-FU&0PJk1hK7Y|#1B@r%Fi`UM*8!BSQVl zC3S~UZzo7dI*Mb%>v;@8=oE~_U2Go)-h+`2f)PenNtUtV zwgtuibwj{Rs;#>Na3IU;jZ;9Q`{aU9>a9Qdf$h``dRT;z{{!~|N155-D^B1Cp`np# z{Ay=n%8shwA1&2|S6TwjMo;#y#*7Hd2xbE=kX^bKCfuW&tm^Ai)#A6 zW^N{YIxLr&1QhWW*FhopI3$nEhtzc9#rzkxMA#qNYkz6QW*>*-B3Xk)^2qARxnPI` zw|T_OWq^BGV2%BA(1T5KvyL}Lk_zO zQbhxCDYZP7Qvk9b}@mIuMa}BQ<^-=_dM=fPZnO--wstZ^9LjL*tlW* z!C_%x{9qg$99zf`>aIxm+DO~h{(c#i5$2CpFuP-N-7uCdM3XF8U|?>_7%~YBzqlA3 z3siRIN+p&f)~kvbhW6v6G&YXiQH7g&z378x)BJW2^IH?7yg&WxJM8?Dx#HtPv(X89 zoa2fk?~;8@u=6uK(FI(BQMI>`B;@kXO!IZw$f8#F2K5&k8-5CSV{@f|S`eLdp?Tc1 zA>JmZ&&FS;z{WEL1~MYUt2#EsTga`3sa{gHh_(14?BZT;M-T3_wx8T77o1epaKveI zkK%S-pb=h)*_uM=gY`T0`k*iI%84C^pCC$!@vezYVj2M+?@ZXGA(#uaVyAD&lIt*< z$?YH&*(y{I-j2^(J@=basl{igXoUmMjEv8$of-W&MPhI5CH*^OpZQ*L5Q`8K@?FaO zRD1!;(!eVFEklV7>>{yLkd^EUt|W-CPzLvmJ6rNP2D-l^BYlVG^Y`{okYk?OKF#J2hl{n}h{M%%eZ?_0s`oXXeXPjPZO0JlBSA8|Irzn{Wz z!&dQhxJBNJD()quT>e1?MkEC5GnqOzX#Ld)KMwX3ehCv$BHMG2B|Bugkg5|Ew2r94 zL`y67hjBwmXO-s|P2e$3-xf5>{XR~j=_X))uty}<$u*N(Kn~WT5AuH<$|Ls9Xfpk> z?{C*Gn6rUga~CiI`@9X zn^Z?(GGYMmclA&O`(cwMayLS7SukB8$&Ug_@gi|jPBs$c zJT0%oPPIW?F*_za!>mg z)l4>fUnr3gNC8%O3R2vFyy6(>5BQ-R}OCDnGB#^mvLs1N*;c0c~&_=2ovD_@Nt z(|vrKrNwFSoaAS#C8TqSJp0pU?!S`r*k&l@WFVBk-u#=FatN7l!Kl}*s6mw6XbZ6xgx|RHKqYtXy+_Dvc*`r z)AI{Hx^1I|%nN1JhEs1J@O4>^GpP3t+HTx`yg1m4a6+rgAc0n#B3D__F{3w#^dclB z{`c1riQ<3-IjGqb>u7&6Up7hrbuta4tiS6)?SC!64gV4HK3u6ZtG#alnQz%WE%11> zoB}#%vo?e2Set}BI5;%ar>|!a$#EdelA&u*2cLfLn8AY@y@8po7+{I4v7Mt0rMo0T zigwrkC`HpHD1>C9y8f#}l)-SM$>bS8z)4!dYk2GiJ>YF6BWe9Bt6#CDvCoHIYi+O9 zHHpWBXFS0$*ln~Z=D9%=5*4PPp89i$At- z9@aKtt#OM)dFI$&=krLAkHOHG_4e2!E#@w*2_ur}#u{ycAV!IkgZ|i~{V}wF4B+{a zoxe*!>Cb1ya{W`cDQx(c1jiT?ApEEw1y%bTvx&6%#N~BW*KYh{ec#lrn-|u(rgcTh z1lQk0^cL)RWaG8oIv+bjo1hwD6IooW8U%fo=OH4Ro zlYD+B=08EW{7xkp@EaVBLke&;@Aq!AlcfqjoG=KQgWdhf2eoM zont!=_m?wX=)>TzX?)yX=pZY?X1F2sk|um^{^w^jc!?)aV8FySCZmeEB>&H2zYV18 zm7zwd;^&FZtfr+ zfnIOj&O+%whCMb+v7L-O~=nf}>o=f!BQQ7ZM z*kq zE>6m&6^P&8OW?3)`zDpt%uZk??{)~py&rb`6c%Hy@?|_{8N*@5W#Fc>wkhJdp_gl4 zn4AR(_xFB==^ab5Dt>wYL>m!8ZINyT@$3kJdDe*gP|=MnD%!YHzQqiyxMvj(3Y|1@ zL)uO|x#D^LZp;I(3m*IlTTDM%h2s$U< zxn6cb?A-W=s^u}%YTuT*oavta_V4XWFW2&TcGS(eD$+b1Kz5$}r_9K#$g>uW@bgZE zbe8S_L2QdgpHo?!Tx?wEDs-mMkiv_C*r1VZY*%9hYnS&NS!$&hsXlaUH(`Da6j8Wy zVoYcZ5L}H;dKL>#TYfu${qCr0%dOVAztnU8r2o0i`{dg1RB^$6hI{h~;_T|qFo<+179{;Ah8T>Pdb7g^8{N`(~0w+=$ecrf7Mw=))3Ld*u! z)H7P72v3B-S=($H%m-&%FgcFEL0?&jggf@ft{u`0_1-SUWmI2-UBTP=ayHSX9wWLJ zA6vj3Q2uy*+NqlMMr3>Tm-~C^QL$5q&h_$UuHuLA1eY&xzm@0+y+bs?7k)pO+kGNsR$D9ux_Y7}0RNU+a4VKcgZXt2SIah>K@Wm3Q{ss&BZ{i`j4!iDl35IxJ22Ya(Qv~p$zdWgv z>DwgGsO%FMMSZLO^@r^Dj%ljkqO8CRTTUm{^r-ekzKPYAVVJf#R=;r11A&U)2SQ{g z_&5laNATX*e1D2l5-muE`t}Y}dUcRyZj)$923rQ_JWRVUPD)k&CGJR%-1iIVi)_m+Go@*jGo zIS<^0v|cxlr)2fKKu^BLr>|f)DN4@HgkD7mD^Pmu=QPA|@;Vho~1CC z_e}LuCMTgfEQbevQm<|ly=hdzbwU#Wg2|AQ;4NLtgUgJ86goQi@=pNrDG;1Vwu~`w z_2cMx^dl`Ee$bj?zIexzc><{EPOgTC$DV%xAjnLKYXlX^M~f~GkTG`vGEZ_s$fM}~ zWX4nrWzlNn1jg}atz$ek`cw};@2^t9J~bAVZDSecKQ*8)3R8HPnDzFJRhe!^KIhEic5O%VdJ|KU`pPlgJ@eH3eS6m;a{1rce9pnrOXA?@YM zoEP{(q|GNU{9QwY?y!-pL|rF>0j{P2i7Wdr>=b^KTwd(oUa25gf7A>dXbuh7kfXN; zvDaXNX{MK=bKcuyXA^E3O8?MDDt8r>ZbdxYqBj1ZQoU&OZcW`rYJVrk(bh}&?E~t# z*}B7BgZ_!@r$>EtK7ULE9rT7gX;ZJC%lSrHUuC4EbiYzts-|mScN@KMdc|5u`=l?b zaj1LTvW^qTDVkbw50n? z?_wOHzp7Mn?t}P)nxixvp2dqzCAQS&Q?}!cw9SyP4vTxiSQpvszP)8Gzj|J4!`$7y zYEvKCE`PK+Jx)0H%?n+iFBzop8{PeEg!-Rwc(t+=_eL$SeU~zP<*B2|QhHSWWA%H} z>p6Gtpf074?ZQE=4OmDTiq_o%ku;1tgP$QhzV5LRTsjt>)lBZN*0giz8C13x{oUG9 z`NyCLZxhP98_()Mn`W}0cSNTC@?vQUA8t%!jI*e`rfEt|<7YiVXf{f2&10>~@d~JB@tBI*|)~%gb z`bIUOy7H|slKDgniY1pJj1=zx3l_+y=EUVVWfJSkdKgLY7*DVi6bmHz3<3;;55B7z z0_Ft(Edap0ZFNS-!gGiZ&JS(OK~F8!lWs3 zRlD&IA*}Hd=$&fTG3?{iq~AMBQYsxsWYg=k~$qZ+6j1;fEm(qHPF*Qi;EH ztmx_gPf^DDFzBdb(RVr@B^2O)fztN*`V-2ot+hpz{ zDVo0J%V|ETq<56%eCT;yG@DWfhJ>UoBz?{I&K=T5bW0>2=XszgD7VZr{NZWN^ShGo zh?|$!^w3qA7y?JfTJmfruT5lS^Tu(og@e4_KKYqKQJNE#C_xvd$wrM8>Tz+N-aRr{ ztI#$PNxW<9IfZ>BpuCX7RZxx%fp_cmR$gODq_JQO^F&N%1-+H`6msW;h8y%H3`Hld zyx^@e#l7g?{34o%YXo`TAh%=1w&3@q#Z12ewlHI6S|#;j#l1(!>2#$SJ1sls{tHb6 zOPus&rX15{xp2mHE7s;m~ufiV|Ys zk2<@?zP~36{uav_=bPm5piB0r4%)%?*}uGYd7DHA)eXN9*16ci>|U-x$$Kd*ER488 zgJaQC1RlORG>j8zYo$yUOYzA!M1@$4b3itZzm46xJNWl)qx4_y>RS$^W@Pj_?0oo8 zP59Cvw@`&kC=wq7+#5g$Y5C-4`p3Rl_mz4i`tVTs#B`LbA9LNGIc%_3%irgDju=*k z%x}C_Lh2j?9{m5hUZqG23({$TB;-YHgwna_EV6&3bN@Vy23FG5SX{17Opa6Ssu{lL zDv@gfaKZ6)Dc5T{4_9OJhHefg?IHql02 z6mLft+kmb0@D~GC*f-fpmFqzxt}86P8oFkhAA-;HG4HF0%_U}ZSQOX)FqMZqzEN-4?iAK`%04clK5LivO5)j2nwNtC~KnW7fc8Qb-U#Cmw^IMk$Odu zN79wo0R&anlA^daUXk`@zTU4^<37>3vaC#A)jcb)GaX(U(blCm*nuZO^n`*)?gEvu zRnxc1tRRB$7!vIsT24_WAGy^&Bodv4t`J;|Lcgh3n0lw_wibjc%e%C`=p0;a_EFL^ zzlA(%O%dyJPBy1&(9A2tf(nOaV7iw1&UiS>X?ZSnXF**T*4VKE|gS;k?N9K_JCq^=S|bKw3| zx{n^qXkvU`u^1+uLmsaI2$5+(&WIXd6QnUDG~e-)hum{VfrVJkj+;1|^qQ+~4< zj6CcGPDMG^rS;5rt|D7kTysmo*pgS_)9jdB8iPQ|%zW+3^o5uC#T;gQ2MG@Zl!eQe z2I<}qiw~}RORRFRU3X`a)-W{(k`2~j+5+dadg|R?2+?K^wTZljL6qq|$8TF>HK#EJ z6zWB#*85*m3ux=&LC5*)1E#<6FV422ia8#hGmFM%ynj6fJvP4zML}N}TWjFkN|IYU zv$P(hR5IG#umMSQs9=DZMGY&z06;%1e@-b*im3@0FvgZ}fA&t7uo{boJNBA#xQrG# zutWD-m?ocU$-oJ$_FF*MpAYdGC2}*`+F~-q?MUc3(gEE95-51AO;<#iSQvv*)$R#G zcw|f~0Ob*^Rp5Q!1Y#_!YR2&?A!H@Cg=zS2K7{X!Aprp$nUPHt;`Z696d@zNKe&EfoSo9yHAMFIvnR&$nC?+_))XYJ{K)B{WVF zD)^9Nl=;52Db`s757C&y`ramrCqZ7oK9RuZ^DHADI$Fr!&xaMOj3uYeU$f>xbOKyR zElu0QC;7+-YP=ff(=aofJ1{6QzbpN!jDOT!OD zW5TvkBM8a%VHkXW=a%H|b?c`2?$dG2di9l6lC5r=ybS!!8d!6{)~QSsF2M`<&D+t* z_BI+OT^SryLcEI!Gw>FURHnuRt$xFU-X69|O=U=vce*Lp$u7lLc+t$PAvSiFJg6=S zx+Km8fiLJPT!W5Tj?f59_V!~hds#60^d9#14sh0+Kb*i9{}4S7#SOv&TO@`@ zk>r00y{40!l>aDE*+ISi^^a0JCdoN!XkjWn^vyL|m&Iqj6GY;;Cm zsQhb4giBpizrRGJ!H*(6f@6Jbh}p1I#W=J3pcx9aJQ?)6aA>;(*jR$6;d5KB&hv=_ ziP&s;Z)utszPzKpKCb432pKi8fmc!ufQM;XjI(MoK6{U>fbK5#_8DWV?(6e|fn1V|03%vBW zlJt4d(!0Mo;yJV}1Q5GYeMsl?Ep(7ML!I-FcD_&(CjD1q2?EGHBqtKQbEr^g^x=rD z7HjB=GO-ai!jS;^{R)wlS^(@sn&!ucXLZ1&QRu6h=#1QIi4`Ow;EIs$i!~zi8xX#iwq+n$ zhrJ{a1k!|siJ(Fo>x?XZpsyaQDsHfPZnM# z;}7QAHN6Cj@qZQb^w}Dew14wmBtsh8M}8*K#(vD z8LqZqwY|P#HOn;``Y%n7InTa^zX{CK4ZS{}s)|kzWdQwG@;Z31Ll^Hahq^5hRQvIc zB)!~tCQMdHD``!P(V~Sasx!2f=fIRQiP?gfTY}{WF5?or^6v+Z-$_+}lGr7Ja>_jA zbu`-Bw0e`jOIyteMo~pcp^66hky@e20%UU&t(Vn$2LHG-u1GwykMor1Ncm+PZ7j6X z6MS=R?$A)YQ#p>Vf9Qb6SfIiv`86V=(xhKkQb^Iv*Hs|mOG1L&Ul+N(8xdtvrx{nqbH=rPn}3{n z=!foUnymK(+~1V^{?ToXE)$bE=Eg6DJod3RgOb7`r8=M|BR4 z{n1Nk!<2x=kJ^&-QKAE|((!UOf{Ck-89}MR1w-3qsSkxQ=Y)z+hcB`eDPazwfdpre ztZZX&5@P=__KNgM;=LB~oOnChS<~J%d&(0A`r6nfjQ>8w-vS1^jdLb-1kuIsCh#L&w*P zk%J}?Z}E^oM88y$uXRWM(XZn=kstOSx>>4vQzb=SH0+^{H#O?tZrZujF zWRFaVw#-318AM*x$*qHdR{vJ~rx*qt*YY${f3CS7Ebm7j=BqoU_~ilTxC6;xUMSfa zbO%L+>vxe3LXL8>h1RP(N3>%b!>5D*MDoBMrb6r8T%sEzW>_aHP(A<^kqJ5NrD~*r zmeJSILcZK$!{U`&Zv=d-mdP6?!;bLBNBV^DT=xEjw<1p~=T*?%?idCSH{JAWfj}fGO?w3nM8=;RCVo=P0NcH9h!% zE#cazQk@=57=Ac;I^9|8-r8V3 zZ{eC`@h?(g1WP)JJm4$~A?wI~E_D@)6-*~Z82TU}1HlNUyJaTKeSB~Qc*)emyehdC z^ZxK{XwNV4+#=(XeHRxqzIz(CFqLp*%c~mCI5)xmk(einaZ4SsGb_Qao*XcZyMoY9 zMIP5Fwzmux(z(+HgkogE#`2-2C&OW@vZ|I?)l+sc+ z;A!;^#$H$PP3t|Lgy@;VMthI>%?gX`*ts+j%5Ot~qH>8SSSZgvR(J3Wnh_HS|SQ50~ zupm%lM7oc2I|_Y&h14?gWL9muOD z>;SqOHqhI>FJ3X>+xzQiSiS&AjEg@mPoO5-unP3lM%$J&(Wch0003#hZ?zbB0V`Sv zd$+;)5cbZ7tmcf@WwCXe^A)87O2xJgM9&~hCkHK%^cA4kMQ8;Ij2t@jiwSa_rk}Do zzVDgpzHaMw*fh}3#eJudYVBp6cvcyZ6OvhcKVh<(nk7y_N|o-Oa*96PWb8$wF~EQT-w*iT3iL!K0|U~-)K&*Qh;mt+2H|Fa z#*8ptJ0s52IW(p?&|wdF)I44a4cf&405N99$#{I^;+h%v=dV(~6&AA^1UzCoW#~WpMsi>N0v$)y#zncnQKi$K?nel zsa>(bN=xvQ@Ro_wM%lEmJVEXtJ%l-TFvN5XC8)ti44Q43`z;mgy&o@=+({s3h%!m; zV839q9i~$cZXhQCdBAKL&UZZ9+;5glddeT`_hN-i$aP#l$~}nYW-_mfs@Q9aa$#nr zjY#BE*Qp#W3~FG-4y$iOK~GO?dS3{RH1_N3L6m8&q?4`ve|&}p7h>HA2=6(Z?j{z= z>3m5)NS8DFbCPzi?c8yI9p(au{sY}ES7ZE8csZ9c#>Ot!iMf((CyRlAu-}9PRECY9 zAzCn7o=?4zg%E)igm7eAo+@zLd*FOOSA%^0a0MNu{llRaV)0Et4nZ?j87h@rRB9TT zmhnv4o3xIpCzJ#1@(wbcZ_yT^q^?n<7JqAPr5$=FJ?1!oasCFBCnCq$NSgbHm{gH7 zObXdHYh7PiW@YFnye$$7TemRbNP|j`PjpgSfVyE8@J{juJ9z46`@T|c49&!t#vYVTHMYx|HJfi7FY=CykV}O@&p^_G)Yum1R|Mv2L%a|4G#LY z8l>7NeR3P*@wBP)A922SRz1k&meBNDnuu~r1!>mXFM|6E@lKAie{FB)+Ie`Cf93%H z`Ni;NTMzJVrwK2ZNA5dU=%?700lg@#X?zP>r|@?TnNI9o-=P5Bg#y6+_KA}g6I-rC z%94HwmSU}&eJ2o9owneuMFr*kN}Wrvly;uhk&$)*Sj(J1BX-<*x>F z;8Y;DcU^dx@T9Q{THHS=aLK5JCS2q;>4bi=#h;m;HCRzLMXDGeeVxe7QK~Uv)W!5g zjmQ10pk8Rzj%!K_3#@F{EeN5#0Q2^}tKngSrCD6g?Jq8h z+}`{jDlhxL4-)+(b#$RyY;)A7D!yNA(P33jb$+mFyVmoI?{$VtTEG3Ql=IFaEE<}r zw$o@=TK33{^YW;Kxv=^;;h&y4U%KXGdb+sQVtM>gH1EdELy&8LwjR~SJbgV!&5fkg z%;m)Bl?qNC>ygFP-J|sVIO)E_#6}*CD1Mkj5@meAAQ?)J75q3fVi{2o_H)VDYxHP5 zFgVI=khU!0Gj&9$p6CC>{F)*Wp}FEnlu96uFRi8hjv!b28(J?{%WsGHlH!Y{A(aVn zlBic0O9Gc&>(q;Xf7RdY`}^La>3tbnVuD?~c&dH2_BinNiW4ckL%Zb8HK$nb3X_t7 z(8KV1rA-VmzDlIhn}&sJA5q_WDA%2hk1WhRSDlLQ;#qlVpUb@*;ziTZI)!jg*S&a! zp5PWzrm4yb^&YZ)R+ILIEWwm9AhSR$hhM3WUK2DR1PEi#dQp`#C{X(=?IZ_ZN3Gbqyf?LeA`5?%}S9cVsmaeEiO^ z#dca8akXN|XV<~byVRWMLr@qBi{>$A0S)-juUVY5Qce5v9wkX!koe6->ShrgyYJuJ zLr}MZiAmx{A{c}Ok?|FAE`_w*s1xf&x0jzL4G7Maom-L1{>5#1-?k!G->7hHVKmeZ zf~H?WFQO>}(MlA7MV7&#sq`-Ve4$6w;QrRmQ2wWGn0Brm_NXIS9N^aZ^G{_Y_;}kG zhf0CMYi7YL^e6Hr#~%nmVU9SueYBant{+fHkdO^IzTv$JQJ2ptUBiKZ*}}qP1&`Um zwFBD<6R4XCNRYM%kYp>lM12dfgG5{NbA5h-xW2}ud-062A3)lK6;DjqpYetU^g<8< z&i|e<$O+W|JvEtE7Sz9z zp_~KGth#6RF*-k$O)A4W3mMqcc`$OJoa)-zp%uAyDHESRL-!@iaKiM7LBCWXcAH*- zR_^LS1Xll#LxR_Hk&UU+y*p91#tQpn)4qi>2rK3PR3|e3H|qFkPcJ(~oCOx?SYWP< z{6t1u4twrl@-Grl!Iw?my$U3*oq8aUMf&^k!eS|t2klT#Cg8bG?Z7_B(W?wQY{!hB zw{)@ql>cXL)zvFSV%Z8Oz}0s5qcHY~V7p)B;8)*l&Rhv2VdI1+i1 ze?Cw4o=DH=Ied^kcim_LgHA-|w{%Q3Ii#*~>D$O|8D$x^qzm|Jp-AD$!psCc@Nt~z z|5Pwpkyb&PWyAFryUc#>?;yLh(FCvAcEd%He2H-IhWLQWagb2a^v}u#9XL@VnV=c# z5wiZS-^i1$I{~D{NFE3;tJpqS_(bOg*=WX<3*wgj33^f)ikerm&6MjJQs%Im_V``4|N7P}O7MnUe|6mVk0`$DA1({(>miC;KSwggNP-U)?dUU%kC ze$}k!1p8}}Jd2!ktFdYlbZIF(N?mD$){6<_qx%cji183TM{(L>g`v{eR1S3Mns3bCd%=VZf{fS2h;QwVqX8uv&H zWl$BMAYG65klhfkX^o9US!TIux%pB=cZ(qdnH}5=V1gaCtnpBb$v_GlZ}%*|gT?z= z&s#%o)5^4QYA3Z`*8eP&(t}X-716`uB}1Resm{r$zRA7y7gL0UN?lP>(H@p}qR*vQ zG;o6HrLO4KldakUS`mF`NvH(7J_Zhw^y-_fE+{{Wc74zpA|y%MPaX=Xe)hx+OV4f4 zrb*=@?fkw$8BC;Q%H}`2^JSc{;M1~dya9$pajkeL0Ji^msFG&v!iTor7PFMfhXHB- z1C|CoCCp+_1Cmc7xdZ;^01)8GCT!w6%5uej5T!mB z6QH-SD^=rj#WFTe(Psrg7I_i%MWsu(>CqR+;TVyXBr$T86)$;hYUb)rbiaHJ-C-C! zMrcXle9felj%iB5|Bkl{il$13?D0ontaI%~jvVXS6~A1$TCBCspJSE|lya7%rBGUTWng>#xOF)G*r@aDhJ)jgeP?#@Tzo7)lgarOQ|0{YKj`%1e@ zMoGgqunNQG+K4A{0qPG}OW(j`j`Fm_h_vboDg zLylqf4fz>e#h7Fu@{%($Y>;qribM{fbI1*ruA$pkNi|4ST+Kg&N#W zk(;w|-x|65{g*Kwxv7>4-T+>;-J4SrB5C3q8UVdvk%Y)sT45MR_OWb(I#O*L7Gao6z?=%*b@~#)sS%`_9u^Tj~^HZbz_;J3H zQ6~6OGYP`n19Vif<7xxMcdZIpqnX6UqcBwtrHQ6|KVI;VM;h~j&haW91Oxrv(<>{T zGkd`1bLnRWuR^v5>Sg->!Qy>|ua&65Q;Gr0NSj+B`@rVOxNSXw{+_9N5}Q=6dgO4O zsts%Hfp@Q|mz`kg-F-XRA_9@=Z@@f?e5w-)0#)cc({V>1KE+Y#+N+B2z}~dnzt(C- zOHLdLj3y-AD?YNLMthQl zmIRAVrx*r#Ui1L_6tty9v^3sakW3}SW&uqmXLJuvp=kd`{Z%pcDbMLqX&}VAI&r)* zk~0Q$8S0S}C70ZD;9kz^quJ6sZM@$IBdw_H4@b3zULWXC{}Y*=cj5qZ!q68VlV&I` zql;&y6)g4}tAAF@_BNx_S7lrN9s0r+o-At_aq}R?m*{V2q0JrU_3QjS^^k3ir6c z;L|AvgRooXWJ8TgL)87`wPD;!{w;f2^=!x{uv_P|kCNtGvePPJ_PGs(Ux26xb~#8c z({9T~NaK+FvhL^2M`NAa!|rq*g&UcocF;C(>ae=sV&YNwNJom8dl_#v@N4DW1<+MY zzgh+4$VTYU)MH|grLJbxFJgxv3d;oA*ec>*bL@lBz_-pIs+MwiC;byA+aim7_Ggff zbZqb^^LpFK=u^l7kjkT>RYUn->`R{$s6P`xRHcnQ zMKk0tqG45~Q;Rzm>*x_a+|kZI%|P!ZC}dqzumm>0CEd?egH`Y0VYbjJn659Qkp6t# zQOG>Q$?YEx%ZIn_mQUbMRGeu!D-t^x%R?fHyYGe|j~D46;Y$8L{lA`DY*5en#;@c# z6@TcM2QP^x7ju@Wly@cweeLtfkmHEVc;KKOBYJ5Z42XChoJn`cHx4mvC$w0ejHdjI zqH0GG2d6LvjR9Cp^tpuL7$631!pgxJFASGGkZp(EP5NGKX9|P`&l?Ds+#7I*a4?SF zVzZNO>Oe}mQ8)uV4>p5>6i-J=KfA8f3>lKxi}7_j7y{Z=iXf` z)cd_9VHtDbu5YIcEB~)ewpu@Z z^>}A}M12h_=p-5(Iym_}GRVGQ)6~EDmcA=4EBnSmtpD-#%IX!B8QG&FD@?-a<%y9i zXbr!&VYH3g*WQ#&5n6nm4Dt_0D3+e}d*Vqa4m7OE9B)yM-t z{v;|9!-rA`#W-_)w8IdyP60yK)27+syTgtzx^$@g^nh?9ZH{!~(elX9Uri%u*INtd z8z++U)sDZ)`Mooy!=v4rhF#;LWX2i9IOGZlJh}8;ok~cWXiK)pof0aI7@1gS)L(jA zSHxMqdeM!D*X08FW^<(LW@=6w&gdGR-5#m)28ISusOthhJKCh~t6{}ji=;ATn(}v- z95`dl5Sp~(Ups~g*CE`u-_G30_PO!+mn;V5h?!n+60GcZ7}@qaG@7ZF>a&5GDMLIO z9iwIK@{52EJtkj2j=J#8D9qg&WqDc$FY#;0&k*s(ruQ~j zrSeJrFylvyRb_|=y@Z~uC#8wSK75cvcb}e%uk(tj#sABlvfW^o0zoMRV#MFD5!jKd z^UF&+UCU6PombSMX6D9bXuHYQ#_MR;JI;&GUsgJ`dRkre$tq8lTz(dqHqv}G0wg@x z&76oquqy`Hx+LAKm2xI5ti1vGKwXX4te3LNwZ2pl-R_mr_$+2woTyNfOdoY8?ZH`j z3*#R;Q_Wma212U!lw6?KLHkCRQ*(iWTGWbMQPcYu9aIy(8-7?;_N7;ic2K$j}45>;uy*);_f6d0v{_^+r-T-*@Zfkjs6u zGCoa)ThVNs!BKGmKluVG#;`!N6_|sER%ig-5@coP>(DJXVuLsjooaA*W2F^kXy11q zY|X&ED8g9iVcNcT8sm-p%HaU+c5-*UJ`+am;I4il9g_0M<{W^L)2*+RFB}zAE9*o( zQMiWdL0$36uSY;fZAhxbT#IO~YLu&YMa(Uxo7U&=y#A;`WF@Yw;x+TH$=&(3Ix(6W zH&kB=MMgBv$Ay<3?d|H&s-bhyqT#?VgNs#wL9j186+MvW`%IEazQrSg?!2j zthi&I28x@eaH_gRTiTzNxDHEm zdo!%}9%|NAr(uJ*;YG}!=VKhgC6K$t3X_eT$WL);a6t9rJIX*cnAi%!;)OhJJZ+u@ z2d;>7=c0!841liVKeWykyix^z?gyhEx-zl;CxGFz1;ctF7s^9U_NrDjpLd&%ZV9f% zkiA-UWl}}k*b<1++P_EBt;z)ZV+wZ`C78Z)S|IeNOmd z%uZq5JhuKVrnZKGXGK!4RE|2Hl@2n%w#!S@pYSzoW%RL`X(*JM5)wS) z1a-d3Y>6g5^?JqvgO~9R{C;%q+w8r6WV~0auECIdS+(CJK`O~a&GSawa8slHP7(ye ze7GOiY=1%3QO3LcRe-dVtC{H!_n#XU<>f!6>vf1;!={QZBUQX zKkWL8b7#HZ-X7?N*9}to7t2)Eac3;$w%M!&yLzaFl704tkc5KFg{&em2TNAUlN|13 zrSon28GdJW16fLr+Vi1`SrX!tS0_jK#*ZNXH27Oo5{|eYzQf6SUotAHluchSOQnUN zU{Ty~?qP*N+KSR8(kEQ+@zCh-4_@Zix$ip6bS~_k?|Sj{Vjuz|_qVXZ5g2e}`(OE= zbejf+QiY+^y=~M<+{X3=4#r|B038}V!@+Q%hD?UAcsICAM!6RWb1tlBPmK71*X^>w z&7kdlYMBJ3S(@^a;pKoC=bj|z{5XRSir#Rlti$0OHf)eXccb*{v$s(^wo z^UvCcEqO(u%=~kcLfrP(Rw=sUllRyuJ)xfAIFxQG&dS2R9gnkq7(ZXJRs8OGCK@G{ zYDjz1E+GbdtgdCsgM2_!mK1FVx*0B4dCkjnI%!dv@-47709b-{2NdiaVwltCkCf!u zt(cnO-uaep!H7YQ?bNYuPkUtPO-+Nn{ejHXg5)XuPLmsSC@e>Ljx0dQ78`V*7W(wf*3SQ=SZ~$e*);=`lpgC0BQd_1tcNPF zx$8?^x*$l=K`xVn6s+aU4%SSG*`=Vb@>4{S-t@7dOtWnys4q-L6(OQTh7s2^!aca{ z#gPQyBTP}o&-rRauJuYxha^Xe@RSczy!OA)`kVmjg^*v6e+pA`mR;l|~L_&Kr|WnsRLK4u9;X_}RFCB{pa zkoEf36~Y~4&;fu8y|_*p+*h&n<9HuUZTtM<;Frtfo5Mz7D)^l^xV+f|)o%`pE;#KK zjdZ0Rt3MGAXkRI`AaFiD!#p8Q%io_a+q*(Sk2 z-a~ti1V;)s!3L_LAy5BfmDx$2fZd#dmZW(+;K|B?4*jtOMT4M7R1s`wo~$(J(BK2B znXVNw##c8W4dEDT-5Wn2>O1@ySD=Tv8t(z_pC+P(*fBkl1Z!93gzKU%CY&UTLyu6j z^^-x>(}uWm5+u-Xq;xlf5r9;( zWHCo-d{2~pKDBH$`VAZ*v8#Xe=CG`ykqXXjX10qp;Wp*hBVjqKFI_?j%~$v0=R@ow zsBREw?w%!}PU5lMqv}b*pm*~*ApgZi5FUl0tdRegzlix)y3fg#Z?o9ZkM(B(2P-o> K+#{^pt^WW$$@*si literal 0 HcmV?d00001 diff --git a/doc/en/index.docbook b/doc/en/index.docbook new file mode 100644 index 0000000..9946b1e --- /dev/null +++ b/doc/en/index.docbook @@ -0,0 +1,2080 @@ + +KDiff3"> + + + + ASCII"> +]> + + + + + + +The &kdiff3; Handbook + + + + Michael + Reeves +
+ reeves.87@gmail.com +
+
+ + Joachim + Eibl +
+ joachim.eibl at gmx.de +
+
+ +
+ + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +2019-02-22 +1.08.70 + + + + + &kdiff3; is a file and folder diff and merge tool which + +compares and merges two or three text input files or folders, +shows the differences line by line and character by character(!), +provides an automatic merge-facility, +has an editor for comfortable solving of merge-conflicts, +provides network transparency via KIO, +has options to highlight or hide changes in white-space or comments, +supports Unicode, UTF-8 and other file encodings, +prints differences, +supports version control keyword and history merging. + + + This document describes &kdiff3;-version 1.9. + + + + + + +KDE +kdiff3 +diff +merge +CVS +triple diff +compare +files +folders +directories +version control +three-way-merge +in-line-differences +synchronise +kpart +kio +network transparent +editor +white space +comments + + +
+ +Introduction +Yet Another Diff Frontend? + +Several graphical diff tools exist. Why choose &kdiff3;? Let me say, why I wrote it. + +&kdiff3; started because I had to do a difficult merge. Merging is necessary when several +people work on the same files in a project. A merge can be somewhat automated, when the +merge-tool not only has the new modified files (called "branches"), but also the original file +(called "base"). The merge tool will automatically choose any modification that was only +done in one branch. When several contributors change the same lines, then the merge tool +detects a conflict which must be solved manually. + +The merge then was difficult because one contributor had changed many things and corrected +the indentation in many places. Another contributor also had changed much text in the same file, +which resulted in several merge conflicts. + +The tool I used then, only showed the changed lines, but not what had changed within these +lines. And there was no information about where only the indentation was changed. The merge +was a little nightmare. + +So this was the start. The first version could show differences within a line and showed white space differences. +Later many other features were added to increase the usefulness. + +For example if you want to compare some text quickly, then you can copy it to the clipboard and +paste it into either diff window. + +A feature that required a big effort was the folder comparison and merge facility, which turned +the program almost into a full file browser. + +I hope &kdiff3; works for you too. Have fun! + +Joachim Eibl (2003) + + + +Screenshots and Features +This screenshot shows the difference between two text files (using an early version of &kdiff3;): + + + + + + 3-way-merging is fully supported. This is useful if two people change code independently. + The original file (the base) is used to help &kdiff3; to automatically select the correct + changes. + The merge-editor below the diff-windows allows you to solve conflicts, while showing you the output you will get. + You can even edit the output. + This screenshot shows three input files being merged: + + + + + + +&kdiff3; also helps you to compare and merge complete folders. +This screenshot shows &kdiff3; during a folder merge: + + + + + + + +More Features + Line-By-Line And Char-By-Char Diff-Viewer +By using the possibilities of a graphical color display &kdiff3; shows + exactly what the difference is. When you have to do many code-reviews, you will like this. + + + + + + + See White-Space Differences At One Glance +Spaces and tabs that differ appear visibly. When lines differ only + in the amount of white space this can be seen at one look in the summary + column on the left side. (No more worries when people change the indentation.) + + + + + + + Triple-Diff + Analyze three files and see where they differ. + + The left/middle/right windows are named A/B/C and have the blue/green/magenta color respectively. + + If one file is the same and one file is different on a line then the + color shows which file is different. The red color means that both other + files are different. + + + + + + + Comfortable Merge Of Two Or Three Input Files + &kdiff3; can be used to merge two or three input files and automatically + merges as much as possible. The result is presented in an editable window + where most conflicts can be solved with a single mouseclick: Select the + respective ... buttons at the A/ + B/C windows to select the source + that should be used. You can also select more than one source. Since this + output window is an editor even conflicts which need further corrections + can be solved here without requiring another tool. + + + +And ... + + Fast navigation via buttons. + A mouse-click into a summary column sync's all windows to show the same position. + Select and copy from any window and paste into the merge result window. + Overview column that shows where the changes and conflicts are. + The colors are adjustable to your specific preferences. + Adjustable Tab size. + Option to insert spaces instead of tabs. + Open files comfortably via dialog or specify files on the command line. + Search for strings in all text windows with EditFind (&Ctrl;F) and EditFind Next (F3) menu items. + Show the line numbers for each line. + Paste clipboard or drag text into a diff input window. + Network transparency via KIO. + Can be used as diff-viewer from the &kdevelop; 3. + Word-wrap for long lines. + Support for Unicode, UTF-8 and other codecs. + Support for right to left languages. + ... + + + + + +File Comparison And Merge + +Command-Line Options + +Comparing 2 files: + + kdiff3 file1 file2 + + + +Merging 2 files: + + kdiff3 file1 file2 -m + kdiff3 file1 file2 -o outputfile + + + +Comparing 3 files: + + kdiff3 file1 file2 file3 + + + +Merging 3 files: + + kdiff3 file1 file2 file3 -m + kdiff3 file1 file2 file3 -o outputfile + + + Note that file1 will be treated as + base of file2 and + file3. + + + +Special case: Files with the same name + +If all files have the same name but are in different folders, you can +reduce typework by specifying the filename only for the first file, ⪚: + + + kdiff3 folder1/filename folder2 folder3 + + + +Commandline for starting a folder comparison or merge: +This is very similar, but now it's about folders. + + kdiff3 folder1 folder2 + kdiff3 folder1 folder2 -o destdir + kdiff3 folder1 folder2 folder3 + kdiff3 folder1 folder2 folder3 -o destdir + +For folder comparison and merge you can continue to read here. + + +Other command line options +To see all available command line options type + +kdiff3 --help + +Example output: + +Options: + -m, --merge Merge the input. + -b, --base file Explicit base file. For compatibility with certain tools. + -o, --output file Output file. Implies -m. E.g.: -o newfile.txt + --out file Output file, again. (For compatibility with certain tools.) + --noauto Ignore --auto and always show GUI. + --auto No GUI if all conflicts are auto-solvable. (Needs -o file) + --L1 alias1 Visible name replacement for input file 1 (base). + --L2 alias2 Visible name replacement for input file 2. + --L3 alias3 Visible name replacement for input file 3. + -L, --fname alias Alternative visible name replacement. Supply this once for every input. + --cs string Override a config setting. Use once for every setting. E.g.: --cs "AutoAdvance=1" + --confighelp Show list of config settings and current values. + --config file Use a different config file. + +The option allows you to adjust a configuration value that is otherwise only adjustable via the configure dialogs. +But be aware that when &kdiff3; then terminates the changed value will be stored along with the other settings. +With you can find out the names of the available items and current values. +Via you can specify a different config file. When you often use &kdiff3; +with completely different setups this allows you to easily switch between them. + +Ignorable command line options +Many people want to use &kdiff3; with some version control system. But when that version control system calls &kdiff3; using command line parameters that &kdiff3; doesn't recognise, then &kdiff3; terminates with an error. +The Integration item in the settings dialog allow to specify command line parameters that should be ignored by &kdiff3;. +They will appear in the usage help like in this example: + + --foo Ignored. (User defined.) + + + Command line options to ignore: + A list of options, separated via semicolon ';'. When one of these options appears on the commandline, + then &kdiff3; will ignore it and run without reporting an error. + (Default is "u;query;html;abort"). + +When this isn't enough, then it is recommended to write a shell script that does the option translation. + + + + +Open-Dialog + + Since many input files must be selectable, the program has a special open dialog: + + + + + + The open dialog allows you to edit the filenames by hand, selecting a file + via the file-browser via the File... button or allows + you to choose recent files from the drop-down lists. If you open the dialog + again, then the current names still remain there. The third input file is not + required. If the entry for C remains empty, then only a + two file diff analysis will be done. + + You can also select a folder via the Folder... button. + If for A a folder is specified then a folder-comparison + /merge starts. If A specifies a file but B, + C or the output specify a folder, then &kdiff3; uses the + filename from A in the specified folders. + + If Merge check box is selected, then the Output + line becomes editable. But it is not required to specify the output filename + immediately. You can also postpone this until saving. + + The Configure... button opens the settings dialog, so that you can set + the options before running the analysis. + + + +Paste and Drop Input + + Sometimes you want to compare parts of a text that is not an own file. &kdiff3; also + allows you to paste text from the clipboard into the diff input window that has the focus. + The diff analysis happens immediately then. + In the open dialog you need not specify files then, but just close it via Cancel button. + + You can also use drag and drop: Drag a file from a file manager + or selected text from an editor and drop it onto a diff input window. + + What's the idea? Sometimes a file contains two similar functions, but checking how similar + they really are is a big effort if you first must create two files and then load them. Now + you can simply copy, paste and compare the relevant sections. + + Currently you cannot drag anything from &kdiff3;. Only dropping in the diff input + is supported. + + Some editors still interpret the drag and drop into another program like cut + (instead of copy) and paste. Your original data might be lost then. + + + +Comparing Files And Interpreting The Information In The Input Windows + + + +Info Line + At the top of each text window is its "info line". The info lines of + the input windows contain a letter A, B + or C, the editable filename, a button for browsing, and the + line number of the first visible line in the window. (Note that window C + is optional.) Each info line appears in a different color. + + When you selected another file via browsing or finished editing the filename here + by pressing &Enter;, the new file will be loaded and + compared with the already loaded file(s). +Coloring + The three input windows are assigned the letters A, B + and C. + A has color blue, B has green and C + has magenta. (These are the defaults, but can be changed in the Color + item in the settings dialog.) + + When a difference is detected then the color shows which input file differs. + When both other input files differ then the color used to express this is + red by default (Conflict color option in the Color + item in the settings dialog). This colorscheme is especially useful in the + case of three input files, which will be seen in the next section + (Merging). +Summary Column + Left of each text is the "summary" column. If differences occurred on a + line then the summary column shows the respective color. For a white-space-only + difference the summary is chequered. For programming languages where white + space is not so important this is useful to see at one glance if anything + of importance was modified. (In C/C++ white space is only interesting within + strings, comments, for the preprocessor, and some only very esoteric situations.) + + The vertical line separating the summary column and the text is interrupted + if the input file had no lines there. When word-wrap is enabled then this vertical + line appears dotted for wrapped lines. +Overview Column + On the right side a "overview" column is visible left of the vertical scrollbar. + It shows the compressed summary column of input A. All the differences + and conflicts are visible at one glance. When only two input windows are + used, then all differences appear red here because every difference is + also a conflict. A black rectangle frames the visible part of the inputs. + For very long input files, when the number of input lines is bigger than + the height of the overview column in pixels, then several input lines share + one overview line. A conflict then has top priority over simple differences, + which have priority over no change, so that no difference or conflict is + lost here. By clicking into this overview column the corresponding text + will be shown. +Manually Aligning Lines + Sometimes the algorithm places the wrong lines next to each other. Or you want to compare + one piece of text with text at a completely different position in the other file. + For these situations you can manually instruct &kdiff3; to align certain lines. + Mark the text for which you want to improve the alignment with the mouse as you would + for copy and paste in the first diff view and then choose DiffviewAdd Manual Diff Alignment menu item (&Ctrl;Y). An orange bar will appear in + the summary column next to the chosen text. Repeat this for the second and + (if available) third diff view. &kdiff3; will immediately recalculate the differences everytime you do this, + and will align the chosen lines. Of course some of the previously matching lines in between + might not match anymore. + + Currently merging doesn't support the use of manual diff help. +Manually Joining and Splitting Diff Sections + In some cases &kdiff3; will see too many or too few diff sections for merging. In such a + case you can join or split existing sections. + + Add new sections by first selecting text in the lines that belong together in either input window (as for copying to the clipboard). + Then choose MergeSplit Diff At Selection menu item. + Splits will be added above the first line and below the last line of the selected text. + If you only want to add one section, then select text beginning at another section-split. + + For joining sections in either input window select something in the lines from the sections to join. + (You can join several sections in one step too.) Then choose MergeJoin Selected Diffs menu item. + + + + +Merging And The Merge Output Editor Window + + + + + The merge output editor window (below the diff input windows) also has an info line at the top showing Output:, the filename and [Modified] tag if you edited something. Usually it will contain some text through the automatic merge facilities, but often it will also contain conflicts. + +!!! Saving is disabled until all conflicts are resolved !!! (Use the Go to Previous/Next Unsolved Conflict buttons to find the remaining conflicts.) + + With only two input files every difference is also a conflict that must + be solved manually. + + With three input files the first file is treated as base, while the second and third input files contain modifications. When at any line only either input B or input C have changed but not both then the changed source will automatically be selected. Only when B and C have changed on the same lines, then the tool detects a conflict that must be solved manually. When B and C are the same, but not the same as A, then C is selected. +The Summary Column + The merge output editor window also has a summary column on the left. It shows the + letter of the input from which a line was selected or nothing if all three + sources where equal on a line. For conflicts it shows a questionmark "?" + and the line shows "<Merge Conflict>", all in red. Because solving + conflicts line by line would take very long, the lines are grouped into + groups that have the same difference and conflict characteristics. + But only-white-space-conflicts are separated from non-white-space-conflicts + in order to ease the merging of files were the indentation changed for many + lines. +Setting The Current Group And Synchronising Merge And Diff View Position + When clicking into the summary column with the &LMB; in either window then the beginning of the group belonging to that line will shown in all windows. This group then becomes the "current group". It is highlighted with the Current range diff background color option of Integration item in the settings dialog and a black bar appears on the left side of the text. +Choosing Inputs A, B or C For Current Conflict And Editing + The Button bar below the menubar contains three input selector buttons containing the letters A, B and C. Click the input selector button to insert (or remove if already inserted) the lines from the respective source. To choose the lines from several inputs click the respective buttons in the needed order. For example if you want that the lines from B appear before the lines from A in the output, first click B, then A. + + If you use the Automatically Go to Next Unsolved Conflict After Source Selection button (see Auto-Advance section), you should disable this before choosing lines from several inputs or if you want to edit the lines after your choice. Otherwise &kdiff3; will jump to the next conflict after choosing the first input. + + It is often helpful directly edit the merge output. + The summary column will show "m" for every line that was manually modified. + When for instance the differences are aligned in a way that simply choosing + the inputs won't be satisfactory, then you can mark the needed text and use + normal copy and paste to put it into the merge output. + + Sometimes, when a line is removed either by automatic merge or by editing + and no other lines remain in that group, then the text <No src line> + will appear in that line. This is just a placeholder for the group for + when you might change your mind and select some source again. This text won't + appear in the saved file or in any selections you want to copy and paste. + + The text "<Merge Conflict>" will appear in the clipboard if you + copy and paste some text containing such a line. But still be careful to + do so. +Choosing Input A, B, or C for All Conflicts + The normal merge will start by solving simple conflicts automatically. But the Merge menu provides some actions for other common needs. If you have to select the same source for most conflicts, then you can choose A, B or C everywhere, or only for the remaining unsolved conflicts, or for unsolved white space conflicts. If you want to decide every single delta yourself, you can Set Deltas to Conflicts. Or if you want to return to the automatic choices of &kdiff3; then select Automatically Solve Simple Conflicts. &kdiff3; then restarts the merge. For actions that change your previous modifications &kdiff3; will ask for your confirmation before proceeding. + + When choosing either source for unsolved white space conflicts and the Ignore numbers (treat as white space) or Ignore C/C++ comments (treat as white space) options at Diff item in the settings dialog are used then changes in numbers or comments will be treated like white space too. + +Automatic Merge of Version Control Keywords and History (Log) + Many version control systems support special keywords in the file. (⪚ "$Date$", "$Header$", "$Author$", "$Log$", &etc;) During the check-in the version control system (VCS) changes these lines. For instance "$Date$" will turn into "$Date: 2005/03/22 18:45:01 $". Since this line will be different in every version of the file, it would require manual interaction during the merge. + + &kdiff3; offers automatic merge for these items at Merge item in the settings dialog. For simple lines that match the Auto merge regular expression option in all input-files &kdiff3; will choose the line from B or - if available - from C. (Additionally it is necessary that the lines in question line up in the comparison and the previous line contains no conflict.) This auto merge can either be run immediately after a merge starts (activate the option Run regular expression auto merge on merge start) or later via MergeRun Regular Expression Auto Merge menu item. + + Automatic merge for version control history (also called "log") is also supported. The history automerge can either run immediately when the merge starts by activating the option Merge version control history on merge start at Merge item in the settings dialog or later via the MergeAutomatically Solve History Conflicts menu item. + + Usually the version control history begins with a line containing the keyword "$Log$". This must be matched by the History start regular expression: option. &kdiff3; detects which subsequent lines are in the history by analysing the leading characters that came before the "$Log$" keyword. If the same "leading comment" characters also appears in the following lines, then they are also included in the history. + +During each check-in the VCS writes a unique line specifying version-, date- and time-information +followed by lines with user comments. +These lines form one history-entry. This history section grows with every check-in and the +most recent entries appear at the top (after the history start line). + +When for parallel development two or more developers check-in a branch of the file then +the merge history will contain several entries that appear as conflicts during the merge +of the branches. Since merging these can become very tedious, &kdiff3; offers support with two +possible strategies: Just insert the history information from both contributors at the top +or sort the history information by a user defined key. + + The just-insert-all-entries-method is easier to configure. &kdiff3; just needs a method to detect, which lines belong to one history entry. Most VCS insert an empty line after each history entry. If there are no other empty lines, this is a sufficient criterion for &kdiff3;. Just set an empty History entry start regular expression at Merge item in the settings dialog. If the empty line criterion isn't sufficient, you can specify a regular expression to detect the history entry start. + +Note that &kdiff3; will remove duplicate history entries. If a history entry appeared several times +in the history of a input file, only one entry will remain in the output. + + If you want to sort the history, then you have to specify how the sort key should be built. Use parentheses in the History entry start regular expression at Merge item in the settings dialog to group parts of the regular expression that should later be used for the sort key. Then specify the History entry start sort key order option specifying a comma "," separated list of numbers referring to the position of the group in the regular expression. + + Because this is not so easy to get right immediately, you are able to test and improve the regular expressions and key-generation in a dedicated dialog by pressing the Test your regular expressions button. +Example: Assume a history that looks like this: + + +/************************************************************************** +** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ +** +** \main\integration_branch_12 2 Apr 2001 10:45:41 tom +** Merged branch simon_branch_15. +** +** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry +** Improved the speed for subroutine convertToMesh(). +** Fixed crash. +**************************************************************************/ + + + The history start line matches the regular expression ".*\$Log.*\$.*". Then follow the history entries. + + The line with the "$Log$" keyword begins with two "*" after which follows a space. &kdiff3; uses the first non-white-space string as "leading comment" and assumes that the history ends in the first line without this leading comment. In this example the last line ends with a string that also starts with two "*", but instead of a space character more "*" follow. Hence this line ends the history. + +If history sorting isn't required then the history entry start line regular expression +could look like this. (This line is split in two because it wouldn't fit otherwise.) + + +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + + + For details about regular expressions please see the regular expression documentation. Note that "\s" (with lowercase "s") matches any white space and "\S" (with uppercase "S") matches any non-white-space. In our example the history entry start contains first the version info with reg. exp. "\\main\\\S+", the date consisting of day "[0-9]+", month "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" and year "[0-9][0-9][0-9][0-9]", the time "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" and finally the developers login name ".*". + + Note that the "leading comment" characters (in the example "**") will already be removed by &kdiff3; before trying to match, hence the regular expression begins with a match for none or more white-space characters "\s*". Because comment characters can differ in each file (⪚ C/C++ uses other comment characters than a Perl script) &kdiff3; takes care of the leading comment characters and you should not specify them in the regular expression. + +If you require a sorted history. Then the sortkey must be calculated. For this the +relevant parts in the regular expression must be grouped by parentheses. +(The extra parentheses can also stay in if history sorting is disabled.) + + +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + + + The parentheses now contain 1. version info, 2. day, 3. month, 4. year, 5. time, 6. name. + But if we want to sort by date and time, we need to construct a key with the elements in a different order of appearance: + First the year, followed by month, day, time, version info and name. Hence the sortkey order to specify is "4,3,2,5,1,6". + + Because month names aren't good for sorting ("Apr" would be first) &kdiff3; detects in which order the month names were given and uses that number instead ("Apr" -> "04"). And if a pure number is found it will be transformed to a 4-digit value with leading zeros for sorting. Finally the resulting sort key for the first history entry start line will be: + + +2001 04 0002 10:45:41 integration_branch_12 tom + + +For more information also see Merge Settings section. + + + + +Navigation And Editing + + Much navigation will be done with the scroll bars and the mouse but you can also navigate with the keys. If you click into either window then you can use the shortcuts &Left;, &Right;, &Up;, &Down;, &PgUp;, &PgDn;, &Home;, &End;, &Ctrl;&Home; and &Ctrl;&End; as you would in other programs. The overview-column next to the vertical scroll bar of the input files can also be used for navigating by clicking into it. + + You can also use the wheel mouse to scroll up and down. + + In the merge output editor you can also use the other keys for editing. + You can toggle between insert and overwrite mode with the &Ins; key. (Default + is insert-mode.) + + A click with the &LMB; into any summary column will synchronise all + windows to show the beginning of the same group of lines (as explained + in section Setting The Current Group And Synchronising Merge And Diff View Position). + + The Button bar also contains nine navigation buttons with which you can + jump to the current/first/last difference, to the previous/next difference + (&Ctrl;&Down;/&Ctrl;&Up;), to the + previous/next conflict (&Ctrl;&PgDn;/&Ctrl;&PgUp;), + or to the previous/next unsolved conflict. Note that for &kdiff3; a "conflict" + that was not automatically solved at the start of the merge stays a "conflict" + even if it is solved. Hence the necessity to distinguish "unsolved conflicts". + +Auto-Advance + + There also is a button Automatically Go to Next Unsolved Conflict After + Source Selection (Auto-Advance). If you enable this, then, when one source + is selected, &kdiff3; will jump to and select the next unsolved conflict + automatically. This can help when you always want to choose one source only. + When you need both sources, or you want to edit after selecting, then you + probably want to switch this off. Before proceeding to the next unsolved conflict + &kdiff3; shows you the effect of your choice for a short time. This delay is + adjustable in the Merge item in the settings dialog: You can + specify the Auto advance delay (ms): in milli seconds between 0 and 2000. Hint: + Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts + &Ctrl;1/2/3 + to select A/B/C for many conflicts. + + + + +Select, Copy And Paste + + The input windows don't show a cursor, so selections must be made with the + mouse by clicking with the &RMB; at the start, holding down the + mousebutton and moving to the end, where you release the mouse button again. + You can also select a word by double clicking it. In the merge output editor + you can also select via the keyboard by holding the &Shift; key and + navigation with the cursor keys. + + If the selection exceeds the visible range you can move the mouse over the + window borders which causes &kdiff3; to scroll in that direction. + + For very large selections you can also use the navigation keys while holding down + the mouse. E.g. use &PgUp; and &PgDn; to quickly go to a certain position. At the + end position release the mouse button. + + In order to select everything in the current window use Edit + Select All menu item (&Ctrl;A). + + To copy to the clipboard you must press the Copy button (&Ctrl;C or &Ctrl;&Ins;). But there exists an option Auto copy selection at Editor item in the settings dialog. If this is enabled, then whatever you select is copied immediately and you don't need to explicitly copy. But pay attention when using this because the contents of the clipboard might then be destroyed accidentally. + + Cut (&Ctrl;X or &Shift;∇) copies to the clipboard and deletes the selected text. + + Paste (&Ctrl;V or &Shift;&Ins;) + inserts the text in the clipboard at the cursorposition or over the current selection. + If you paste to either diff input window the contents of the clipboard will + be shown in that window and the comparison will restart immediately. This is + useful if you want to quickly grab a piece of text from somewhere and + compare it with something else without first creating files. + + + +Saving + + Saving will only be allowed, when all conflicts were solved. If the file already exists and the Backup files option is enabled at Folder item in the settings dialog then the existing file will be renamed with an .orig extension, but if such a file exists it will be deleted. When you exit or start another diff-analysis and data wasn't saved yet, then &kdiff3; will ask if you want to save, cancel or proceed without saving. (&kdiff3; does not catch any signals. So if you "kill" a &kdiff3; instance then your data will be lost.) + + Line endings are saved according to the normal method on the underlying operating system. For Unices each line ends with an linefeed-character "\n", while for Win32-based systems each line ends with a carriage-return + a linefeed "\r\n". &kdiff3; does not preserve the line-endings of the input files, which also means that you shouldn't use &kdiff3; with binary files. + + + +Finding Strings + + You can search for a string in any text-window of &kdiff3;. The EditFind... menu item (&Ctrl;F) opens a dialog that lets you specify the string to search for. You can also select the windows which should be searched. Searching will always start at the top. Use the EditFind Next... menu item (F3) to proceed to the next occurrence. If you select to search several windows then the first window will be searched from top to bottom before the search starts in the next window at the top again, &etc; + + + +Printing + + &kdiff3; supports printing for textfile differences. The FilePrint... menu item (&Ctrl;P) opens a dialog that allows you to select the printer and to adjust other options. + + There are several possibilities to adjust the range. Due to different printing + dialogs on different operating systems, the method to achieve certain range selections varies. + + + All:Print everything. + Current:Print a page starting at the first visible line in the window. + (On systems without this option this can be achieved by specifying page number 10000 for printing.) + Selection: + Before choosing to print select text with the mouse (like for copy and paste) + in one of the diff input windows to define the start and end line. If no text + in one of the diff input windows was selected, then this won't be an available + choice. (On systems without this option this can be achived by specifying page + number 9999 for printing.) + Range:Specify the first and last page. + + + + Other important options for printing will be taken from the normal options: + + Font, font size + Show line numbers + Word wrap + Colors + &etc; + + + Landscape formatting is also recommended for printing. + + + +Options + + Options and the recent-file-list will be saved when you exit the program, + and reloaded when you start it. (Settings + Configure &kdiff3;... menu item). + +Font + + Select a fixed width font. (On some systems this dialog will also + present variable width fonts, but you should not use them.) + + + +Colors + + Editor and Diff Views: + + Foreground color: Usually black. + Background color: Usually white. + Diff background color: Usually light gray. + Color A: Usually dark blue. + Color B: Usually dark green. + Color C: Usually dark magenta. + Conflict color: Usually red. + Current range background color: Usually light yellow. + Current range diff background color: Usually dark yellow. + Color for manually aligned difference ranges: Usually orange. + + Folder Comparison View: + + Newest file color: Usually green. + Oldest file color: Usually red. + Middle age file color: Usually strong yellow. + Color for missing files: Usually black. + + + + Changing the colors for folder comparison will be effective only when starting the next folder comparison. + + + On systems with only 16 or 256 colors some colors are not available in pure + form. On such systems the Defaults button will choose a pure color. + + + +Editor Settings + + Tab inserts spaces + If this is disabled and you press the key, a tab-character is inserted, + otherwise the appropriate amount of characters is inserted. + Tab size: + Can be adjusted for your specific needs. Default is 8. + Auto indentation + When pressing &Enter; or Return the indentation of the previous + line is used for the new line. + Auto copy selection + Every selection is immediately copied to the clipboard when active and you needn't + explicitly copy it. + Line end style: + When saving you can select what line end style you prefer. The default setting is + the common choice for the used operating system. + + + +Diff Settings + + When comparing files, &kdiff3; first it tries to match lines that are equal + in all input files. Only during this step it might ignore white space. The + second step compares each line. In this step white space will not be ignored. + Also during the merge white space will not be ignored. + + + + Ignore numbers (treat as white space) Default is off. Number characters ('0'-'9', '.', '-') + will be ignored in the first part of the analysis in which the line matching is + done. In the result the differences will be shown nevertheless, but they are treated + as white space. + + Ignore C/C++ comments (treat as white space) Default is off. + Changes in comments will be treated like changes in white space. + + Ignore case (treat as white space) Default is off. + Case-differences of characters (like 'A' vs. 'a') will be treated like changes in white space. + + Preprocessor command: + See next section. + + Line-matching preprocessor command: + See next section. + + Try hard (slower) + Try hard to find an even smaller delta. (Default is on.) This will probably + be effective for complicated and big files. And slow for very big files. + + Align B and C for 3 input files + Try to align B and C when comparing + or merging three input files. Not recommended for merging because merge might + get more complicated. (Default is off.) + + + + +Merge Settings + + Auto advance delay (ms): + When in auto-advance-mode this setting specifies how long to show the result of the + selection before jumping to the next unsolved conflict. + + Show info dialogs + Show a dialog with information about the number of conflicts. + + White space 2/3-file merge default: + Automatically solve all white-space conflict by choosing the specified file. + (Default is manual choice.) Useful if white space really isn't important in many files. + If you need this only occasionally better use Choose A/B/C for All + Unsolved Whitespace Conflicts in the Merge menu. Note that + if you enable either Ignore numbers (treat as white space) or + Ignore C/C++ comments (treat as white space) then this auto-choice + also applies for conflicts in numbers or comments. + + Auto merge regular expression: + Regular expression for lines where &kdiff3; should automatically choose one source. See also Automatic Merge.... + + Run regular expression auto merge on merge start + If activated &kdiff3; runs the automatic merge using the Auto merge regular expression: option when a merge is started. + + History entry start regular expression: + Regular expression for the start of the merge history entry. + Usually this line contains the "$Log$" keyword. + Default value: ".*\$Log.*\$.*" + + History entry start regular expression: + A merge history entry consists of several lines. + Specify the regular expression to detect the first line (without the leading comment). + Use parentheses to group the keys you want to use for sorting. + If left empty, then &kdiff3; assumes that empty lines separate history entries. + See also Automatic Merge.... + + History merge sorting + Enable version control history sorting. + + History entry start sort key order: + Each pair of parentheses used in the regular expression for the history start entry + groups a key that can be used for sorting. + Specify the list of keys (that are numbered in order of occurrence + starting with 1) using ',' as separator (⪚ "4,5,6,1,2,3,7"). + If left empty, then no sorting will be done. + See also Automatic Merge.... + + Merge version control history on merge start + If activated &kdiff3; runs the automatic history merging using aforementioned options when a merge is started. + + Max number of history entries: + &kdiff3; truncates the history list after the specified number of entries. Use -1 to avoid truncation. (Default is -1). + + Test your regular expressions + This button shows a dialog that allows you to improve and test the regular expressions above. + Just copy the respective data from your files into the example lines. The Match result: option will immediately show whether the match succeeds or not. + The Sort key result: will display the key used for history merge sorting. + + Irrelevant merge command: + Specify a command of your own that should be called when &kdiff3; detects + that for a three file merge the file from B doesn't contribute any + relevant data that isn't already contained in the file from C. + The command is called with the three filenames as parameters. + Data matched by the Auto merge regular expression or in the + history isn't considered relevant. + + Auto save and quit on merge without conflicts + If &kdiff3; was started for a file-merge from the command line and all conflicts are + solvable without user interaction then automatically save and quit. + (Similar to command line option .) + + + + + +Folder Merge + + These options are concerned with scanning the folder and handling the + merge: See the Folder Comparison/Merge + Docs for details. + +Yet there is one option here that is also relevant for saving single files: + + + Backup files (.orig) When a file is saved and an older version already exists, then the original version will be renamed with an .orig extension. If an old backup file with .orig extension already exists then this will be deleted without backup. + + + + +Regional and Language Options + + Use the same encoding for everythingThe following encoding options can be adjusted separately for each item or if this option is true, all values will take the first value. + + Note: Local Encoding is "..."Above the codec-selectors appears this note that tells you what the local encoding is. (This is not adjustable but for your information just in case you don't know your local encoding, but need to select it.) + + File Encoding for A/B/C: Adjust the file encoding for input files. This has an effect on how the special characters are interpreted. Since you can adjust each codec separately you can even compare and merge files that were saved using different codecs. + + File Encoding for Merge Output and Saving: When you have edited a file, then you can adjust which encoding will be used when saving to disk. + + File Encoding for Preprocessor Files:When you define preprocessors then they might not be able to operate on your codec. (⪚: Your files are 16 bit unicode and your preprocessor can only take 8 bit &ASCII;.) With this option you can define the encoding of preprocessor output. + + Right To Left Language:Some languages are written right to left. When this option is enabled, &kdiff3; draws the text from right to left in the diff input windows and in the merge output window. Note that if you start &kdiff3; with the command line option then all layouting will be done right to left too. (This is a feature provided by &Qt;.) + + This documentation was written assuming that this option or reverse layout are disabled. So some references to "left" or "right" must be replaced by their respective counterpart if you use these options. + + + + + +Miscellaneous +(These options and actions are available in menus or the buttonbar.) + + Overview options: + These choices are only available when you compare three files. In normal mode all + differences are shown in one color-coded overview-column. But sometimes you are + especially interested in the differences between only two of these three files. + Selecting "A vs. B", "A vs. C" or "B vs. C"-overview will show a second overview + column with the required information next to the normal overview. + + Word Wrap Diff Windows + Wrap lines when their length would exceed the width of a window. + + Show Window A/B/C: Sometimes you want to use the space on + the screen better for long lines. Hide the windows that are not important. + (In the Windows-menu.) + Toggle Split Orientation + Switch between diff windows shown next to each other (A left of B left of C) or above each other (A above B above C). This should also help for long lines. (In the Window menu.) + + Merge Current File Works if you only compare + two files. A single click starts the merge and uses the filename of the last + input-file as the default output filename. (When this is used to restart + a merge, then the output filename will be preserved.) + Show White Space Turn this off to suppress + any highlighting of white-space-only changes in the text or overview-columns. + (Note that this also applies to changes in numbers or comments if the options + Ignore numbers (treat as white space) or Ignore C/C++ comments + (treat as white space) are active.) + Show Space && Tabulator Characters Sometimes + the visible spaces and tabs are disturbing. You can turn this off. + Show Line Numbers You can select if line numbers should be + shown for the input files. + + + +Configuring Keyboard-Shortcuts + + Currently only the &frameworks; version supports user-configurable keyboard-shortcuts. + (Menu SettingsConfigure Shortcuts...) + + + + +Preprocessor Commands + +&kdiff3; supports two preprocessor options. + + + Preprocessor command: + When any file is read, it will be piped through this external command. + The output of this command will be visible instead of the original file. + You can write your own preprocessor that fulfills your specific needs. + Use this to cut away disturbing parts of the file, or to automatically + correct the indentation &etc; + + Line-matching preprocessor command: + When any file is read, it will be piped through this external command. If + a preprocessor-command (see above) is also specified, then the output of the + preprocessor is the input of the line-matching preprocessor. + The output will only be used during the line matching phase of the analysis. + You can write your own preprocessor that fulfills your specific needs. + Each input line must have a corresponding output line. + + + + +The idea is to allow the user greater flexibility while configuring the diff-result. +But this requires an external program, and many users don't want to write one themselves. +The good news is that very often sed or perl +will do the job. + +Example: Simple testcase: Consider file a.txt (6 lines): + + + aa + ba + ca + da + ea + fa + + +And file b.txt (3 lines): + + + cg + dg + eg + + +Without a preprocessor the following lines would be placed next to each other: + + + aa - cg + ba - dg + ca - eg + da + ea + fa + + +This is probably not wanted since the first letter contains the actually interesting information. +To help the matching algorithm to ignore the second letter we can use a line matching preprocessor +command, that replaces 'g' with 'a': + + + sed 's/g/a/' + + +With this command the result of the comparison would be: + + + aa + ba + ca - cg + da - dg + ea - eg + fa + + +Internally the matching algorithm sees the files after running the line matching preprocessor, +but on the screen the file is unchanged. (The normal preprocessor would change the data also on +the screen.) + + +<command>sed</command> Basics + +This section only introduces some very basic features of sed. For more +information see info:/sed or + +https://www.gnu.org/software/sed/manual/html_mono/sed.html. +A precompiled version for &Windows; can be found at +http://unxutils.sourceforge.net. +Note that the following examples assume that the sed command is in some +folder in the PATH environment variable. If this is not the case, you have to specify the full absolute +path for the command. + + +In this context only the sed substitute command is used: + + + sed 's/REGEXP/REPLACEMENT/FLAGS' + + +Before you use a new command within &kdiff3;, you should first test it in a console. +Here the echo command is useful. Example: + + + echo abrakadabra | sed 's/a/o/' + -> obrakadabra + + +This example shows a very simple sed-command that replaces the first occurrence +of "a" with "o". If you want to replace all occurrences then you need the "g" flag: + + + echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + + +The "|"-symbol is the pipe-command that transfers the output of the previous +command to the input of the following command. If you want to test with a longer file +then you can use cat on &UNIX; like systems or type +on &Windows; like systems. sed will do the substitution for each line. + + cat filename | sed options + + + +Examples For <command>sed</command> Use In &kdiff3; +Ignoring Other Types Of Comments + +Currently &kdiff3; understands only C/C++ comments. Using the +Line-matching preprocessor command: option you can also ignore +other types of comments, by converting them into C/C++-comments. + + +Example: To ignore comments starting with "#", you would like to convert them to "//". Note that you also must enable the Ignore C/C++ comments (treat as white space) option to get an effect. An appropriate Line-matching preprocessor command: would be: + + + sed 's/#/\/\//' + + +Since for sed the "/" character has a special meaning, it is necessary to place the "\" character before each "/" in the replacement-string. Sometimes the "\" is required to add or remove a special meaning of certain characters. The single quotation marks (') are only important when testing on the command shell as it will otherwise attempt to process some characters. +&kdiff3; does not do this except for the escape sequences '\"' and '\\'. + + +Caseinsensitive Diff + +Use the following Line-matching preprocessor command: to convert all input to uppercase: + + + sed 's/\(.*\)/\U\1/' + + +Here the ".*" is a regular expression that matches any string and in this context matches all characters in the line. +The "\1" in the replacement string refers to the matched text within the first pair of "\(" and "\)". +The "\U" converts the inserted text to uppercase. + + + +Ignoring Version Control Keywords + +CVS and other version control systems use several keywords to insert automatically +generated strings (info:/cvs/Keyword substitution). +All of them follow the pattern "$KEYWORD generated text$". We now need a +line-matching preprocessor command that removes only the generated text: + + + sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + + +The "\|" separates the possible keywords. You might want to modify this list +according to your needs. +The "\" before the "$" is necessary because otherwise the "$" matches the end of the line. + + +While experimenting with sed you might come to understand and even like +these regular expressions. They are useful because there are many other programs that also +support similar things. + + + +Ignoring Numbers + +Ignoring numbers actually is a built-in option. But as another example, this is how +it would look as a line-matching preprocessor command. + + + sed 's/[0123456789.-]//g' + + +Any character within '[' and ']' is a match and will be replaced with nothing. + + + +Ignoring Certain Columns + +Sometimes a text is very strictly formatted, and contains columns that you always want to ignore, while there are +other columns you want to preserve for analysis. In the following example the first five columns (characters) are +ignored, the next ten columns are preserved, then again five columns are ignored and the rest of the line is preserved. + + + sed 's/.....\(..........\).....\(.*\)/\1\2/' + + +Each dot '.' matches any single character. The "\1" and "\2" in the replacement string refer to the matched text within the first +and second pair of "\(" and "\)" denoting the text to be preserved. + + + +Combining Several Substitutions + +Sometimes you want to apply several substitutions at once. You can then use the +semicolon ';' to separate these from each other. Example: + + + echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + +Using <command>perl</command> instead of <command>sed</command> + +Instead of sed you might want to use something else like +perl. + + + perl -p -e 's/REGEXP/REPLACEMENT/FLAGS' + + +But some details are different in perl. Note that where +sed needed "\(" and "\)" perl +requires the simpler "(" and ")" without preceding '\'. Example: + + + sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + +Order Of Preprocessor Execution + +The data is piped through all internal and external preprocessors in the +following order: + + +Normal preprocessor, +Line-matching preprocessor, +Ignore case (treat as white space) (conversion to uppercase), +Detection of C/C++ comments, +Ignore numbers (treat as white space), +Ignore white space + + +The data after the normal preprocessor will be preserved for display and merging. The +other operations only modify the data that the line-matching-diff-algorithm sees. + +In the rare cases where you use a normal preprocessor note that +the line-matching-preprocessor sees the output of the normal preprocessor as input. + + + +Warning + +The preprocessor-commands are often very useful, but as with any option that modifies +your texts or hides away certain differences automatically, you might accidentally overlook +certain differences and in the worst case destroy important data. + +For this reason during a merge if a normal preprocessor-command is being used &kdiff3; will tell you so and ask you if it should be disabled or not. But it won't warn you if a Line-matching preprocessor command: option is active. The merge will not complete until all conflicts are solved. If you disabled DiffviewShow White Space menu item then the differences that were removed with the Line-matching preprocessor command: option will also be invisible. If the Save button remains disabled during a merge (because of remaining conflicts), make sure to enable DiffviewShow White Space menu item. If you don't want to merge these less important differences manually +you can select MergeChoose [A|B|C] for All Unsolved Whitespace Conflicts menu item. + + + + + + +Folder Comparison and Merge with &kdiff3; +Introduction into Folder Comparison and Merge + + Often programmers must modify many files in a folder to achieve their + purpose. For this &kdiff3; also lets you compare and merge complete folders + recursively! + + Even though comparing and merging folders seems to be quite obvious, + there are several details that you should know about. Most important is of + course the fact that now many files might be affected by each operation. + If you don't have backups of your original data, then it can be very hard + or even impossible to return to the original state. So before starting a merge, + make sure that your data is safe, and going back is possible. If you make + an archive or use some version control system is your decision, but even + experienced programmers and integrators need the old sources now and then. + And note that even though I (the author of &kdiff3;) try to do my best, I can't + guarantee that there are no bugs. According to the &GNU; GPL there is NO WARRANTY + whatsoever for this program. So be humble and always keep in mind: + +
+ To err is human, but to really mess things up you need a computer. +
+ +So this is what this program can do for you: &kdiff3; ... + + + ... reads and compares two or three folders recursively, + ... takes special care of symbolic links, + ... lets you browse files on mouse double click, + ... for each item proposes a merge operation, which you can change + before starting the folder merge, + ... lets you simulate the merge and lists the actions that would + take place, without actually doing them, + ... lets you really do the merge, and lets you interact whenever + manual interaction is needed, + ... lets you run the selected operation for all items (F7 key) or the selected item (F6 key), + ... lets you continue the merge after manual interaction with F7 key, + ... optionally creates backups, with the .orig extension, + ... + +
+ +Starting Folder Comparison Or Merge + + This is very similar to the single file merge and comparison. You just + have to specify folders on the command line or in the file-open + dialog. + +Compare/Merge two folders: + + kdiff3 folder1 folder2 + kdiff3 folder1 folder2 -o destdir + + + If no destination folder is specified, then &kdiff3; will use folder2. + + + +Compare/Merge three folders: + + kdiff3 folder1 folder2 folder3 + kdiff3 folder1 folder2 folder3 -o destdir + + + When three folders are merged then folder1 + is used as the base for the merge. + If no destination folder is specified, then &kdiff3; will use folder3 + as the destination folder for the merge. + + + + Note that only the comparison starts automatically, not the merge. For this you first must + select a menu entry or the F7 key. (More details later.) + + + + +Folder Merge Visible Information + + While reading the folders a message-box appears that informs you of + the progress. If you abort the folder scan, then only files that have + been compared until then will be listed. + + When the folder scan is complete then &kdiff3; will show a listbox with + the results left, ... + + + + + + ... and details about the currently selected item on the right: + + + + + + +The Name Column + + Each file and folder that was found during the scan is shown here in + a tree. You can select an item by clicking it with the mouse once. + + The folders are collapsed by default. You can expand and collapse + them by clicking on the "+"/"-" or by double-clicking the item or + by using the &Left;/&Right; cursor keys. The Folder menu also contains two + actions Fold All Subfolders and Unfold All Subfolders with which you can + collapse or expand all folders at once. + + If you double-click a file item then the file comparison starts and the + file-diff-window will appear. + + + The image in the name column reflects the file type in the first + folder (A). It can be one of these: + + + Normal file + Normal folder (folder image) + Link to a file (file image with a link arrow) + Link to a folder (folder image with a link arrow) + + + If the file type is different in the other folders, then this is visible + in the columns A/B/C + and in the window that shows the details about the selected item. Note that + for such a case no merge operation can be selected automatically. When starting + the merge, then the user will be informed of problems of that kind. + + + +The Columns A/B/C and the Coloring Scheme + + As can be seen in the image above the colors red, green, yellow and black + are used in the columns A/B/C. + + + Black: This item doesn't exist in this folder. + Green: Newest item. + Yellow: Older than green, newer than red. + Red: Oldest item. + + + But for items that were identical in the comparison their color also is + identical even if the age is not. + + Folders are considered equal if all items they contain are identical. + Then they also will have the same color. But the age of a folder is not + considered for its color. + + The idea for this coloring scheme I came upon in + dirdiff command. The colors + resemble the colors of a leaf that is green when new, turns yellow later and red + when old. + + +The Operation Column + + After comparing the folders &kdiff3; also evaluates a proposal for a + merge operation. This is shown in the Operation column. You can modify + the operation by clicking on the operation you want to change. A small menu + will popup and allows you to select an operation for that item. (You can also + select the most needed operations via keyboard. + &Ctrl;1/2/3/4/∇ + will select A/B/C/Merge/ + Delete respectively if available.) This operation will be executed during the merge. + It depends on the item and on the merge-mode you are in, what operations are available. The merge-mode is one of + + + Three-folder merge (A is treated as older base of both). + Two-folder merge. + Two-folder sync-mode (activate via Synchronize folders option). + + + In three-folder merge the operation proposal will be: If for an item ... + + + + ... all three folders are equal: Copy from C + + + ... A and C are equal but B is not: Copy from B (or if B does not exist, delete the destination if exists) + + + ... A and B are equal but C is not: Copy from C (or if C does not exist, delete the destination if exists) + + + ... B and C are equal but A is not: Copy from C (or if C does not exist, delete the destination if exists) + + + ... only A exists: Delete the destination (if exists) + + + ... only B exists: Copy from B + + + ... only C exists: Copy from C + + + ... A, B and C are not equal: Merge + + + ... A, B and C don't have the same file type (⪚ A is a folder, B is a file): "Error: Conflicting File Types". While such items exist the folder merge cannot start. + + + + In two-folder merge the operation proposal will be: If for an item ... + + + + ... both folders are equal: Copy from B + + + ... A exists, but not B: Copy from A + + + ... B exists, but not A: Copy from B + + + ... A and B exist but are not equal: Merge + + + ... A and B don't have the same file type (⪚ A is a folder, B is a file): "Error: Conflicting File Types". While such items exist the folder merge cannot start. + + + + Sync-mode is active if only two folders and no explicit destination + were specified and if the Synchronize folders option is active. &kdiff3; + then selects a default operation so that both folders are the same afterwards. + If for an item ... + + + + ... both folders are equal: Nothing will be done. + + + ... A exists, but not B: Copy A to B + + + ... B exists, but not A: Copy B to A + + + ... A and B exist, but are not equal: Merge and store the result in both folders. (For the user the visible save-filename is B, but then &kdiff3; copies B also to A.) + + + ... A and B don't have the same file type (⪚ A is a folder, B is a file): "Error: Conflicting File Types". While such items exist the folder merge cannot start. + + + + When two folders are merged and the Copy newer instead of merging (unsafe) option is selected, then &kdiff3; looks at the dates and proposes to choose the newer file. If the files are not equal but have equal dates, then the operation will contain "Error: Dates are equal but files are not." While such items exist the folder merge cannot start. + + + +The Status Column + + During the merge one file after the other will be processed. The status + column will show Done for items where the merge operation has succeeded, + and other texts if something unexpected happened. When a merge is complete, + then you should make a last check to see if the status for all items is + agreeable. + + + +Statistics Columns + + When the file comparison mode Full Analysis is enabled in the options, then + &kdiff3; will show extra columns containing the numbers of Unsolved, Solved, Nonwhite and Whitespace + conflicts. (The Solved column will only show when comparing or merging three folders.) + + + +Selecting Listed Files + + Several options influence which files are listed here. Some are accessible in the + settings dialog. The Folder menu contains the entries: + + + Show Identical Files: Files that have been detected equal in all input folders. + + + Show Different Files: Files that exist in two or more folders but are not equal. + + + Show Files only in A: Files that exist only in A, but not in B or C. + + + Show Files only in B: Files that exist only in B, but not in A or C. + + + Show Files only in C: Files that exist only in C, but not in A or B. + + + + Activate only the Show options for the items you want listed. If for example you only want to list all items that exist either in A or in B but not in both, you'll have to activate Show Files only in A and Show Files only in B and deactivate all others (Show Identical Files, Show Different Files, Show Files only in C). The list will be updated immediately to reflect the change. + + These options also apply for folders with one exception: Disabling + Show Different Files will not hide any complete folders. This will + work only for files within. + + Note that of these only the Show Identical Files option is persistant. The others are enabled when starting &kdiff3;. + + + + + + +Doing A Folder Merge + + You can either merge the currently selected item (file or folder), or all items. + When you have made all your operation choices (in all subfolders too) + then you can start the merge. + + Be aware that if you didn't specify a destination folder explicitly, then the destination will be C in three-folder mode, B in two-folder merge mode, and in sync-mode it will be A or/and B. + + If you have specified a destination folder also check that all items + that should be in the output, are in the tree. There are some options that + cause certain items to be omitted from the folder comparison and merge. + Check these options to avoid unpleasant surprises: + + + Recursive Folders: If this is off, then items in subfolders will not be found. + Pattern/Anti-Pattern: Include/exclude items that match + Exclude Hidden Files + Show options (Show Identical/Different Files, Files only in A/B/C) + + + If you change the settings in order to list more files, you must do a rescan + via menu FolderRescan + yourself. (The reason for this is that for faster comparison-speed + &kdiff3; omits the comparison for files suppressed by these criteria.) If you + changed your file and folder patterns to exclude files, then the file-list will + immediately be updated on closing the options-dialog. + + Note that when you write to a completely new folder then you usually also want to copy the identical files. + In that case enable the Show Identical Files option. If your destination folder is one of the inputs, + then this isn't necessary because the file is already there. + + If you are satisfied so far, the rest is easy. + + To merge all items: Select Start/Continue Folder Merge + in the Folder menu or press F7 (which is the + default shortcut). To merge only the current item: Select Run Operation + for Current Item or press F6. + + If due to conflicting filetypes still some items with invalid operations + exist, then a messagebox will appear and these items will be pointed out, + so you can select a valid operation for the item. + + If you merge all items a dialog will appear giving you the options + Do it, Simulate it and + Cancel. + + + Select Simulate it if you want to see what would be done without + actually doing it. A verbose list of all operations will be shown. + Otherwise select Do it to really start merging. + + + Then &kdiff3; will run the specified operation for all items. If manual + interaction is required (single file merge), then a merge window will open + (see the big screenshot). + + When you have finished with manually merging a file, again select Start/ + Continue Folder Merge or the F7 key. If you haven't + saved it yet, a dialog will ask you to do so. Then &kdiff3; will continue with the + next item. + + When &kdiff3; encounters an error, it will tell you so and will show the + verbose-status-information. At the bottom of this list, there will be some + error messages which should help you to understand the cause of the problem. + When you continue merging (F7 key) &kdiff3; will give you the choice to retry + or skip the item that caused the problem. This means that before continuing + you can choose another operation or solve the problem by other means. + + When the merge is complete, then &kdiff3; will inform you via a message + box. + + If some items were merged individually before running the directorymerge then + &kdiff3; remembers this (while this + merge-session goes on), and doesn't merge them again when later the merge for + all items is run. Even when the merge was skipped or nothing was saved these + items count as completed. Only when you change the merge operation the + Done status of the item will be removed and it can be merged again. + + + +Options for Comparing and Merging Folders + + The &kdiff3; preferences (menu Settings + Configure &kdiff3;...) has + a section called "Folder Merge" with these options: + + + + Recursive folders Select whether to search folders + recursively. + File pattern(s): Only files that match any pattern here will + be put in the tree. More than one pattern may be specified here by using + the semicolon ";" as separator. Valid wildcards: '*' and '?'. (⪚ "*.cpp;*.h"). + Default is "*". This pattern is not used on folders. + File-anti-pattern(s): Files that match this pattern + will be excluded from the tree. More than one pattern may be specified here + via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default + is "*.orig;*.o;*.obj". + Folder-anti-pattern(s): Folders that match this pattern + will be excluded from the tree. More than one pattern may be specified here + via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default + is "CVS;deps;.svn". + Use Ignore File + Ignore files and folders that would also be ignored by the your source control. + Many automatically generated files are ignored using ignore lists. + The big advantage is that this can be folder-specific via a local ignore file. + (See version control docs for more detail.) + + Find hidden files and folders On some file systems files + have an "Hidden"-attribute. On other systems a filename starting with a dot + "." causes it to be hidden. This option allows you to decide whether to + include these files in the tree or not. Default is on. + Follow file links For links to files: When disabled, then + the symbolic links are compared. When enabled, then the files behind the + links are compared. Default is off. + Follow folder links For links to folders: When disabled, + then the symbolic links will be compared. When enabled then the link will + be treated like a folder and it will be scanned recursively. (Note that + the program doesn't check if the link is "recursive". So for example a folder + that contains a link to the folder would cause an infinite loop, and after + some time when the stack overflows or all memory is used up, crash the program.) + Default is off. + Case sensitive filename comparison + Default is false on &Windows;, true for other operating systems. + File Comparison Mode: + + Binary comparison + This is the default file comparison mode. + + Full analysis + Do a full analysis of each file and show the statistics information columns. + (Number of Solved, Unsolved, + Nonwhite and White conflicts.) + The full analysis is slower than a simple binary analysis, and much + slower when used on files that don't contain text. + (Specify the appropriate file-antipatterns.) + + Trust the size and modification date (unsafe) + If you compare big folders over a slow network, it might be faster to + compare the modification dates and file length alone. But this speed improvement + comes with the price of a little uncertainty. Use this option with care. + Default is off. + Trust the size (unsafe) + Similar to trusting the modification date. No real comparison happens. Two + files are considered equal if their file-sizes are equal. This is useful + when the file-copy operation didn't preserve the modification date. + Use this option with care. Default is off. + + + Synchronize folders + Activates sync-mode when two folders are compared and no explicit destination + folder was specified. In this mode the proposed operations will be chosen so + that both source folders are equal afterwards. Also the merge result will be + written to both folders. Default is off. + Copy newer instead of merging (unsafe) + Instead of merging the proposed operation will copy the newer source if changes + happened. (Considered unsafe, because it implies that you know, that the other + file hasn't been edited too. Check to make sure in every case.) Default is off. + Backup files (.orig) + If a file or complete folder is replaced by another or is deleted then the + original version will be renamed with an .orig + extension. If an old backup file with .orig + extension already exists then this will be deleted without backup. This also + affects the normal merging of single files, not only in folder-merge mode. + Default is on. + + + +Other Functions in Folder Merge Window +Split/Full Screen Mode + + Usually the folder-merge list view remains visible while a single file is compared or merged. With the mouse you can move the splitter bar that separates the file list from the text-diff windows. If you don't want this, you can disable FolderFolder && Text Split Screen View menu item. Then you can use FolderToggle View menu item to switch between the file list and the text-diff view that then occupy the full screen. + + +Comparing or Merging a Single File + + Probably you will prefer a simple double mouse click on a file in order + to compare it. Nevertheless there also exists an entry in the Folder + menu. You can also directly merge a single file by selecting it and choosing + MergeMerge Current File + menu item. On saving the result, the status will be set to done, and the file + will not be merged again if a folder merge is started. + + But note that this status information will be lost when you rerun a folder + scan: FolderRescan + + +Comparing or Merging Files with Different Names + + Sometimes you need to compare or merge files with different names (⪚ the current + file and the backup in the same folder). + + Select the exact file by clicking onto the icon in the column A, B or C. The first file selected thus will be marked with an A, the second and third with B and C regardless on what column they are in. Only up to three files can be chosen like this. + + Proceed by choosing FolderCompare Explicitly Selected Files or FolderMerge Explicitly Selected Files menu item. For your convenience these menu entries also appear as context menu when you right-click the last selected file. + + The comparison or merge of a file will happen in the same window. + If this method is used for folders a new window will be opened. + + +
+ + +Miscellaneous Topics + +Network transparency via KIO +KIO-Slaves + +The KIO library from &frameworks; supports network transparency via KIO-slaves. +&kdiff3; uses this for reading input files and for scanning folders. +This means that you can specify files and folders on local and +remote resources via &URL;s. + +Example: + + + kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp + kdiff3 tar:/home/hacker/archive.tar.gz/folder ./folder + + +The first line compares a local file with a file on an &FTP; server. The second line +compares a folder within an compressed archive with a local folder. + +Other KIO-slaves that are interesting are: + + +Files from the WWW (http:), +Files from the &FTP; (ftp:), +Encrypted file transfer (fish:, sftp:), +&Windows; resources (smb:), +Local files (file:), + + +Other things that are possible, but probably less useful are: + + +Man-pages (man:), +Info-pages (info:), + + + +How To Write &URL;s + + An &URL; has a different syntax compared with paths for local files and folders. + Some things should be considered: + + + + A path can be relative and can contain "." or "..". This is not possible for &URL;s + which are always absolute. + + Special characters must be written with "escaping". ("#" -> "%23", space ->"%20", &etc;) + E.g. a file with the name "#foo#" would have the &URL; "file:/%23foo%23". + + When &URL;s don't work as expected, try to open them in &konqueror; first. + + + + + +Capabilities of KIO-Slaves + + Network transparency has one drawback: Not all resources have the same capabilities. + + Sometimes this is due to the file system of the server, sometimes due to the protocol. + Here is a short list of restrictions: + + + + Sometimes there is no support for links. + + Or there is no way to distinguish if a link points to a file or a folder; always + assuming a file. (ftp:, sftp:). + + Can't always determine the filesize. + + Limited support for permissions. + + No possibility to modify permissions or modification time, so permissions or time + of a copy will differ from the original. (See the Trust the size (unsafe) option.) + (To modify permissions or modification time is only possible for local files.) + + + + + + +Using &kdiff3; as a KPart + +&kdiff3; is a KPart. Currently it implements the KParts::ReadOnlyPart interface. + +It's main use is as difference-viewer in &kdevelop;. &kdevelop; always starts the +internal difference viewer first. To invoke &kdiff3; press the &RMB; +on the difference viewer window and select Show in KDiff3Part from the context menu. + +&kdiff3; normally requires two complete files as input. When used as part &kdiff3; +will assume that the input file is a patch-file in the unified format. &kdiff3; +then retrieves the original filenames from the patch-file. At least one of +the two files must be available. &kdiff3; will then invoke patch to +recreate the second file. + +In &dolphin; you can select a patch-file and select Preview +inKDiff3Part item from the context +menu. Be aware that this won't work if none of the original files are available, and it +is not reliable if the original file(s) have changed since the patch-file was generated. + +When run as a part &kdiff3; only provides the a two-file-diff, a very small toolbar +and menu. Merging or folder comparison are not supported then. + + + + +Using &kdiff3; as a &git; Diff and Merging Tool + + &kdiff3; can be used as a &git; diff and merge tool. + + + Just add the following lines into your gitconfig file. + + +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <path to kdiff3 binary in your system> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <path to kdiff3 binary in your system> + + + Then to see the difference between two commits use git difftool first_hash second_hash --tool=kdiff3 --cc some_file_in_the_git_tree + + + To merge a branch with &kdiff3; use git merge branch_name && git mergetool --tool=kdiff3 + + + After resolving merging conflicts in the usual way it is enough to commit the changes to do the job. + + + + + +Questions and Answers + +&reporting.bugs; +&updating.documentation; + + + + + Why is it called "&kdiff3;"? + + Tools named KDiff and KDiff2 (now called &kompare;) already exist. Also &kdiff3; should suggest that it can merge like the diff3 tool in the Diff-Tool collection. + + + + Why did I release it under GPL? + + I'm using GPL programs for a very long time now and learned very much by + having a look at many of the sources. Hence this is my "Thank You" to + all programmers that also did so or will do the same. + + + + Some buttons and functions are missing. What's wrong? + + You compiled from source but you probably didn't specify the correct prefix + for the installation. By default cmake wants to install in + /usr/local but then the user-interface + resource file (&ie; kdiff3ui.rc) can't be found. The + README file contains more information about the correct prefix. + + + + Often lines that are similar but not identical appear next to each other + but sometimes not. Why? + + Lines where only the amount of white space characters is different are + treated as "equal" at first, while just one different non-white character + causes the lines to be "different". If similar lines appear next to each + other, this actually is coincidence but this fortunately is often the case. + See also Manual Diff Help. + + + + Why must all conflicts be solved before the merge result can be saved? + + For each equal or different section the editor in the merge result window remembers where it begins or ends. This is needed so that conflicts can be solved manually by simply selecting the source button (A, B or C). This information is lost while saving as text and it is too much effort to create a special file format that supports saving and restoring all necessary information. + + + + How can I synchronise the diff and merge views, so that all views show the same text position? + + Click into the summary column left of the text. (See also here.) + + + + Why does the editor in the merge result window not have an "undo"-function? + + This was too much effort until now. You can always restore a version from one source (A, B or C) by clicking the respective button. For big editing the use of another editor is recommended anyway. + + + + When I removed some text, then suddenly "<No src line>" appeared + and cannot be deleted. What does that mean and how can one remove this? + + For each equal or different section the editor in the merge result window + remembers where it begins or ends. "<No src line>" means that + there is nothing left in a section, not even a new line character. + This can happen either while merging automatically or by editing. This is + no problem, since this hint won't appear in the saved file. If you want + the orignal source back just select the section (click on the left summary + column) and then click the source button with the needed contents + (A/B or C). + + + + Why doesn't &kdiff3; support syntax-highlighting? + + &kdiff3; already uses many colors for difference highlighting. More + highlighting would be confusing. Use another editor for this. + + + + Can I use &kdiff3; to compare + OpenOffice.org, &Microsoft; Word, + &Microsoft; Excel, &PDF;, &etc; files? + + Although &kdiff3; will analyse any kind of file the result will probably + not be very satisfactory for you. + + &kdiff3; was made to compare pure text files. + OpenOffice.org, &Microsoft; Word, + &Microsoft; Excel, &etc; store much more information + in the files (about fonts, pictures, pages, colors, &etc;) which &kdiff3; doesn't + know about. So &kdiff3; will show you the contents of the file interpreted as + pure text, but this might be unreadable or at least it will look very odd. + + Since most programs nowadays store their contents in &XML; format, you might + be able to read it as pure text. So if the change was only small, + &kdiff3; still might help you. + + The best solution if you only want to compare the text (without embedded objects like pictures) is to use EditSelect All and EditCopy menu items in your program to copy the interesting text to the clipboard and then in &kdiff3; paste the text into either diff input window. (See also Select, Copy And Paste.) + + + + Where has the folder option List only deltas gone? + + There are now several "Show" options in the + Folder menu. Disabling Show Identical Files + will achieve what enabling List only deltas used to do. + + + + How can I make a big selection in the diff input window + because scrolling takes so long? + + Start the selection as usual (click and hold the &LMB;). Then use the navigation keys (⪚ &PgUp;, &PgDn;) while holding the &LMB; down. (See also Select, Copy And Paste.) + + + + There is so much information here, but your question is still not answered? + + Please send me your question. I appreciate every comment. + + + + + + + +Credits and License + + +&kdiff3; - File and Folder Comparison and Merge Tool + + +Program copyright 2002-2007 Joachim Eibl joachim.eibl at gmx.de + + +Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you! + + + +Documentation Copyright © 2002-2007 Joachim Eibl joachim.eibl at gmx.de + + + +Documentation Copyright © 2017-2019 Michael Reeves reeves.87 at gmail.com + + + + +&underFDL; + + +&underGPL; + + + +&documentation.index; +
+ + diff --git a/doc/en/iteminfo.png b/doc/en/iteminfo.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef5f55093364acca6f54411242e95ae43449927 GIT binary patch literal 7407 zcmZWu2UJr*vqlhZ6+}@8BuEWK5m2N{?;YvVlhCUa2~9eo z1_&h(ngmFIhx*?8-#PD|xwGHS?#%4BJLjHz&kfbnQKhB2Nku|JLaVN(Y(PSC33h?= zu99779^YtF5)v{JJuM>@0+EQjxc}dELL^?u@n1P1Ud;I0BmDj|k+4f7;x8=!tp8jI z#6M$%lLf-@81ZDAa6C;oUfK8)Wn&G0OgI`E#h*+coh%$4tsLNo4vz49Lzuli+%68c zyNlkv0J|5mb)k3G{u%#SHvZcG;y*Jl1p8NS?(S~yZ2rURJG=WkzZUSRY^SIq# zxIG+h4u@O9;pTB$qdQwewcAGnTYISOo&K%eo$b->?YSK+vTbv}3%l37xr@X8!mn2~ zZ5-@ubnmRS?5!aXYkM7425@$8u$+*EG&j$Qi2Cysr1%3UHuYYpn8V++L~=&Z-|+hx>2T`9Ny0@ak`#)k|v?@0KgQGAi3Z-!bS? z$hXom*V6fQRp#`sG>6t?2qMY-d!n~_;)q>RpHU35 zFUs6Hs--jZxnXFF=BLiqV1vdFx@v(fbpZyY0Tvno2$-){Ce&Qn2d?Q^693Lz4pN!z zs{74FJ>N;K$Vo}bDM#jYLG~-9OnW6c+w>%Bl~_ydFiS&ei!>-uC)Ql)lezX&^Q0&< zO(oMfS>qUG!;i9tk%9UuK6)x(y=PLoA$A(>V09H`^$!p=J6APF6*Z8Hs)3xUwWcc6 zKt)Ab#SyG*@>JQ=RY}8KNli~tK~+&vQqjy-!PP>+0jOXsrJ!&9)WznhwVk}<6Ipd- z8F?A$r;j8R0TQxe5^@ip$cR0WnU)HRA|YWbR##Rq@|wmbksI0p8Q$YDrF!o7dW($m z@9QdwF@6cZ6f8eS4di*tXz{FF(AOOW{=|l2;|~lnLw&45}`WO#xK(Q%d!*X`%m2~JaXR6D%coWOL7ImCsW?0qf zaVB2XLZ5GOo9r-D2Ed}G&>N=2-{GW|P zYqxx@dbTp|frwNSGItie)wR_UrnFP!eMD37WJ^{p4#|=HRTKLOm)3+MwY$QzqNz*L z2>VjkPg;qrA*a6~%vxKh;jO(aPl8h0Wvx>41CS}}Aoa|0^jfc=WSNfgaE6A}Z)PMr zXZg)TnBdCy`Y)>!`*J)Z-MI-LUO%(Q1(Y(2`UhO40PXC6oTXy8!LwI3AB*<2$GJJuDk-v=#zZUHaWHmr&{wC^_OMJrRHUuo)xG)o*a^s9er5`abSLkNydw0oSFjs}Vt3D!Y*xDpZDdv& z31JAl^+tVsD0T;+WRg`Ler>5r{xQmq7A(T9L%WEQJJk_k9N3c;mm4{(Z65SqWWx)k$E&e z4FU|fjRZ7UZ9h0x@%r**0QM6xT>*%d;{b5(}zPLz~KhJhiOO> zz@6CMuitni1tsQPgU;1nzLx7e?K4`~nbjm3DV+%AUf6Qt?>Ujt_FH(Cr(LB=XZaOc=aVw&T@=HyDk%bztpo;9|TGGd&$(1`gA#7c-@4>Zhx(}I} zrygJCL9#VwO=<8}u^b7Fwj*hiKGCD!n6f{|q}oy-c^TMYd|ZlOyBFk1@o!Ais`DR9 zU0IS$yI=m{p`JiKLmzVODe>@56RX{kAA{u*d{ONdtnpb>njX86;*-(184!)LV>jVz z3F8#at6+43Q!{B(k@4P}eliDzCm$UiORwkh$=~LN#$-8ptdJT!arhhqteTNZkfI1gYg%*)rQXpF)x$Z3px*}REQ@T4V>=ePD(~W^$@Pl-+Gkik})vI zW5}dAql0b0}g6A)AiN7%w>U=MRw3nmP}& zQy||Mk85yF`d>C%CG8t2iDo}~K>9rW^Yc>%GLp(%O3>5EPe()UZ7vV>cbk(w+!$!- z21FmEjlbXhgkIFsQRL~N^%)1;PC#!22UTqXdyKVOwKBffC6%xT-r40UI7&31p-na^m-G}!Eqr}m2z98ij_u;iHcGnInC@Jlu zcytI4k83@81B;TEu^xM`HKy7b~g?D`N|tQ4E(z zB_~KxSC8zCUT`VXn{)^+7Db^87EgGiX0)BCUi%ZNq>8#3yvF#utv;8+<$A%@zt#JM zX#>%2WR#}i`lJvo`Q6kCa7WDC&%w$_^YqqC;<`;=ghOVh4mF(5`3GHdJawJivE+ez zBzp>Z*^fHvp||=|*gkTmprXwYDZUOpvoM{`Vu;^JB)>b4w*m523x$=^@Q_@u4i&Cz z+n_rHtoC*2>PmuxN3K^9xo%RTQ)Uoy02F?(`=)Fetnu1QHJm-Q~mYBzO}Kfaqi88^bJULmhMRu6QR$ZtJ1jj zc#SKdeI~JDPOmzPynzFegBa-z=)7PS^im7Y_vitidZ1sZthQH#Z3q8~O2%a>aC4jj z$dyCrdXpuS5))21N^Q|LUitNM5|Daa+!&z5YT(t*5fF&z&m*fFLX())ak>7PyD)9H-tps+&7mX*NIyaJ>lrOx# zpp1~?j`c(vkAoqvB7f()#>5LwOW)*LzZJ?SZcL-}B91&kx)`bxd+f%p2F2=q?D0K-Pyg^0r4Uw7 z^yHWkUcM|6e$a`KHc_Jx+b zbB!AL>xG`DZ8p~(8TL3-;p$fbl#Bc*-k{VV*H}7GyLM`Z=79y9>Vo6iEOT!`)KDIV zL6#LV^9y!9J<&mAV3bXy_|w19c_pb?>A>RVfkjW*QMd`&0$bvD7rh+JNESvBWGxrq z-@*v?O_zb+Cw=0S_(ry*+y@ioL}_Qo*(f1xCF4lVKa zP5J^87`NBMZjM84i}i$`v&i)`OzcJI@0dN-i>3^-$CPuiti(>P0}fS1IOQJ-+^GMd zP&Ucp8>#0-BOfQ?Q=VxTP|l4Qw6ZphVbO+<_wP{#c;BMD5?9YQo%8I#q8^XAdCdFD z=-do;qWoKS>O5+DuogE}{N4apBPDHiU~%%>!qv?I2s3B)1$&W15Nu2@bJgYxBNk$) z?+WGm2>1%|_=uePh)foCz9R)BDu8x+1jFicVb4xN=j# zmd*~HSIuVveX8{SU1g=U0( zC!>>zZg+15z2&rV>3wYPT{yFC$gGF69|$)R)j!F9KFH@IV&U1+QXwJf1H5Eo;c5Ne z9pKzMhC6ulR`R{iw-?gyg$4xN*AdEtE3deGl6u23Heda6^B%fQOL;}*k2j@vB+vh; z97VYIwZ#M}kHF6FjA%n=kR7nITY5BaCvyXk$hUs|RQRU!`0A53VlbQ%mdzNH>dJUg zZWlP``b7a=bd_rThQUh7IU=CDz}kAU6RgZeLKW-`0cNFrW7Bw9Ft>)x8xum1ZE9&^ z6UQkfm>9vB-c{WABc$i4nGHGpDG_SUY(c2kozxF z%&JengTL$woF!G^!V94&dwL2=KIOkZDM9Ncn8VRK&!ju z99H+Dj=aW2o>7cS9*=Fjr7IKmmtYBom-3<)5Kk>M(cme z%H<)X6ObNDcjx#BbOCg-pL~$TZQC%~PvwkKA!x z`b`dxt2bK-$a*clp5jr}N`e5cRqAd^=DqXu;>W;tu{PUF6T}^#q&Z$8-_w}v@ z!=>OclJg3C=YPQgRYI+Afv#%emQtd<>E1I;T=lsE$`lI z0LW|wf3+CJKGi*EKFWw#%(oJRzVV^jnjPZN6Tlh_@)boGd+h*SG?SUQC@E?HhVI;I zQ%8QS0}($J;H*o681sO?EQITGh6A^9mOK`F4dCN>F7pXpj%iq(a`th1s}S#CqFaZz zx&_G94f|8`;;YC&v?r@uxvT6Lz5Z~9dJuw*e#V-=b0oEiCD}&!@p%mnp`ax+0-o`*T#n@pT@50? z<}Nwv#r{|5Y*?AmfTp?1=GF10>Oz&9nTfo8w7}(6mNYOlY0>;j^kxVkIkB=y(W^-! zGtp~>V%)&O6T09~UMB;w>5@HtNb1MuNoCzq*047WY3O!(P%dQUT;OIO!2FZ`W8DpA z*mt_94b|(rx|Yy$o`Eu5|C)(QlL`wzCN9}j+oC3=NH(vsSRaozT~mu=ue-avL=iu? z-7!9!O9PqRxj3tkE#~%3U(SV?)K3X}Dmg3mO7$%Rg90mHnTEEpP!HjBjw6BgLN^IPuKjc{+Wp0c-KWey6=Em*S~ISTP9@pQ@7WX&ql3y;GymuZQ8DksLO!A4HG3O zwV#(eo}FGS_K!);m673M%!&Zb34O>5pVC^11Q{b9gq~w_UZh>27PGbv5f8TzeEB{5)UQD+N1OF3Vz$>U-Wep8%PdjwV#BX;)-7lSJVzx)I z{`~9U@nLhoV-qTuGp89sdNpozj>}?!7|C2kgxIqt^A0i!PYJp*f zLc?IOv~8&tqbu4QGk}|_8S7GlF+8W08CN#1N{-NTt_s&NMwk|~584SmZ#F%)IQ0aE zVe1-ir5Bi9Jc*O&qD<)x3mzm$K%-*w2s9)cYS&%SRBwPPOx|%7V_WNnJ;KF@Olji$ zPi_M=UxHo(H>lvf-kig&Wj|qOnypW*2W!3+43#XWOm>xj!VF0HmUBPDeD#&Jm=ANDw!6kN54mqu-g%klLX{nSKhI4#*iK3E@HWU-!MS81 z&ImOA6;<0ROdb*z9^&#V)|in!dS*IxbGeaX|X3GD{v-oYrwuCI5rn;`D%4aLq0`b2|e;|Rv^gy$wCZ}dw z;PmY1zpTr-`Pbrs8rG$ZaBqqLB`bKX2o2o!1sP;!o`F`|QW7@Tp~>`{<_BX2`xMyO zzkK)F$}_`O=Yi0dRbFm*07uy&&5t%U?60@o`zDaBFu1LXDv`Q*ercsF&$4Ty%)>*t zKQo>bRdHKw=DvTL#cXpJ2|&+OyWHLtWZdQL<3*0P4;9lnyk(KIMlX*YlnXHB9QeFq z5_uX6E-w;#nY7d?){9BefXMo>W()ch*uMBSHod(>r&xpLHD;=G{H5u^F|c=HLZ5uL zGhLuP-*FZ~P8nbKTm~>G9tX6syF-5ce3ssM6wIKrq6CA!HS_D~!|-W>!(1C?9hGph zB|2P%?Ty+o*+`#LTCx0aj{+$d4;D?{gV?uB8<3`_0Q*4#t)H?-_q)@}`qse)Ej?4DL%)m`)zzdl1Jcwe7PnOzSP=y6tWE6mfG z!RO3FjWuhsB!caD63?>; ziD_LpW=5A`&lfsZw@=Pmd%tW{A*as3q&D@TQKpNLsLqQQXfQRwlM>?n_VW4 zAm-Vfy+zu@y+HY0^&DnP4rtJR?`;sh^*iOCm^G61n{sN)T3ad*?aFyKcN@jug-fmY zZF`@*Ya_d@z6NsWZy!!8{}kh-?+Do{3gI5kJ|Gao&i^bF7poYUy1>s1r=$e^2L+}^ zU)YEifvI~)34u-_f040*+62(^p`8~MnLodJAmte(SZQ3Vgm3s&`igCKRSLM}SHkVp z&I4jDw{0Zige%ZfK0YGuc4tCpaL3~mBDA4@38R>5oCJHxZg~T8`55ta+scc20xa5E zCCSZQiI^S`sCK~3`mdR{rh)V9fQs!m6+gN$$iI0(xx$zaJwKs;*>p(k-F&uU%)2NS z$wst*bM&P&&a<-DfP8{P_(SSO0*x$4fOnQ+?^%$Qd{AXNs_Q$UBSoq-k=^1e?5;pL z1^7ohvBGxUzfEfr7TN`D-YNsWlHh7Aya{_I#x6=!;KKwL*k_Z4M73tLQVrOH_FU=HQJ z+m=L~EWzB5mn3lD%jT^9)vNllV!R6 z{!XRyqvo7qjyL?fl#bYx4$ZJyu3NRyW0jQ7!F&ib%N32`tJ4ThO}|Y3bhfQGNh~^b zWIk|}uP&T>tuTa3;F}v?>=9z9fO+nO&F}h}Df2R>??$h;ptCt*=nYA5OsRU^3DN3A ztK`}xc@v}TJ>L#I$)T@ia&vTa^o~%almGcfevk|MK@-$=*?{I@Xr^YZV;jqd%%(O1 z!j#XSczT!SHpEJ^hJWf&ZHDERO6?tMt)PoE!L_|yt>YR zs_#GOf9r5YI-(j+0l9-*!HmpiYRX|g4Yu}M2VQFQ)C8E$P4vp?0p(8tV-{kUnx^Ea zGdsqDD3%k%XDbA_39C}E$B1`$%!#9-qT+NkH%1${Ap({aOZ;jT{>qYrmtt`X?E+=rTFWvFLj|Xq|!)rAs;<2j^T(o4Ec$kqiRe z7ZDRp%+&M@5P?s>rw+QbHajv?O|28Ud*9JkwXXdO;a*;Zq7c9MO<3IfsCFlRk=awk zWRCNKuP8|q@V0YBmAuJFzaba!{mUE7@`?L>zYs>DHi~G-qtw4a70+jx)W!YFZ{t|F z!oR_ezemtGd6oERnp~S zYTak3{!9MOWq>A{%nO(BBnjgncx+L|3FYD!Uxl`gW82*SMA#Z6&n>T4;GoFz)N~mX z=^Bi0K7Go*<8CD>LVxHR`%4EmXC|EyP8rb?;q(E&eW3O)u8*w-C*dC#(S0||#=~W+ zj=qQ&f+64X= DCOTvh literal 0 HcmV?d00001 diff --git a/doc/en/letter_by_letter.png b/doc/en/letter_by_letter.png new file mode 100644 index 0000000000000000000000000000000000000000..2faa9abad4289d85b32249c22d2b4df5c28a8126 GIT binary patch literal 13020 zcmZ9y2UJtr7A~x!(gZ{)0s<^^Sj2h&>eIQ1=m~ zg-D&NW9N|cjXKBSuc`ye{sES<|CzGaNZD({?e0)^O0YXS3)sW1E%KM`lauXF<6FeW zZSvv=bDtY;k{OC zvAuKguir(^frUSG3${}WBIffg@SkAKd64y7Ese}Ss~PH#5>X|Ik=60Y4SL@(@=Po9)admT zOa?wL_fY5r-n`}Bblnvm@1*wA@#eOpRahaK#@9eenzC*N$Y+_uWSY*kxp#r)ZV z^^?Vo*q5S7=5&`#D{D+I9T|NPei7qkC|#h>dP(O~z7B)fQx7`L6v*Q%$&cxaRA`-) zZjhAx`4x2-6{4c$>AW6tzXaTfkfqnV&rK`!o?aNFCd_gDo;FB`j_vkSIzf+PK{MA| zjP5rt=-psu;CHys_dK14o{ig}jGMupo6drpMe-UGGpG0^4r?JcIu2H0#>-}Omj(GR zGiqO^6J=4pz$_!rq{eZ{i09Hpy-RmB7+Ib$vga^zN;613W#E0vAn3`!cf`ObNv}Xh z&w7QPUXGqdjP4c}ov=3DML}ATGqkGAv=?bF(4L{;yGTQO{u~wgv{dl_@8{f^GukdO zM`zARq&<7`*a$SUnM1E_>^Red2$R`R>SLM<&AP_^q-g2Au?pv$Mt)r*XPWL#p*ma4 z{D-SgcnJ0}|9BMIrQG>65!ZcDeOzX#_0hL$cI_9Osv*+$;D<#IqZGpX53yQp1pCFegxjZ} zGhg;*xc#L=<$2JZBj_|v&7TMG9z+Vo8u0HpA99A(UPN?$$Z8oHTAiCe&qd_?JPZ#PtzM*?v6*3Evwo#+06IO-F~_#0%Btx0v9lKyf(SB zzWzku;hd|U4)^a-C-qB2Pi}5!H(%zhYsx>_$A6bBeehZ4^_)BA?q>#!%qn;Sb>hmw<#GzkB7)hzU4vI}g5jAfZElIVWOleq+Ec7Lqn@i%kX} z;>0Mo%Tn+P?&j7o6Wp*&451A3eW;YD;+;H~=gE#~RFc)2UZ2#_4V*e|SlQ%->HT5J zl4JXmwPy8@^5A(uKZX_*z-h848PjUxSRf>p-2ed>i%(6Um;1ZFUgz8=*Xj*=marIE zA-m97B9(wotisk5)0f%#tlWMR{71c{gD=hP-Uls>Fo(|V_1oejyH|ZH*Ln>IMm_wu zqcrq6JERF-cGI-tg{yvbPx*g}>&Ghf`G!Hi;FB^dsxD{K-+DKZvJUr*J~uC=v0Ys* z9$BiP!Lu#aRa+&dVDJF3J1)t#;-xiq4tC1OBfRbvJ0&9 z{;%}%Z6R)4U`UgiX_2=u2no$H-#9DD{1Ypc~ z4a9c)fw5f36+=~w<>1q&Lq3ZpeJuwsyAQ3{JK@nhp0^z4^wb2t^Dk?7DDnF__oTCk zn1*`f1iG4ny$FO#-7XFB0lp;g=kL-seCh&ajIo2?^Y9zSEG4v7BQ5lZSP;hFIw$Gd z&O4wK9a7G;t{dwQr<>2G7|Qq^e}$cci`?N?A!4Tegl6zyKk%UPI={_`)UQ9E`?4_m zSNbfv%1F#h)qZ2gC+dNirl`KvsUO!z^7e=JMwq>#kl$s;yN}~6dM$HBTM78Pa!L8{fDKPb(){yp*5$=U0kG9BQcNG1@#`MmdAfyLRfaBiQt-%*D3?TpB` zyn33y-a_i1MRw(12(yLutB>Zcmh*TD`v(CuF^N@1M&_|tT+?)0%QlN73KmC zV|~T7ZzHieTn@j}QH=c9YyD>B{A^O1U}ev2BoIfA7Y6~o)x}ljaUT&CYT8H_zx)D4 z4xy5*>YdSkddCL`kWBfZGeC(PW0jXR`9e(K8o%(XE(5z?3(pB%ynLZhVaE(CoEmN$ zwh*h44htYZdkG$Hob0I@TT$}_XVMqwvxjL|yxBmBp`DUpKO*$*uPaWg+6uLdkWvaYTE6xK`IGMDw< zuafeGB(1ap0&%&?cAuG23M*SkCT=G(&8HYTRAk7G0KD7 z$aNBMWU$4T#WCU+*B*oOnqM@5904>i6>ySWTAkN4{^Wl1eTc42^~pK-L=wB*WXKKV zC~23G!RE06&LqDgWux8%-+k^G&O~j^%1>wKfmZ+i%NNLZE#Wtqb3#DTk3Y=m6^D;2 z*I94G(hlTGoP!&%!ONdbh{bq)>f9xAgCd|_3AAQ-pEE#+ickF-=}ITU8h=d5(u_)~ z0tp<|imyM{Doz}&_On^CvSh_Vu(|79$s`1JLQ5(6wY(RWRdR*qSz! zmvKi4;7rmgD*Ckr^pmH57G_E<`{qPlU?9lj4W5EG{CETqCA8P;T~*Ix@A>|UrBCDA zH&7bn9Ur(HONZK)IBLYp5!ude=Ziw7_hWELQy+g9l1^j~0;vh#K5WEKpKfs2b^-i#L z^_3n|@Co6zZ>84#b80&Wk(G`Z+Ulu4fzO6AwxAi@gB2!L^Hixpj(Oj0TN~3SaC;Zj z(>~V9@a4MDA-DH28<{jY7l8hcNA>ITlWu|nQcX=#s!X7wbDnx6J}O}g0`Y;*Of=iG z3Mkt=tzb?(N64o(OEIDgYf}i}HgY<}SiSi@$aC}z&~D~S_}z?aYmXwbR=1{st*=Mn zR3gTzK&MslKB`WLClR?Q`Mu*wyaoQ>>)(O=Ro_F+l-6Hm4^o3C$4Kg2dmIaq9`E3c zYiM9yK3~*KZJkw-HCz1z0yje0F>Um0zqE>7 z9|}}MuU>Lo4So4BV?|8tQB3KUynO_^-RTD(kVIyrXzw;0AX0vKcbdaxfrqGrz*o-1 znFXbF=E2Yh%dt*s$Pb+HfR2km5z4HBbiljaySh{Y9Uzzc1imtBebf3inE@$jWAHl4 zxinRy9B?vGqNuRZOuWn8ef7#&UFSVWDJjYo z+kOJa^5yQmTwmDkiM|6hv*6pXHcusIp;6lG>O}vz0#Q1A3;oW?0nG@%lh(%od*jL4 z7j+8s$T>QTZ@3hiseypo_oQ7-Ll+>9n*_PqyAoU772=>y*#6hBL0%5STKz~;&a9Li z@s;g)UALFWl~6Q+W;vqZfJBS@3Y|Rh-K(HIjXYYE*&3Eh1ArLc$+~3WNy)1IV8U-w z$+x^RqxW8v@Sbvw!_-ow#mdRtWrJitPXoHpv&cPcVc8KR?Km-Z!R>*eJ|AOrYG8L8 z$Pm3Kxc`r$Bko+Ju^MKmRZR4?*Z0VAR~h3-W8bnR?9sxwQQ67PVSX9;Bp9}tmqJnc zgd}YJuNa&T*B^8>^ai9Z*(YWd4_iEY+cJS&|M9E;iF$se98yRaRA=p)&hX`?Um>g6 zw|^Azscr9c2VsgcwdN%B5&R~BLm8vg1u^#mpdKUL|#s_S1YO4{58j)Bpa zH|l947ltRGEg8?rIPEBFB;R;{!i_HW;x6}b%9g#|GVn8w}h`Y?O= zE?@Vs;mu9Yh_JuvdxqW+YwaChI|F1Rn;xx-f0`B{Ij%wNAPQkHj2Ic%tSpI4YXh^x zr>R%-b>W;MzRVz)Kiho^C7@JZ${XFQ>gHbRqZq$Rd279)?Kd15itxgw=pFF*r(D>I zMhx7DPvpF%S?fQFrS@Zm@wA0+uTRmVI5_V6nmuh%z0Kzr2T=q*wuU{5?V7(eC3_xJ zNHt-(yXD|Dq}IVm2W9)Syu$7MvHx1Kge8W|ENRnjkzV^AHmcXMcg-OP&?4ciUweO$ z^r0g0S%J_KQ#SN9{aSyLnmnjd{tx@(vWoq(cfN(D6UpctSyY;(55-o#-uNQz|H@>7)mk5ZZ9A&53fb32?wo2S?T8a*!IZRVgNHlA-DPt7-dzR`kuJaOoEpbrfKNPeR@zk0;^#$39T6nPYoy-VrFo73mMz_=&gpm-ZHa z5Z%yqQSliWTMxUBYj!0DbZ+qu;Y)C>zIGoyL9WPOlvHJ$=Thw8;MR|3opW%v*A9>xc=a(b zDxs%!X8HPm=e+EZKhKnoimZ*tq$&cBJ5oDV{^7Z!RT9l zlVGl2Crq8XFh)b4E#K!!yd&cT7u9eP2Oq}Sc?FSm?&;!ZcOQHD-jM8^Psu2xwBTn? z4d&W+qV(7Q5kIK@f0om~+R*!6hUdrBKoe!^f{S%ggM-`qGX7FnjV~tyoc8}&F}cot z@UVD+3B{rQR;4@klaPFskIWs3EvCO~I&N+;T{V?mfQZIhWHxtBdCq<88ywZonazWF zp8yFR1&`BFx(om1oYOTMxi?7O{sYP){E^@R-24*^fNz`GF~)GaIpw%BH#P|&NH z>b-jfK1vt$E}}4xn_mCkZ&l3pchl6KU!06^n#STrh4--D>r6J6iQi^rMUS!coEia= zh@3VHJk=wu_{}iV2elEogRaw#Xn_PE7hD}8A8> znC)-x0kpf$Fh{dP6wUes^yoUZDr%r&Y6$qJ9`S;p$VN3jxM)Re$~6&|CyjSN9dJ2G zg{IA09X41RRZX1-ezCS=#u0N;roKE=Y6~~5bI}cS4(xS(}5#Sx&>(D7ia{X}`QB|xP;tGV->G`^wtdMtQmi;Lp~#!xlF+x}PCZl}tQdx03rn>Q7Q4 zbHt#+K$~z(GfgnpcFo{*^4tL|2$qe?BtUNfTPT*AB>ZGP`3mp<n#jn&{8z3_w%URy)Y^|t8_9=~2NETvg{eg_htaJ)lSzbVz@dq?b{ze~F9`t|C4 z1PYOwm@L!%n3{w%s!X)9920|e9dy}n4*cmCEFXBv4M;~-#I}09sbLhBA~vi8qa2}q zNbVy&K^+rHarkds_6R z`Y&hao6Ao_9c}WV*vVUj=QDrUT5I5%2+tqEDu3RUNiO9mI6u}JgD1K(YKhxJto=oI zViQB!;a6jEI_yfly!kmi^;&~NmSOGC{w1pC5+s%twl1BLpw{ML+k#He^TKq1MeAjc z=|S~W#{)O#mCAP)Zx@Are!h86C@1^#jj)PrB#zKs_^Kdu?|%Z&5k|~iPm%%`8e`OwR!2B6ByU5 zz<<48bBPgOne#;?8ibwu{@QIDf*ERT;nOvRugOd}+^e0r&)Zu%Kh{BkAc9MbqW<-; zWttF}<3WohC*EOz^PG5AWAE;uGM{(f+yQOM!*@{IGHBLH@UY9Zc$w+S8du>q9*3Kt z)o>8CmvcE*68My6PFVD{Zsw&ZOSU5kJm&wCGL=UiAnGT;nCcYjr*^b#LiNyJ zuiLZsA5kOv#{%PFu!!jEX_c9CIm6#`brS`~GZt7h#gm4M7ySlVIL2YeFXco@))%acR6kTq;7aBC`;zTw6DLuwlI_`ah{6H1T@!KWbfb{ zbPX9UD~_WA?ma*i#}R9WzcX<5SyINWh=rk>plB1hwQrx}yAoV*(zbqzvSI|UAG9X| zsn>*`qL01H91k1z3GJ2h1{+8h`Dd~@WC6*qbsdjEMKZGy~nvmu#tB}8L^hAPE}{mg~fqP|TL z&(9|!AjUfLZ~f0o!@@-4jA-l+dNN_4eb-%|^7?8J@|VINzi6Vm#&_7acuK&d>Qi*! z5N=0piGX*PdEO9J+w7&&>J%A~`jG-@_Q&$XH@0Pt6c)Lw#y0UX=1Rb4W|HjwV((R6 zQTq`XrgGC$P5gB|cKH7QS5^7A5#B{g+_hc8=J~$GpZFH-l3A=h8Gu97_}-v`NC>&6 zEP38C{qNQsQXcwGtX=ef{CJ3CtJNaa_J;F)gha4)^a4vdfSVO=zRnJpbG{F@XP$&! z0NOtIzglLqtNln#Xi%W)c`%Dc4tV??Ov&OifrD z1E;xN&PU+=PBSUQt5KEa7Q?w7QQkLyh~!_plX#LnnCaR;cU{2)iD_HfbsbO40+qedZ~NZD9W9qC$bq zSSBXI$N%M2YQ~f&3xDLcuk>}|0@AkuxWCy?(qh=CG=XQ0?hCM#^Ctj8D?|)s?GQ8| z0b^-U8nC9kKQgE`rmZAQ+@(+>j*;Vj5%LTcZs&bFvRkO$V)TXnoScW1l1brL#X|8( zXd`sH-u`Ys#x$3^TeFE#yXPT)c~Qu)Aa;QJeikdP{L7kM8^JsPXjJSO=R89tr>{{p zn z5-(=ZmrqgqulFb9E_v^yq>xsvEu@HteSneS&V=u|)QN{zsO`>6TR$}_H(#hlm7EnN zEl?8g?vT@c(aW;=K$JG%=lXA~r?sB-%#g_mwwJ7+TzzlgG-J0oLNx@wI;^58YbQt? zFfS>&PaW`LF9ToL)MK_xpiGy4a$NupbBY+Y%c5hAhAh*3rK;7P13b=y?Q5dB8mEpZ zLG7y4prv^LPu?i-{^NDzuxCPfZ(gQaoXHMvgxb1Bt1&Wko+R^hXg)y4N*gfR)T>;n z{;J1xFZ1G08y1kwhFYn{3wG4~_3-&)l$2%#Ku`>U{SS@0k=k(PR277i->!;0hHFYx z4G1EuYG3Xm4Y}<@VA^QmzxKYWqdJokXx~1Yu5Xd5sSrK)=BC;@6E1gkigXm1!`1Tf zQ3&B%i>&gI!HsqvvPJXVH(HS24Re>3zup7Bz2lS;xE>@Ux9}i^1*2o5PiRV-Z)^Tf zmHPk>Wi)P`2R;#@3R9=jmKA9K zB*?&W9V60Z;NB2#zTTCvz}s33`k~|1YiY=|{cs^b1gSuVzkNLbm-}7Hj4RnqB>3Y> zKImGJjn%3332HQ=Y3Fa=(Hy z?fM^?LSX*L-9@tYVgK2v)j!VaV)Gw|hWMl*Q{`r6y`uX|PyLaJ`MI#NynYuWGDFR+ z?N?Uv>;I6`NUILWhlYU)J^Sl)$cIVx(E&i!bn`E0`g<66cnKH70Ktrxf?2L4I@!zS$4y(y66p97jV9 zP;N~s^-SQ&Z5PetC=GawVp2I4EI_JH3YjhY3 z)>Yb>y!UIE8gPhsQgK`_*_)@pdYD-4rvRmv(U3CcE$F}1w0_`By%3*T)FX!`)u|Ds zq%g{-Z`V1tYp5}RfbfP;-tdEZTlhDISDtX)YPz2P+$rzvT?uEoJvd5x(`lRLI0J6m zJuP-bJ=YWQ)Z0xpciAF_2{HH*8a3a)4bZ2NAy1jbm1#o11!ey3D+YQ zk+e`j!P{;|&;5SjmtsNU@I0s)3FW?&w72MXdg_NhF|tsWd{aR916r}Ti0$NDV#kKL z6uvsEv|A{gVkrJV?59cSM9Kt@JWnqA?snn_Edd*NbBVCXdBfV?fq&FI2A5x1k`5 zL)1xz>Ed5*(RxE{TTuGsLraHT zY4#tVDVu3)H3L;}$H5JIF-`T0Q_t7cIqVPHs2Og-8zMtFr@IvDBR%SYhf?kEvze#W z?+g;WGG9E4cuZ+AmGN3>WWVW@;)l=hFlgl$*q*xIjb#vaxiPri`@zzqNnRqXqJh8R z7zhoYu{>20wU;|UdlA^*eZ8B6_CwsVHvnUeOqa;&&dJYHWVqpeoV;2zMd$Wxbx?B^ zoF^BUhRPIPJX_y-jB3mge{J9p!3=K{vS?LZ?-GB85d+Vj0m{={xu|a>Sd2FMb(Tzk zWIm4=OR%^ARKD6i%a*S(*Z;(TrhT53m3kc5pRxJ)U}t6*vB;_r{fuy5nuOCe=%0L+#uk{$0cV($G7EKC9Xr&! z{F&5kp8+^W8UFxI3{_`0s3$HWisP>T8gYuYn{?%{svWL03l1jSeh<)U33`CmZIW92 zC4hU72NOkn8N2;esE*jLZcD`wOda_K^B!;t_?%{ zWYSPqWq@aR!z%Saq(nt}@9y+zmPB>O{opUCvkvZ(K)Z`*15*T{0zBz}N;{M3=x1-- zx8CN@gw=Y&VgJC!fNG(8`~N5;_@&*3vd}t+!-S*W{c^@IkvV^!t3Ih~!3Vi5_aYxg zT{dEVBy_HdLeU-4S!)4gYty=phP6gt-%x!K$5@@YWNoyB48XPs=LZOk6=nminBN+# zAsBnO)sr)yfl_Y6WGw`Y0#$7)ep{JII5)Aa zi)lmdK1D3RggRBGv7tvpq!F~+c=A=OiX%b}ui*=B*Dvv~tqs*t)5l!i8%x;MqYj{$siEFTYl zG@(Q-aHucTp9QjKQGCP$>IL4|YTZPbJG2Ty_|ok)yD$jp2>3i{y$7XpI((vVI()aQ z9qOn}{PSx%|K18e(>VW36J<--KR-0 zQqB@#YU$rG1q!-8&Zr*{eF)T2lpHXL8iFctT3$z@%S)1Xv+!;iv<}nH5evR2w~(j~ z(u-*zGB5Mj61eUmN^}?yjUQS9yH4I-x+-E%{?Dcvm%w)Dbiv)`p>Q4M_WMy}hm+q;-xPO_nEP#S!sAp$z%H6XMiu#R+K!Zq{AAY-|N0X48itT_nTfvp zJD>SHTr(ZLA6BurqX{-A`{}z1$o}d<=<<%7)|UkO!uyk({k90GHyPXL_}nTQsT+zywvE#Sm$i@^ z{(9R?%S^bJ zEb613gn~xD$FEmQQ(~(SG$&7kP{JtW@>!Up&QG^p3w%{YI2-KSEQ|F(t)~*_Q`pLX zgaUkos;3H!%(mRK@;a&-He#68wE%0zzF&CAaXb?`M|HAiaI;go(bL?VZ?&$sKyu$ORc{w`i@ zemwAxFF)^b+zNM0mr4hYvjX+jkKqx@^nxbH#6ED zrtXZJmSbfUo6LBAlc!%~b?W-DM?fUadVPz+_{}F9M7gFIhM=sJl$35_riQ62AE=!- z*0*SS8L!Cc!6xeLuVi?ic#!0D`*^(aQ{wEMh>H2DW0RCZ>En%&Fb&Lo3NM;04Gb*n z+&+I;y{mLum)oKw#Bm5Qy; zU)L_DD&KDY;yXZc{j;0yQBQD>n6dVMNCC6n^8ir|5Qf>jHo4~z4 zlB@sXSuv&}m7s)RtNY zT8gl&iYR2+C9Mx=6up6EkU!%T7(xMhuPKe(1qx3H^i9pHYjv z%O@P3t+EvPMpSzM@kDN4b67yX z>JFgZ4VKsD0egtLa8xQjurmRRh~%-6=)7=lEXb`JYOxS3wsbJ1y)k!RQ`$zPNnv1I zr@H8#UkUumObF9O!}L_M*IQ z9^Wy{ezIZr9mtNBE?mwve^=@+67kUrxV6I;$kFgo>Q(bD>Ico;4q#IDMy@wq9oxN{ z&0IGBub`;>_WI|wdm0VeAd~8RFb}7e7<#rym*PK&Bw5@*)!7pIly1$$8$qt#(=|MX zVeZjZ(_5eAh2F8WYQ6o3!!XL4hlkMyCi%)@ORs*ArjyNKPh==U{wh!lBEpy6Yx%qO z&=7B~7^XimtE_h8j9x7xOKw0*gcJVy=7+XBe~1RlG1tScROVC(K6)Wj{rk7ajT?Zf zfA(m;ds@ZniKU*{Qr;al*74G5EC5W2+mdH}z>4(oD~T6DH+dqXeOI_*{pB4`_LK%k zY{AV9Ij+}p@9>ci11=Aa%!PQ8^GYvSem6QT zwlpkgiQ?J{HVgGftI6B9k*UWfil1+Jo;~{q!{wXzDRbsxs1n_YK=lBAP5;Ens-l4F(K#F-U3x5t;>;UN7mcp-rkDcdEEHa>Py27S z!!s|2-gWCrTS0(1m`8nXN&KSPEo)Z?OuwZGP!WC<&VLgB5&CdKNM#DYqt7ApiaW0# zAS;yELP9tyZt_kUFqv6FRgQKJXc?IGw56HMzW!rN%5UUa+axd4z-N)qAiVx6Phd{sykDa?}kL~sYO#&ZF+cLj$azfJLrs#Ok z#Gw$XBKWC~@qsmy8Jd)I_TjiFK1iA|zOot6M+7n|O14~xg59R_N>%S1GhSsbMDXK! z`EhsXB9ACaS$nLKmlf9>roUv(YB+b<5qli|vzr*+ruVCI=iE@e@IorpW;BcvK||@l z7>~WP${ripyYp*y)1N030Qvb`cb29zjIp5{sYN{g72sO$g@nr8Ku!(P%S&>1Ud@{7 z%~An4ID~@VJN2q&i&g4Y24Sp<%`tImt&SINqUKcss-He>cLw=!F#VQP?uWVP3zF(d z!`obbwL7MTV6}yu0Us;xuCuE;&en@hw~37x_{@kpe~q&+@VaJ9;bfsS#ApO`9QWx* z2~qCl$%j%%qYEx%jqb8Pb7=8J8$KK4F#DR=ZY*Au4b9W1>R0b`)W?&}C1v{SI_#+gTxDc9?Ljzr!de`-&d&L?*acm@N~ZQWWi-`+y^O%e3>jbP3Ak zNKNR=;>pYWRn{)()JH?6Kmj5%oB!FH;Q?#g1Iwh!n1X)aa5yfBd-sm@Kl5)@yRR_~ zhWYvL4PIm+6y$!v>)`RsiO+OlQ+W2r!*W0*o7+=i1QStQ^q@WO2b72S^`E@v39_tW zy%v~_+8RiJ*}K*BmvQGcRo8G|5>$vgAwS-$>>7q~e}-y$I=yaQSw)E9+ExHN4Ts$= z21h?*qi9WDZ}Toc=c@q$lh?V%fCe5{+-LNQ}<wYvHYg4*0S>;gGb+4Nj9bJ*RUiX$S~(l%_|JCA;&S8F)je+GV; z?Adko@iNiVEIm7RD0maOkuN&&>FI&8KtSUi@Qg9jLx)!9HdBeNd$CN1e-R&e5qW@d z)8I2pXq>9i{H&8IrbF%y;;nu0Tk8gAX!K3gEVnBDc?{DxMA)v*dfe1NH@Fi$ zsp*Km`cS$=CXgvj7c@UlH*k}vHIjpDW!jd}b$06BzcPWZ8EH)$xK#q~JTeS1Z+|XAIQd5p{|lqO%TQKmBrctAA3@Pf}y-o8QIIJlI{kAORt(J5D?jR6ss# z3p12mP}xkIS{xe_LP^nPgLY0l?L8X~$&rLS%G&(nTj(z0N$2-lJEW_t3UwpB;}pwP pa9uh-2^D!-BmGagR0p{@5lSO7?h)30`d|Cc)ODZKsJ?pte*mYVe4GFP literal 0 HcmV?d00001 diff --git a/doc/en/man-kdiff3.1.docbook b/doc/en/man-kdiff3.1.docbook new file mode 100644 index 0000000..20a349d --- /dev/null +++ b/doc/en/man-kdiff3.1.docbook @@ -0,0 +1,206 @@ + + +]> + + + +KDiff3 User's Manual +BurkhardLueck +KDiff3 man page. +&Burkhard.Lueck.mail; + +2019-02-22 +kdiff3 1.9 + + + +kdiff3 +1 + + + +kdiff3 +Tool for Comparison and Merge of Files and Folders + + + + +kdiff3 + + + + + + file + file + file + + + alias1 + alias2 + alias3 + alias + string + + file + + + + + + + +Description +Compares two or three input files or folders. + + + + +Options + + + +Ignored. (User defined.) + + + + + +Ignored. (User defined.) + + + + + +Ignored. (User defined.) + + + + + +Ignored. (User defined.) + + + + + +Merge the input. + + + + + file +Explicit base file. For compatibility with certain tools. + + + + + file +Output file. Implies -m. ⪚: -o newfile.txt + + + + + file +Output file, again. (For compatibility with certain tools.) + + + + + +No GUI if all conflicts are auto-solvable. +(Needs file) + + + + + +Ignore --auto and always show GUI. + + + + + alias1 +Visible name replacement for input file 1 (base). + + + + + alias2 +Visible name replacement for input file 2. + + + + + alias3 +Visible name replacement for input file 3. + + + + + alias +Alternative visible name replacement. Supply this once for every input. + + + + + string +Override a config setting. Use once for every setting. +⪚: AutoAdvance=1. + + + + + +Show list of config settings and current values. + + + + + file +Use a different config file. + + + + + +file1 to open (base, if not specified via --) + + + + + +file2 to open + + + + + +file3 to open + + + + + + + + +See Also + +More detailed user documentation is available from help:/kdiff3 +(either enter this &URL; into &konqueror;, or run +khelpcenter +help:/kdiff3). +kf5options(7) +qt5options(7) + + + + +Authors +This manual page was written by &Burkhard.Lueck; &Burkhard.Lueck.mail;. + + + diff --git a/doc/en/merge_current.png b/doc/en/merge_current.png new file mode 100644 index 0000000000000000000000000000000000000000..721552e13a3aa70f0797f78b2116f0b5908fdc78 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^5!2~2(FGb}5Db50q$YLN328^###g+hB*`6+r zAr`0iPCm$cz<`4}|G(w#_TQPRQy3O%arWCxu+%gwFco!oWcVP?;^D!4txn*?9{!_d z_6>g;SIlp2liV)ZtL+YX*?d3{%HH(hfxTkq)X=9%(5pV#H|+N}+@ b_JysHe*IoQ)a;9149EeVu6{1-oD!M<7@a(m literal 0 HcmV?d00001 diff --git a/doc/en/new.png b/doc/en/new.png new file mode 100644 index 0000000000000000000000000000000000000000..09660a7ec7a466360c0f9c42605d367a633269a3 GIT binary patch literal 255 zcmVn_yInDvh{TNRlxuN002ovPDHLk FV1k6rW$yq0 literal 0 HcmV?d00001 diff --git a/doc/en/open_dialog.png b/doc/en/open_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..f764b2b372aaa3ec3bcfd417000fe39d0a2baf94 GIT binary patch literal 14153 zcmb8WbyOSe*Dj1hZ~_!9n&8E~xQ5{FPI0&5#flV5km3|AZl$A&thiI00w>S! z`QCNjbH4M(IkT=cnc2Bz&(7R?u6?aZtcIE*9yTR55)u-g5=2f52?-U5goKQNg^I9z z@6$F#7?3nnbmag3XM6bfxhr7Rb>$i7zCwF(7cMs#Ye=o1D{`?2$7k?1jIRgK4 zyFeVC{{Mh5o}B$3>?fz^cc<-${mpUT)yc@0cQ#3!O`yCJ_6gjd)qtv+dI44yC+-QyZ_?ucjd;`HUjIL zTk9K}zt%SpC|LWmvifUfb?x+L&GPc@((>Y;<-(cyjoG=y*|~+8+4h-li^VP$MXPh4>|Juc>!;65r&}f^rG3h&;`F2AVBexN)FV4fBkX%4G~~nkg2JOJLyg))RFnh0eDT-t@DCC5Zgg?? zlyfa9b5Vdf>pD8SAdu^5XizrM#F$zLAB!u7$ncKYPb4 zbBMO7t+weK9W&d1p=n}+fR>4kv~iZEu{8pzMoQv_Y3hcS|H8=7Ud_NlP2XHu*8~9- zJ=1@os%Ms<2UXHBhW-Z<+Q~}VhDzE-(b`Z2t@jWuLq$yk1r7awp{Sv+sIIT5rW>pV zfv9MUD+j(+R&rKSuz&{NJ>)e+Wpy=VWL`^~K%`}Cq`XX|yey^O*hv}N zNU7RMItfdt$cameib@EG$nXkF3JHtx2);&ui&w~eFx?6Xi62c#PFlxr`DiIDnrfeR z@O<)J{%zQ4w+8lK?5UBol96S?&!~BpJgxR7mGvNwe%7}dpH0ZmG}KEuG`}@$154qS zw6^gcDh5r9lG}MUd|nL=+1kyo-@+d{GVFZ22?#QTQi^vx%xRpE=z>q?qMmHfk^WjH zj1FTXLCm(gQKZzEd43>=s##&5ne*>F>UI7)_;da>W?>-x=i)w@@D>-6@u=O`zQ3C$ zvjZGLO($dqTT8Ymcbb97zOCIC3j3s@|H=#dE)r#x44>G1AZTM|8`3oJsa!-6Zf;Ymq{BL87^ZvqsRpanb;Kgf}D z3bW7LJc#ISin(Y}Q(hH5nbzvekW1DU*XC0hwTiO5)YYQMKRsla%1E*AS13$@L~$sA z#(|ypW;06j$ag~t$-HK}mD>j`Up)k3L0+t}XFVqdO>Y*toI7bE0Xk8U4O@rp+n_9K zrtW=E#~YyZmjNn3)s`>uaTe1&iKgr3L7X;EtZ;w(7>9)^jjS#NgxSuU_)77a&q4G& z)#j*P_@g(F%U|8fV9;ap(4B!MJtnA6K8GSz(u`m;UX5Y=Oz*p}^Q$wG3K@pS&Q(#h zSG$mwz-lGYqODnL2R5aWjnKG_6T0_4o5GzhcK3x^@4?PlQ%YleKTZ7l$97L8IskcyefrVuDwKi}goO%Wc&dZ@mBI`;aGzZ5RK0zs1bc^iqb?faqh z<(x#wI9A}s83_~yT3>^PyBg-n>0&Yhq<{$X0PRsOj*9kD+h7WR`@}<+P%YCq6^AU{+vJgP zdjW+X)V7@UBmGlNq3EMI@%U=Pn&hLxASROf7ji=z*w@&&WRMKvm&4;3yLfVSq)PF z7PaCcLptcv7D51A{j2Aq%2-=YPc4Y^La?0VO1VFW&5@5ZkWWR=8-& zYGs*_xImmEv7rU;<&%PM??NrJVM9OZoJ{7|CXPSYz6jpxGqeiZW#SIHA~o`{#;=Z= zgLsd7;U8e+&S#}HHf~FI>w-HVZ1B3Z8wZ&}@9B;=pyH4A->pv-Zd#2i6;Qy+pW22d zBmK2O6{vrIhRjuAD03Fn^i;lV_ugoVWrRy<;{fSrO-HxNExvDsj!z2i{jCl+Ht){3 z{HAJRnBgWgJV{W?p%Cxs6s`Xe^JSf`FOE=(tkss%4>Bj%kDnUc4xpA!+2^{%SaCk5 z%29KLoXpHOw{Q;N^+U6$%LNHHNt2}r=|ZNHy# zuhUiEZ;RMXj!!%&t_~_{OikOtKd^Pb0R3=~DkONP_l4Xp3nu)QBW$DckU3vm8NQ|a z5+|5C`sgS!N=UKLw(h8a(f0%PW`N+Rqf4f{fh^yI9iyO=+Qh=>yVHi9$Q`rzJ3zLc z@c|50<9#s5*gr8yO%8LlqUPO56ZkQv=oz5Lbk=k!jx!o;OC9ZKJQSg(mSv0)FZxI( zy}DGN*ow@k@b%7hW@&2jXV5@seZbDQ3>>$P)13uN)9*rtQYd8NNwz$cA6MTchSiZh z3gw?>26{{k!t;|4VRcE~*%=Aq{a*YKEd#kLqZ2{R^;8~I#>&PoY18i;8|BH+)#RJ= zCNOZTY~#xCGQpS}0o449Q{NK-d~PuB*7gKSookEMTILbm5?*RX0RNP@zTM~X`mmsd zRQ>2KENv=?m#76@b(?%rP0(~lED;HZq6>4B#$!JImqY1l>Q^XXZRC7a%tlrb@sG?b zdVDTTmzB}Q6>K3t*?`p}J*+#1!}Q1uf^E(IpzU({racV%S4nqO$KHoQI z5&@c5ts)jS5RR+NVcF0~n>qtWTT^Uy+$>Y=V?`Nre~pG1_!!*q)@CZAPFj+GuO=^( z`ws@G*jO71C|`@*D8_Scx?~7mF%ydjEIxnxBV6q4o+(upEvSVI9GAy55m3zV{2zR?T0X5ZF@97)s7zG$rf z^D!`TU?h&rX@-+M<(Hl@Rb0W*mh|6SC8YNXJYn9YSh4ZZhWt`f#Xn5Cw)0w%+!Rsp z`57k<8BYtED`~MA@vrxUfit&99L834UXQu?-YBH)ro8n9IQd?AAto&J($)s0|$h2mc!;qeaFAW=p zN^}LHY4D-rmwqYqQy=208N&eIjh?vUa#NZI=YjprFXs=8Cl=-lo4#c3Oa57@a}BG) zpb#p@$#KL;ASs&^BS3Kv>e~tEFzEOky^~^apsmB;^L`jz#T_{jt(vx2&_rtSPJ^5$ z5`R!{UsUzay(NKcIA>49tibaU^JjA4$H}qgm>?TaSurqH@$%pel{il2WspqxfzKPd zsK^kkGY@uNpv&R_y<)nPtnG$!l96S!0DfbVP+7@@92orB^A)9jV*xTuE~|>tWo`PK zIB^sfCF>-{<0PdLNy=Vcv@QX`^FXEG7a~A8;h!#L$*wla9SAISyz0lZh$`*CPJTN! zqg=06<=8j|Q%p=XqqGyCG+yp!LlbJO1ux|HWvz@Enzf(GP*_UiWoGG~$ACk7;$2bQ z`Mf9LD%i=S^;m@hIDJ*;stt1G2JO+jC8FGqC5ak%i3cGO<7bCYD#^d(E3%Cm7&iQ* z`7WAK8tg##-a}@S&&VG}d6d-F+oJ$-N6Y>>!VZIt|7zQX1z-G*{7FZbq-JiMJMI|g z8YPFKdSU;|nNsvx%!>zPqk3smHW6}YovKBliK#Y;tBgrN`$Gpqjr-waebkOcCNLky zLp*@f^9_S3 z3?x28h1?PAQ^%G_UD*R3%D1Pvzc^E1?AERg^n{G2M_WqCNinUc_& zKAtsX8RS1MN{P8=`69ib(hF&tWIm~A&u#knZ75Jz($moE#7Y6sSZezUxpo(Fw%v#V z7)?-mXE~>h?tc|#Kev*dmtBBA7lg19U;$g%y%)0uK)oIP7G7%PP`v6bIr?nb+Q#*Un zF_SO&g$7XGR$o|Q=dsGf!A8mhnJZQI<_K79eZqfraGF`twj>3p2G170jIGROfCu{X zc;e<=*&07&U#|TkzU73-vDE=y@BM}hj8DIFf#BBjtVxi@k7MKtUhA&LaRm!H*`IVj zxT3^%8ylW@SrGf~e0$gYx~hagTK$7>4yZ*`G2E@s6BLu4*t*@FK>iS+L!AeK7PLOc z{7i#Sl3EfsWy43?7_RJZ#JU|9YFI~!iD8%c~E+-15 zWc`p3d)C+24b#3uS&2+Ao+{cLQ8j249OL-f9C)_#U3F0| z%R9SE^&#L+`4c`LZcsXmZanR7!k$z-&d|9)uN1M$V~yFzqAn^$%is2d;)h7z?C0FS z^(TzFED-SvQ^NuJQ`sauq7j`_iI{tze7Ah7?=1uyN)bP-{uQ=*iHODbQtS;#8D6ED zgQbl5-1hc2*wAQPcF8l<Uqyq%H z!*=f8xo(D{0%9E zs~pn{XNJ>NVtbqq1hm~iSCC=@VPLsXNB=uwL2HaSGy2+UcaU%Czs4dsAp?vMf<*+u z0!0=h10S?FsAF}gLK6P9=LnY(C+EFeJ_@Q3zxi8#%=_1f9&UP$O22=H$t@|`Bvj&g zRCLocadyo}kD%{KKT35ZM1AcaaNQ(6>vZdJwq2<*KL`)Dd{WmUz44!i?-8M23 zlO>s0cXY%IFbIAOLNz2lC7*^yc6g!GrsX5T*35#$ASA@)<~A4Y0G3fZLWq0g=p+om zTl0~ji=A$#zrH@C)FJGv?QTN`cXqC<^I{BW~viv#+q4s5^aR+Y;kgcLIZnPXy`Z%*gMRIxzZO4KZ9 zM5pgqU=T%+L=deC3C&_3KRs+{CGbo`>02zpga?ST49Qn}`O@W7sXA%4YERzHm7$<=#-L z4M^*$TCVqxyWsKweRXohC*{go#3Jp0ZM(Tv1T}ZH_HK{)7S5N;ZT=-#tMxlQD@gir zJaC!NO#!M)_1ir=C#KDDLIYj|PDc)8jw?>1LDu zwQ@4;Ox|eeKHD zgYa}@>o4&$xP$i-<3#ZA;TXaCc3|$3;^ESYxGatL2!&V#1#Jkf;-%;Zhca19(TP7o z5!8yl9-&nMIj-^1$hfgb3~P#?ws-n##vNa|UWj_;BA8j44ntT4iMf@aJ*cFu*Qwm> zu1pzq#MY4h31Xg3f|;GT8)43uWXecv+AB|8 zldU~BXui_iB9&a{r2ed^RopVtxQT&4j%51V~YJS>DBHKeHroE5r3DVGt9Y7}} zYM5Ftm)t7BktuAUxh-VN&oAGP=gY4HMtt}A+BLo39<$7^J;0C+PVbPy^Ej$}w?wB% z2{(ne9$OJH)uIgp_)q;3r3XZL`<<)PN#Do@ammQa@B%%4FJ#7F<7 z`P}r3!$v6-PNK+4K}4ZoHkTPh9sK)#oPTmk{DLN+ovf4p8q;1`dN z!m>_)uz|z(a$ss^dZ4tw+)e$ex?ejJ2$Fl52I)Z+OZ3bCjmtj+xJk~BAE1!wQw?Dt zXup%L%U3|TX-(6or_c7$)NJ**I)Z%Xqi=Fqq{!4?kOZBAmGlPD8={9u|?I%2A?JKO`N%0w4Y;ylX-B5wDV`Am9HR?EsKhg zZ6Cxvjpr!HnU#N}f zeLj}j?CI(_%1!UmjFqE!^q-1J$t4qywA=Nbq*e4`vv1jzs*mAA2F};$t?0o+E1igr z$j;46CONQjQ&=)(!j@*8KK~lJW~`T;Mo@+_vxC>cn=`Zzi}F-CuS?(Er+iSiyU#g< zhk|4ZgQn}{L7X~{flhd4ANaHE4dysYQB=!c4Zm3#m+^X_?S6zDRsBO#JWsgSCOp1# zhU+z^m0m{DVCS&tTMZ1KOfYh}6YZo+>*L0nYKOgIs0X*g(msu} z=>OwO(LcVhm|hsQ9{KOYmYVm{iZ#!5+Q0oM&csjc{0h#;{{a+gX}s#$p292fLZD4O z9#2iq4#hZQ+2U|bnwi!f2IkuPN&Aix)Ulo>06%<$7>BUjdgI zo-XC&<+uDr5_^Co*=#OQ*_*6f#(w5F$Z6W*vI()DRFQ$*+zUkvyvDpaC5~-PmMaXZ z(!c>uZ>wTj_E*ATxT)I42zF7f5WX}?$0oUj(opN|{5Z7h2m(4W!Ecs3W)Rm4(HFhi zf^Y0v9<0dC8>>?~U+;2NmPB(-tt)b2+TU^GtL8`api9kZB*LVt0TNW)by=?p1#Lc>RPT9AS}0Pz zW*YO1h&ewIbktai*zU?>(N7z3j|WZuro8AcIb0QIPpNVA&V)Ot_d}~nW?M1n3Qj4# za$c6W02u`gu*bzd;T8Ix*YGL%G)T;g?hTQ`+cZRiT-af^jf@4f<#S2un2AYp3HMLZ zZ7?~x(hvwnT#4;` zNnKz5lE7RD=rRpcAdY;PI`h3XnK%~JrEJ7vN8W$wq_q)HOMCheUFCEJ#R@g%=`lY- zOGF$r$0173>XKgilJBo)r0CnEU0HoN=Yb!a0`YaqPa#*y>GbF2-F5ewip+0c!pi(N zWowh}<31bt%OBnJU!T{}D}kO!;sEeUP7x3z8G{$ zPc}th`Sab;ln3bZ`I2GNfW_|pYw3N_oN)MU?=a1UMx3^h9wo_>1caJJ z3PF>KOe}{_{-FTsa1998Z(rqMN|%sEp{4q0xuquR$nwUCoHE`vCJNNJAc}cOU@BIu z!4!-Bu@!-8v7rz~LP42yh_Eg(V;H7hpB9-d+rC2OPptzJx+%eZsdn3j$-*-F7s4A~ z)84My@0AmL?2W5&?W3-Zsj>AXR|i7=F2l#@2+E6qawlle_k=rQUKTx zRG&zm|4TyNd))vDdg-e+-X0iTDL-2^H)t6HSJczHRnX=|&2<^6ufdkagI|Qvy^4;O z7286ghb|Q*l2S3n0*v-Yh2ec<8%Gtb5o4^8fwJK)bYZvD^qf?7v<#qIvWNX1_q-~=l@)HJ%xogpdS-fw@G7Atg%`3U_`9x2TsYVT;5#|9M+{Yin zLT$wU)Jg60ngxAFMHCvv$}e6ONTipV@&aW^X2mt>rQsi@Kllf)gBYc43+CRfs9>gk zTE`2hEG{lS%v&*tF8oNZyPhh=MgLn1_`kE?AMw>2)1Kax3127%OJ*#P0 za}%mSVaCNM7_I`rg`Yf%5H5m%X90<5=4R}$x}O=BWO}9ojdhEyw(nVxM5nh&DF96h zVzjjB8x>*wrZb5duWvAXprE6KlZXOl!)Xn>r_(tVQ4W`hEl6Fm*23j}@}vpuz`9kC zer4~VpHhKT_&5vOnBzr+^Lt<0|D%qV`rmXsR<7DDg!{7TH6I!oX~nIcOr8Tv7_YT2JiGQ52Q@|Iszaz;p&ss^`!u2Q2UG~ZVa(O-ggjGg-=?iYsqr~!If zitSkqM2wY5UGMmtirnnF`x}X3FVLF+RLzBo-w@2p(3q;;YgTSsw{@QW==K|_yc@K@60k3b&ZKS4rwv~HtUo@ByJ-)26 zMpE~Lbo4*jkK?B-paPV;o7{aCgg8YJ^ksSaM&~mK`dP!mH=F-e{Q zkLso9D=W9+SNS}d{v;1HStj8p|`Vtll#SK<1 zX}+U;_Sl_qb6eWsl`-0sE3nG%PpW$Lyk%qBFC&Ep9&=Y#R+_Axdd=)t*6gMOT_;>7 zE;k>4=LF{O#z9kIz-((bYS#exJFyh<=V1ai%>yW1Wz`1b&8nsm?rzA1Y&W)sB~X!2hD7dlEucKO7%9xQ9d&NL~o z;FRjDkS23ZO)}_!4X1FmMr%MR!M=h_H1r_7C?e7rgVD3CrnaiMlnySb3lwy6 zfP$K_iu|rljw0HCi(WMiR=+%UrGQH%9Rj8m@q#+FPnc`r^B3+l3v)tz8l@Al_wxZN zrO|}w!BcznUL{x)+Vnj!A9SrYmGB~;%rL8v=xu2G8U_RDF*HDq)_|s zzZlVOwv<2oM(N7^`A={9eAL&DgQxeI+ks|v0cTdLLme;7il1`Gx{5z<5p>6YPamZB zvB=nJg=ZwvbO<23%yr$1a}}Eg_@9j2ZVTbK-iq{539nh-(oiYJ*^&7K;fucJ8*zQj zDsMn9o?31JjJMPs6Fb|CY$Ih31x1G zL08lt3D#$5RNru?k;1TKd{agLx-fEE=_Z9z!|H4o&q9s;w-?@b68=4-iYgT_lI&XR zu2AEoxVLH^P4tiO#<8AzD=Q|tOC;w7)!gEN^KXham23;|L zzUb^o-0fxYiM>L!05@GFJ!M7YV(51-PKi=*>;CQ213p7I^e7ehLAx>}3P0zCYBCTp z7#q78VDyl9pqYPb?Z(^I0M(ja2E&0%y4GIwuN#=MrSr4?qZ>h|H?b$8Pfvt4&ZWYp zm~#rWtdz<8j(#Lw%8LSOui$nNgN6GYLSw>-n4$&v+Y78KiD#e9%kU|O zWSOvt-~P-8zP?yF3@R&?N{1H1`1vVQ0A;25Lkca^#64e$xyV*85V==wC4)avAwk9L zzGLSJETnw}jimNZy&Ve?>MHBA1GPMN!GB&y^qfHy;SDMkIE+GC3OX(6^WdZY!vTWGwqab^p zCnrswCh|9~E&Qoz`s$_>^TspDtJXe#Kh1cf^cYAO*8MQOz;iJ*^A~v z^`Jr83N?*sm!jnevSZl!}2{1m4o9f8f4SB6pimSo&AL4pU7qKOS(W|W)UXKxo44@ zBC>ncRXDQ%zl!{oyY<#7YIMkl@3f|~ycB8J!wFBf_c_MB@rmZz2MI`rq~UK3PodYet`vK|u(H8%RWBz*Ra&Pn!|*k}NlCTAc_ds{?0VX*^v zX;x^c(?1Xk|1*qT5i1zrCeAmpE$ER7qKYJV-IZu#7Qx~F~5{Z?2)4p2LXpHhbj2Inj7Yvu#X z&FAhmCn7Dr&rA@f)WKvk49hJ-;g<5tHiz3n+yI;#TqlZ@xWL6gp*OyVzxZdAfjah-uK4>|5^T9J*>oNX?}6a*`#E@dwMVQHWf{f8d~Tu zmx_UU)|&OAi1b08uB2e|?TCX{u*exNy#R=1YawG);*2+1gcfem^}i)4x=b7k2CR!$ z94RK~bobU_E`_R4%xx1F`ES;?Z$z`3;^k&4G*CorpXLNDC2VbgEtJm%W&8p0yt#Nm zJC52YfWM9_SYNpT%f6(UO)px1FimQ?KLaBCGC2kRqt!FjA=6ty;+#Hw%4cL)(>`L^(79-WL?BtWiPPqOK z$e;|^-6aU;-@Jq_ZnVBGErEs-$y&%sfWx5xU*FD%kH7!&XY+3!Xw}Ym?Qb%rVif{) ztI))F-wq>4B=(hCYU9G17|vm8v>Dbp0P(Jppx#gK_1_Vt>4T{-*^-|G6Z;586L+>* z&5o>Kvch;W{~gn!{nRp&&9Xp&q)N`d$y#7zz!_2{+O-*V{4|jkOKz(1TI|o3IG1q9 z{@sCiiWc6tmZp(3sqm^HjP`o^W9+gMMFZrkS(jQa8cT;Lm*WUzVfSz_qxHar-_ZQC zn1U2wLxlQm(B}Z|-@Zgg9O!#ez;@Q4@_};ySCw69HIbj*&_h4GQD2?i*0y>}lR85jSj-&J{G9p1 zG;X=`ym4``-Rq1KJU>>o7wNCc|1eK(30`NcIEiQ-B#Zom!toB36kn3304UO9CZn}^ zYlSy@Z#F9xgffc%oxc#6)xd+7>Hx(WeD@1!=c|9}-p@z1LOsWUg=C^kXh)uz=dM;E zUo;TFjQ=D9;8D=`p;en~){vbb5Pq^nH5k??yvI<3z+#+X33v|rNEm8zNSqWhL0l^C z!^FJgGhslv6b+P-42)Dd9iolfrHsUm>>F010GriuHT9rmJ#+r=b_~NPAFll zp(Sk&U9TZSepncBL77{^>y{e-3N(5ExOfIl3XqJJR^|&9WKjb1y9eUEzi*B)j3Z-p%25-}KiA7c#jgVzTsabZ-;Y2v^q%hSIGjV>+C@FUtGi9%SiV zn##hP3|tMOG}$B&6@Eh9`%Y1MplgK_G{4(;UE6X8)U{Inhrl)a%tlC7aoruZpujn6 zdzj^!=vaG6DRfZMVDMC6;0N4)5^EV6Lpt!@#rk#XB-uY-Nr5X&0L6;kE|)`PktTLC z+CEUa+@>~{zIoQ_YyG1)Y|oPnGfO>oHG*J5FS`lBDb|vRtQ8dbl2>z{r6!*!(()}@ z%2f9A&z?DIKZ3!8XsmhvJ2m`yyQhE}K^HR=Mn!9i!;KXlgH{vleQachFk($k`X{h? z94i=}`TSsX<9m|z-TSoL{mv}p0r&dzTG!*#%Jx3h^EvbS@ydSHI~u=K?)?5|RQGf{ WjY6*_55!;Okd)-rEI2T}mkqg%F(Llw!eBED+qiSaB$nBE{V)F2RDgNTIkCcPkVx?(P&g z>GQnrcfRxA*=w)O?Bu>@XJ>YQGrLKIx~c*JE;TLy03c9O1Zw~Q=x_i4bsZZG$)S92 z^cDa>1E?#*{i zE@oy9Miw9o%YR!SBMTeLzb>+HFtY+#Sy>rbIsVfEkzHn15VFg}24Z7lV_^d^vavC< zaj>v)Fav>%Kp+bc$P5C}bNo-i;uPiL;v(nf<^N9+5D<`*lmtjgJw4q${VTV(Pfut6 zh{va=)TgJvPfs^U#(%#EYqO_Vmx;+2P^w*umM!-tz9=e(COg z%ihJocJISRYRcN*)z$U0<;ulH%YSv=VEp$&?%c)dtbNGz{rzOn`FQ%*iS^;p(QhMW z3qx=Ehes!SN)g@D;Xijfx_&x$-CniYuhsopt@E$?R%`U_@^#goSH;{#xwdPmjauQU z4tymiH!nNuvs}i`W*T@f%`71)H6*zvH8DFrK2bZaS1@dDG?XVR^j%}HGT6Vtz(1qL zZ@|kpOu}1F*)xUJy|3Gq>7Ap)bH_nm>v0ilc&4Q!m1TpznN5uuxt8fWV^dR@iH(Ml zrG}A}rja$w*am87sbOfTu5V7FU#_NSrmAadp=0?*Ct6wCNJYyS0y9v6>UyXv7O3ON ztLs>(+vBO1d#iw$RU+e*$W;~Ph{0eSa0Z`@t)--Oj5s!*$ZLGzFcU!rGd{QnF98;( zuO}NO1&e|d3ney#trZOp#S6#RFC_4(fvlw11jPD8L}B;@#ccTf`1qnAd`c)DHaafd zOI%?ATmdCqhUeHqudz|dvC(m`i2+zs#h7RS3>i!`EC5OvDhdiZU;yy{)_;4!XHLKY z`61=5p{n_BBcPz5prWFop(2}^Ml>{B91?6IT1pmWUQJ1uC>97xFGK;hRC;Ynpv5Mm z`if40;~6Fi79I`;1~xjH@Mo1z06?sS5?C7cVg6t)(3%EH9(MXxua10PXiEB}p>(C0 zf~P{SVonpBoyF;ZV;7P&sQCE=K5AsQ`d8T@m_1 zYJmRf&k;V=YV;@_hpiB<6hsQ>?BX{%K(1KZE&)vOX;MT2H6SUp3^9EhA%>qky=#UE zh*zbRAIt?R#@StjPi8?88H)&&+10bSQT&O|H?qBe^TAlhoJiPz%sM$>l zK5GH9k)qhuKDjyp0^X$a7bQ$GS_y(a;9iPQfUqEE?zt5z0EQp&%A1NRF+O!KtX@KJ zi^w2oFFl%20c^X;@{q7(A>?>aAVKoQF6b5$z@3O+nk+x~8^Mdz0deUwIORG09AGM* z!C!Cuws1=TDZ73_g{q|7F77y{+P*r+h&)I3*+zCj|{Too;l1 zsHUg}f8n6KH&i$XYpr3AS#<>-go&LdEYhjG;++NXSO!4T>vK+t~xzbn#IM6j+%va&~DQ# zpFca{pnp?C72GNl;WdVF}T;O}g2Pt${q!qAxnH4elsv0=`2C25Z%lY4H0l?f( zPng!dB1O!k=9n_fdrK+*{h-XIRFCfL>=?jwZrUSSRKu#^eIc}`bQ_YK<9$aoGZ368 zRrF>?#q9wLfZv``oC+yY9Ejh$kc6m7FhhIOOG27rMAcQ!&gsQ%I;e$XF;+2FA7uhq zYGq|Iii_&<+XwNf&;tPI0L%%BfJO{$nwvcg;A?&KzKoho!```7#Mkz{oR@JqHl!L} zQ$LDeE4-_GipIi=+lWhsYjnW3vls{7do9X z%+_C?c^n01Lg9?!ZDbsUQnHka$HE0bH#Q2;SBZ!qv~~^E&@(?VF)@9Cg!;QplYTYH z2eMna%FNdI@r*mU-vRG3^tZ~`y)j25<_;`gb(*NdMz+8H6}z%G_D@QH>N02-Pecpe zvzX}#1?pvpD(HQ9n^5pKQ&J++_#)GG<$DC;e4WSrBGP)~}>UMRWe(fo{5U$Y%( z!0TvV`0$}SuMPV8nN>4EWL`EZYIXUWC&6C-4^}%HdFge`)h;OCjaO4D*-r$5G#@WchsZj_8{6m|haF3xyvk!4bnR z@HeAglat@=9yoZ5Xu%lkH8cqN3lUFo@U{36bpU3^#)%-Z%%*`-GS7K0%^nNYp2H8rH{u6OF>8j3dJG@NRT_{+ST~q9 z8c1g^BLtV!aK5_P@-xnOU$`d9(=3M8=|1J5&G&x(&u7BwbE$;$hU{OFcsoLsSbs@5f_DVT~7^b%&_hZtwTf6MoBhF?Z=2NHFnN1BZsFo|_d4Pa_Z> zgl|GSowRs2nq(YbTBG74+-&S@)GZ4NTJnkcpyW095y{n;CqL*?d|aHS@#PMuy_3Pv zbT3j3pun{G=~-P|9fUF{FZ4@t(;?YMX?tcn2iVGN#hx_2?58-U4yAhibU*YPt+?su zH);VLNs!y`h^|W5I~F=H#R5tT0BY4(q0@97FdAjIM5gl64dWFP$GNiL19p&tytTII zavT%0a$C)t$>H3{hDTJC8v?nw6N;cWd@oF;Mn-=g@eaK%JJ#AVbJ^<|>OrNYAT1>W zT>@j~OE0W}k$bNp@Rt0qgLv%IYnww~`pD#Lp{sB6a)bXFRL0HtKpqyRCQSq&^Z z?^;J{rK&0~%QddPy)Ai_Fj}4RHlLW?efBscSi7Y~0o~)5!`6KQp}>@g3oV$qw;hab z70RUF14V~b<-Is^taSX^ddYmwg!an`z#Mr*lJGntEOP3dqa$%#Lh3#O!5T&@7cvYw zm5Xg!QJ;SP!(b-?J~}o5jhcY6u_eogg!#aBM|8+vLa{7J<*b$`OVr;XW_f_tFXg^@ zQ-r|AkAs4Lb;txxH)OgFI&ee+V#(}zP)%o9Q0G7;=yV?_76NNJf&_l)^Pr+UC_0J= zd%D687yD0Cf6ffPVXDakQZh3;_wv_5VFP~c3Q()u8&rm&)lsU0tN7-j%|gWN4lq}d zt4||t5`hLOum(k@!V#k{k`TIETrGLr+EVIgM ze+8mY^`fflm%mi4$bL0=DWhkQ^7t9mkjwrVWl?r-?^h28EKYl)*0OJ2Lmfuj^-+tT zEx9|aW=0|_rT`SP+~alzItO>v3R^PyC5F+Q=7rrri12$c;3r+x05`3`<4Gqm=LjB@ zj*+#a;vkXBwY9Fdc6_Nmd@*oH9A&`~aIdonp^|-#?yn!D1misaoKKjGWZJMVx7?34 zdmXO~wX%cQ2U8Z;GVMhvq_-=~m0|CHLVA;XB6_1bW<)s5m{BwJ!XC1|sM?R9H_rLs zI?LbWOjc>U$9sF&((f~p&RdD+jytwWk|5fiB<=4`{u>4*JhNMD+Wk&}5%N_05I?un zr1WZxD5$`^G|ZO#aqfDcc=Dq&-(Falr`&B3&}4f80t23ptA~Y^j446Sy2FUtAFlpv zOGA&7;BD-?J*j|AY#jEQpWDA5P=>+KlCZEHg! zyAofi1l6E*ND(V0bLB7%8ZEbM#7@WIztBusN;9$V~BIsI2^=67Sd#p`Nu z6VPYR+NKNsnV7B=!KUWSZs(h`z26cK&d#Bumwa%OB@mzXXC;j|j#kU`x4pKtzu7%K z-L+LL@GaV=2+@$Pe|`Hl5{~8bWHC#~ONIHFH#!HoR=-jvXkLo6YO87S^VgfI*R8e6 z`g%TY=ntKbF07A6DNHxD;sQR!*uV^ZJ{tSX8b96^>af{8ZkrkpxkcI?a!&IPf>AEM zWyRPz(iOP!_hVDL4!6 z|F+1anPrbM0(JQy1I4~Tkvzcv7$~$0f-#^d=k;t5d2i?7)Lmx#wkmb45C2T-4C17LJsuYd;aUjuC*%EX$VKkjA`by+Im2+G^^b5v}BrDm}JQ`YRr1oq*@XVErfBD-^(kP5zQp9LZ-M{#e>*Z6%D%orRNWX2e0 zt2+V~e!maY&7Lu{wFfy@sVrXOoQBJ17kLi3G#`IwRTEx&YdTrpt)i7L8V&5`nRvfF z*{zAeZR_ng5uWjWs)t{#f)V^2`t9tTnnX}{2cvTSrvr%=XH`{PQ#OCA(Xv_-Q(?4C z3u?6BHxGild1XyY!Vgq0d2KRm@Y)RvyfGpDRyu_oem7KWW0O>K#XhiBHsdiqfO{m< zOk?!3^3CF}f0)^-Q7xK<6c&>lP1Mfax4v|{^ayuo=I9gi*D0%7I4~uo^-<+p7_y`` zG^q78%c?rjH7FD1**o{(Wg2IDVZZ-7gAH$y6sr&|Rxym5zDU^>d~ z$#|*TJG{vv+TBYulsYyz0Bej@@iXxvuNJ=Z_4UV(3&osUZ3L92(=7FQ)$4c~>eRBA z+e~{1Y9bA*AXltDww#ln3+*pF)V{~G#r9CJIht*wNPUa5O-`38rBoqjc53er8gsL% zcJOH@(R12;33n!0P4V+OyX%fr^x8Y_>PvbabJW!774I??^thH?} ze=e%c6M5$P(dG9|87BazYFqbGA+e4Ox!FQIZmaDhU;PI$blhj`lJ;J;3PY&1-zV=GWMMDSRnjGad4bo)muPdAojy|Mm4G z_cOkhP75r0*{X%jXH0jKoh9ScjZMG(hMsn>kI1c@QP2jYW3rhks?+_Z>w z+^z{xEX6BS=rBjQI~r~rpSj^;Cua}W%k4jCV}q-%SyCaNEI(auf_V@V(cX0W4aJ>tO^PIq zEmb}liHPSIAGw^4hJR)n7`HTTddWo+e9rI2ws@Z9Y z^d*$E9voeX(7Ol*D-+ zO;+b64lqK;#r{bf5JKJsz^%Xlia6C^FbPY@vx3t7)252OM*Q2Ai}`DI!&Y+A3$0QG z>ZrxvYEGJepp=sKIJ>u-DqRaAejPT?*L?Ri0b!P>=b9BohyVMQdg(zyteIp}Mmrq! z$tZy&9cY?-xiFz`@M}nZq(TZjBdI{`_O}!#8_X!cdB= z3I$)TkMZ`u=j%R;x{f{xbWZ@}3sG%iM=NS`3w6Z=f*)SJB)hzhV9G=aIDL@2xHS41 z&Xg+vU%c4c;DtUo5dA7GY=7EQ#-)2-pgs;PeCr!tzC^{l@y6OQxZqYSxuAr^quHt9 z-g5}tnuAb(UP-dKZi2ei5nQ%5rd9qly0xOwgf*a!vMC{I1Q zEgh?*=JvVBpD<Po*IstzhMbigv*h?vVcRj5|hh;yc6~XUF&oS%8DAH4I!1#0d!?5lIJ%%N0e6>D$*u zpbl-a(ZWaDo_hkYvn=`sm=Fm$8ghU3)!8854dq(dp&JFV$yVQ~$t1wj`L*USGajth z6Z@sPNBe(35dY7Yo=E~R*NN&jDDYK}9WoERB}2J~f1^X?&~IR{;g@F zDy=M_(#jBPr#Z(9QOc6RkH~>!J zYFH`)axcxX7l2PC(ttN8Y4#t*V6(WSGuN$7q(?h}J5MpNv_eMO6AK)OJ#;l6?V%p1 zOx~YKni2u|u#;Ec>naC3owH?xj@*HX$OPl4QZAlL_>MU}?Wj_^yxaFD4ZWkO4v+=;n45A!)Yn=9tt#+V=Q1|4qI6<9lMt_s^ZoAIciq0_;y)sQXi(s zipxSa134uZOGx6v4T+GEH-o!=R-Xf2vx1JVtT^v^zHAe9yhiuG2IxkCwzK;Os3CV$ zrxs;G{?CVoKzt#8`$lO^74gxLn6jF~AgsuMj*iO7hkKXyDNOI%0^q=%7gIC+8bGe@ z8?a)W3{J0WX8Hf(0L$J3BNPcBipl?w<3A*6&-dJUW0(KXYUaOH_iI|V%#GDX{=p0e zDF*UM6w(>mr#^6H9AfinQ9X zwCl?GH2CTI8>iD^oU-`^WhYdoQl_m8r^$hxHr#zvr_-xnz_!L%#;MU`{y1-$2Tmj{2xJ z23>?iNj})EtQ`aaD2u3uU)Qlq(C={f@Q48le{!}XT!dyF)@Jk$kI{}MIE(j=o5zy2 zy|u}}RF<7KW06kj9;=omCc~Lkqn+)4>V8#@T;SA@ggJGTs-(duWf|~*Ad10Riu%VM z1-T*_Jq5XJSDkbAvV1HJY6*6!$yALjyFwG}?O1!I>qLz|{C%F^NejJI=^2L9r|qXa zmLyZYNXu2W+$b%07?nr&l;pwXoeD>9I3hE8Im>3y*e~yX*$6}fZo3;&JS9KUvuo*9 z8#W2Nyt0ThRmy|Ae}i8Y=E1d%{}xuBP>euKPjL_kH7r>dDi}GN_S- z`ou4K85*71jV-&LYI8sQ23(AyJbO7IO3g>x-wqq;aaoESOL!83lh!@(YT2zmy1R9) zZhWeyKx;4hyJD#THK?IubnFiAaFvp)*AVwMzyaD__NdL1UYejp#YHk@dG>nnPri`Y z9|l6G6w@ID)bBa2WT=3?^_X90V-k`lMOF7X;C4L& z-PG0k5$VbDf;D|+s?PYXX{_4~oclq-fRmq`K4@(c94L4Jkv0idhPp$&z@_QfT~CjH!7y z?RihCto}PmWF)-fT-t0X8R1r#o{TFHS;s!9*!OTX)Z#D@nKTjdeRCkAz)6l__ew0*qxb(Dxst|?r*KA7R-T4huh-lm7ch^9>(9z$$Ul+*KVN zq6m2#RI%c-fLmd}dhz?0%~ww6yoTEH=R8gvNcY&dLDddeDe2Xr1rFP5Yik##H0sG; zm@_n<3{6;Lc>8VT7o$?CQ#I&SXPA?c?-q{5X20m>9yD}d5|BRZT0zN2nEg4<9?0v@ z*3>9MkOp|@CE9&=ym@kEn0%t@TS?8Ap#c=dH7RwOC)vOHt}OArvYzR7HM(^8S2o@% zwDQ!ucGIhn;kuvCZ&XDCg5~1STbDseQ@}Z=GU}w)QqTHh_oB`2=gw#VXB8rPesJ8N zt#VOx+%2Qj_oFAb-AvClmQO2_>FF~a*w?H5GDN{>+QSM$)l}|y(WP0>lszQz@G80F z3r4C&eX9H=rjZm|5``Y4V2xPG#eqE+kJN+$P{>>41dJrCYx-~OW=ps7FlTzKTc zK|DL_GJk04E4g#tGfVoYIJDMFtz`9}<5UgeLEa*LOiPSN{em@S1mgCOz?U-}^V4Le z>q3Mw@ad>hs}n_K-;{6VLUNFICs+1TzF z`eD2W_q%M%tTS6@YH|_Qa_^56}(C$kHA2+Hp$3 z+*WdCE9u>){z6{G$ea!h z61(L~BkBJ5zVHD}6r5a6hnMP{5!sy)!pSKtQ(1FqaDv=q$w^z?o&u5~{IQu=2Z=mR z6#;jCV``1%l)3(w2YPZM>i*23_ancbgHO+Rf5%i;dp=4Y#-xF;f?V3IQsTy9;kgn+ ziWk$BCOg{C$GYsF?_z|Sat|@RP57%>ip_I}(>eErscmef1;l2!$eElJCO|b`q*!71Ct$+Z;(P zxvQ_a4)=8TBh6YuEitq%wpDaT@0Q8V*L3{>zfUW6OyAKQCllr2nn?jP~q zS4hsnZ->x8pfR1$m60!)BNm8`*_B)f{$NEMQWcYS#3ZnW4@Wm!+vhdY`@mJk6i8Jl zZwpS8T4d87AcxNBBW{WlC?Z$9!@ClTrt|XezeuiI=Y*F*3^QVbRBv1?UYJ4Hc(cKyLPrTgw@L z#)+jA*n6Hvb7YF2{~~iuj3UL@WCN@IJ8L=;_{#@o3 z+G1>f$z9Z^Vr!fvceB8D^TdR<_{y+aJUbY&A_@8ML90zf3c%p_ia3PhXTR5O?Fl|| zq%4|LxmoyLYUF7vkv8=hi?d$P9fj(JVvluGIrbK-PfOuabT6~h`PzjF+qDt7Xrb@K zE81t^roAz1;v$WmfJDi|22Mk16?~M5;oo}TqM>fK zl+fJP-|c&tc*=UtTy_@TV7*$>R!FOH!;I;?E5&D^C(V8Mh$-0RN6Xn2aIb6MPAr@V zxp`iN`=m(2czef?V8WPc!vNAO<@16H4xB9$dk9ZxLa4*}Nn7i7ea>$8IpK3OAqWU# zxOv~Vt73{afxX4?x6F}SK41G&dL6o#=J2S)Wn!aTOtN-FSw6lZ#)uq|Ax~say$%J6 zXYLeb>>pUckd{Pt%ijbV?6M|i~~Jk z-_JH(*|@$`hn-0bG>136X^>%WYO-e{EdQolY-AK2UA-WlB2;4|+W-&Teg0 zx%PqQ_s=`zz2?oVDqxbr&GFbTVDh~Y4f%T8S4f5VjS<>WRhJJ*jJuGB*Mo8d6S0==EhPapoiLIW;meV9H zh}{!r2Hxqtnyg2xI<~5S4nHAgIW@w|ETzbsA9|y$!J@lzD|{p&CPe50SEn>$b9&{8 zS%C-+YK_fzPmtNF21k!5t3R7(8pEBRuEzsueUKoWkH($Ij%F-7Bp&`*E@rZc=Um*} zj$zP!v2Hur&a6v2{_gvV3dxL*-dX=`N)7?-C*z$1 zP=T`wz3?vLH_MGBQL~u}6E`|yqWv`|1(|exLbPJ)gYKBVJFBx(4)DG(!bW-P9sg%g zD}9^bwia^7=i&UcC90I}PKs|a5JR;W)k(r9YYATMWMQZ>riJ7B zY1^=7^_^kyu1AD6K?xr)d+Af#8AV1#`LVuzORub#jz^6)7GWUAoot+Z%ftMTZ3Nd%E z#S_R=>I;l57vasv1feS8R zuB4l*Yt2@&o%ZTVLjwenbp5V_)Am_3=Pf1cQ!Qo~0?W&Ih|#WuUg#)Ox=8x9t$Lm6 zO>l8DG*tQVkqa;B$vdchNAO@pY=#EmKB=Lf{db{0F|@Nk(P;wx7CC0$K+q-%9zq}i zqAU_QJHY$hn-Mn12*KNUB?9(Xc^D;Iu}vyFzPMIp3+mZ-7rmQiH3B$?PXhkE3;3(_ zd|L-yC~9Vas{g?F3pc6=*f!V~GYpu;CHNNm2|6M6ypg#T$QU^=OZ|b|3g2PRM(ndJ zdD4?;knD7d@yh{{ASjXY~BH_sWmk1ccC|*+v7WNrBdc zH@ZhPic94K0^EBiztZrCSf5aXh&tZ+2k`|BY!mm`Tu}MS$8|DBW)o5!xOc1)7ZLD^ zfcgGYcL6kT5wKQRQhFZ6^_p*RcEGYslqx}3(6O;=yV&u2+u5~vxli?e``YYdZ|Hk$ z@Ze^A9=yRL_58LegIKI4Q5&@;$(HmhBC3mT8Xz1p@o5uJuKgenPF6Fedu7H}nw#~P zH?ymm{hGU*&SxLIZ?fLXFA-&dp8J@54+IuBK{VJYUrS@~pmysHN4%(AU|6ZlQ+fZh zZ{)aO5_iQ8blRw`(M_dm|5zfas5tUfPK*dhmSU3Z*Kczsc>GL@@4L9my0yO^%ki1aC*tZrH8)`Fa5;yM=kl8WY95(F8w>mk5zwJ5=2u_PvKm!bM+PsS#pY znZ;Jn@yrbVU}ew&<=$&$!WV=YavZ&CZXkp_bJV$$@@+|2()ETA8l8@>p2!XJ5JN>fXsJrjZfL8zOWs zaVk7p&cw%7da-&sV=qjz+!`^uThK|9Qq1Of)Xj*uxhFwQct{Ag9=RmCTli$4$f~N4 z2Z=lW-BOLIa^CstA-ieZ@TH1EqY00w_^Rq)%Aihrk^7HtsoT=8N(Ef1zZI=e%{_mw zw^%U*-OcPQ`kTKj>Wv$ip<{*M+F1oEbo9oY^n8V@aA09EEXp4pJ z!*!lhG924t1upd$N|-Y#g9@~zX|V`By}i>z3%_yvLD})bQ7^j6IINN62t^J_GF<2# zbMCSZwtVL-IW24F~ zVx@Q9vyUkCSlD9sv$o5|cZzezfHC$Mor81f``0k|@ zdUI!|-et&6#!-}#ixUD|NZqdK2B>;z0mbf08Rz5k_3gJxfRL%Vms2UaG9m~Iz8;0-;4?ImmNEg826UQxLL zi#3kF+uUwHcJI4(o`T8>!Xai$J*CPDjca(Z74P!m3Q?Qa-s)7w^H^0)Ywc!nA&?Tk z7!@T)AULeyg#TR?XTUOwr|mbOD2Q3$ju`%c%Noh0jKzZtNUny(d%ATYwM2t2yk~|; zxi7#CAfl{YDu9mjdwWdXcK^?v$93-zYYODWSCR4V@H4@d8(aPp`UMYlXPX>Ik8b-V z18u|S(zJt~f355v!`Oyd@hs3TUUk9*AouWa=)4FA98l|MPZR=y5$(gF1Mai!)cT-_E96x zpVD(x6uMr7$B7UqnCwu5;@#(8m2pmM(YwmqH_P#IMU&q~igAzkU%~X-F)BLgQy?n5 z8SOL@*?jfd)d$Actoc&v&JMWwlaU>xQg1D5ab9ZgE-R$askw)G&4V)#8k(jJl_1~t zcCXjo`Z~T{6cQp@>{ZGQAB!;w9uK)cGQ_-M8ch6(uxCtJi?+21e6Hzp;Zf0t)(sd0 z7a|wvt=w*$FRRIrA5`NLm5$<2fyO{9eMRBY$GW2m4O=uyl=kxGE_Oo{?ZFev#za`; zP@%1%WJ;4+r!7R!OLeWO7E<)ZOybVvrnJCk6I}Hr1%~TJBb0UfQ|^7ot}eCflEKri z`_gl6cutUZ<5z4IK2ydN$d{6orx(62BKo2Ro7|9cghH%2C{nuqIt=3s4ewq?Of_{i zxvl-ij=3c9L};wJJgX2te);(MlS@j?x7fWh4fd)+wB_lErds`?wTUmx13}MA`v1)) z!f(Ll>=rN_)*aP-Y98O*r$#jO`X~Up>Nmmi@IJ3}1GQr}oHWk_=`}(qeQ4}sZ|Y8# zN)o8@>{7RI1p`yf-$GbbAWIm$o9N4$D?2R;2s%U)StwLWdGzC51JJc4y^{p<-CDiO zl})DX_?K;k0Ud*oDM2UW-ul8{a>02Q3aJn@6I)07#k5m_T8w0h4f;hakdm3^HGa36g;`k z=j>IJlS}dVUlX}MDaV^6SN%6+dlWq*j(DI0NhsrYmF_c>{`~#%PAv{Exllv+y;>$U zcg3WJdWg-M7VzzDKf&%_+Q(aIKWGyZ5^I}G$S;YvVeF#lT*5dFG@A}$V)TQbaNe`u zv%kZA=o=E65_!*VPbnn1;f&V&3&iY{u}V^N%hxeA%tvVZDcY?P{3U|>iikH- z*L}E;*IsB~;)-af8(^}_%fU>=A_$po_m_v)IuSoU-1d)@e7IfiBN!l0AED0jwR%kB zQJ$s0Rc`ZqfcJ~8FQ!V*#SOcE_g&#cD#KG48P-)^@b~m$*dZ z%h0x?r0x;j1APHL?BlIs)sV%|;0aX^a?ks|Z5k49l*UV~g*nwsLoC-Js8=BdR}iAZ zvU~2Uzmu<%Ij6Qki?0AJ@{@EgEcP(907|_}X z?;AV1)_wUWRa3nv8Rt1g1ggbnl|e@aj_atVwN2&}O0Ja|q!ST8=_SFtvB>Q4dhL)(4f_d20+L@dSCUr$peZ(0v7HU0G$O-4~ zdsm|Jh~3z*FVpOZvicpqKDu^_&}-ZzS1+B93&M@|Is$=OV?m#0U@g9dlkm-t^ujEl zJ_WS@4MRMUqX9V|#ZWJ6aD(PF8)%L_$?z|gxDfcW*Q)<;vsE7Nq*_C|`;VIRwJW)# z7$`;m3^wj8^7rk{)oa6^Xtd0FbLv|66pg@5(ImqZN*?;sx_7tBLj*YY((-sLgM{^j`ffMgd(|as#X;w>Pws}yMEiXi!76{LKa{Br{VvDxk?b(9FwA& z*@s@Pp;7}?t#`B^5q7#hj@N(3Szx#|_3lokeUm$;{!4`Zuzw>BMsJ{g;G&BYa`?kT zw{&nJ5r(&sie|!RuEUeQ33KxI9)N3<@`B)~NgKic#-;o3xNt_m{DC>871sX%Ww#%6 zZrSa-D`J`=6fJHwgL%=_dFiT@t2xl|Awd&Co@#8x%wTpd3*rqG+BdcSraJdG9=HEp z*e{Ql2RIW>(Ba=9+QFhigjTp z%&K4ZLy$m(JcQ79ArxsONjO_wyr2$2MFnZqo1=!E=TQ-1yZ zp_e!jNec=CBJnGE6sG?Zv7=dbL9CKkzXq0 z{ilWjk+jGGG0^x$Da!2%;c4m|l5&SCx^A$41tzJ+KqB{E10n=K|>YG=~g?URI+$PS{4r_d!v{IeNs4xWG;a%srXUnO1-S+PtL9+)La+vxF&pyC zAt$6WPaEl4RiAmzjqRdsHDl-GGz?|`>jPgpw<$s2-oH2KTBuL9R#oufop=!{zEsUB z_UT0dEZP%@zc1N$w#O|od~%=pJ`+MXgzTEy;I8tq;7@AL z1tKJpIWj^P8+n$|@*ca)Vpb?>?&g|EOXBZjHK2cl7xc+sq$ z*O+ztkVo+%gYKb12I+m;v){XU=C9M=-2C}UgS5OxXq~)XrCmxBJmSgY8blDjvMeTB zRBN3avVV(XUa4&<6PJkV{58Atk6^0{eNQlIAD=&_Ne>Z-KwpXH(!efdu;}N8dfo>v ze=$^p2>$#yS_-Q6tp1f}tG0+XNYTwje4?Plop%V3)kGY5Z9q;K*nZN++3g+-Ju)Uw zQG=SW2mJ~w2oPQT7n76MZyZi&^&&!hwrRp{-5mddZ1P``U*=QDR5S4ShJwZla za)k$1nMmNZs@8nK;2E7!wO+#gh-S(>qY46{UP_#7$U?KT5lW_`@$3motk&7HDy5>e{!5hLB&y~X; zLIkfcXC~?&J;#VtevBQt8{Gw|vn#F}+Z;~^>oJWN%;_yZo+V+VKwMPI7qr=7cA z5DZ&#iW~$^mqPxV1an0eBEFs`Ze~B9!U!{r4y@*mc&<4Jeku5Y-1x|SyKRbsXkP5Q zD-3y-$3DQX0}EyD+->hZLn;{XPr+EWxY;nrZ7udlGA+iTwd{P~YddpqJ1kgJn(}($ z*OsG}$NuyM9G+r+$qc2U!KPQ-q9i{HNI98pHjqG5n~?SGjk4@Ph#w~2I;}HSh4>4!v%fzzU!m%S!Ae3Iz|iq06h9U&wq^xec@5rX9E#@XLSwV@Yty z&rb%OHHhh*m1f7v$cj(13kwTrQwgNxDH-}cA9c)EE_&Rb-}%n0!OdUP^vn{xN%sosX7LOe0_8Pq}OfiK~{~K`5TH23m#p_|FME z*GC(*SDPT3&x%FvC>SBxdFm}E#AVnAgbg2$#9*n?mfV(L?}crD0X!^)GgFq`DKoDa zq?=68kRiTIPigof_LxBLuY%D;(b4&x%fE}1GlD_)pPhMpfU{C>W8I>)#v!S?`ABlRA4Lqfq!*hrl2RPy`vr7PqPS7PlFUT?o}KR77rhCAQZD-jgSc^qoPc9K4jmv zf(Xa#QKqO%7W+|mv<@F`ZpI{;_gblM4J!dSnl>*$4^Q(Yh#&KV)^Lp7EIUTMp3yD# zu=$G#&7|Eok$c8paP3hAQAwDad29X8x6E7Ir?ENJ!-Kj{x0+bGQF=`c%Lpw9p)~1y z?9%%unJzo`pI)b*y_(q-kYfVHE$lS)Ftf|*K*@gF>)>T3ghx>-R$2(_|GQZjMjA4D zbx{7yUIw`yE+;MCcS5YLjmPo#M&5U z{Cz^=|Kz1eLInJSGK_Q2?f5Hdi2V?KS}y!H2}N`b=G_hu_-;Ov$a#lsOd<;SCw#)B!kLdZ@?aoAjb*lVWjdYKJzzijl6sA{0MmE*@1bs;LPB1#7 z_lTMZ5<+y*dz29+f?=4^yC4Wj2+^WP@1jJDUe6x+em>`Uo^$><|NPc(Eo+w9vuDq} z+r6**{eE57O=Q`!=*t8(uI#fuI^+a-hpO92AE50pKw4?vW(bGa={py-ou?n`Hi^nck`j{S~=KI0Nk%{yM)D`!&LM`*+$WOQf7WGVd-3{}9a}>sCQ;SYLHBvr z8yPw~Vi|u=E1@H?fkC6!J32-=mw^T&tW z5fD>sMdm8Pspmzk!yA1&ArZ0B+C`(kt)L|(VoYV!?N+2&qV3r+&XoBE6s+{h_pBA1F~Xs_^;VeZE2^5sB|go!vcL>bZE)!;VeHkrea27Rg_rv7t@;n z5QEZd#T!83Jr#iGy)JQ`a~nJuyo%CWGcW@2Byf_`Zv|I@Nx!1H1nGnNZ7L%%XbM{r z^;lb}0XgBmOPTKW2&oP|kLJ<7lV-vnK+KLBKHo8&_f3%5;X+?FePmAp!DGv)zYB#4 zW(vBOx%ZhMs|cRQRm;&U+h)1F-rqxwiHd2Q@#`xc$si<_nEymL5O zNKiHH?!A44IefFaZG-mSIz`t!0dQ~c+}_(>0!bma##wi4wZ(wGhJ_~RC7NH>hT>cg@5N7ZPy ze6p`Wtzjm-{tP~e6>03Y<_Aef{-4#t@^Zi?hYARYEJJ>Y`BCqVxBCH7 z8)$0mw{S$nev@tN58_Il2VXLK5A5_hB|z3EkVXK|Jhfc zV8+Og68P=;-cELNVUbj|&;#(3rJwd0xK+AZK5LW+=m!dbChb~Sb*4DrWb$kWmEh@vz&aHvxu6A`IowNSkgOS{Xa_Wy(swkia zW1zgPE*G#j`zRk${K zq&WU*u|k4zWda8lU)!hIDX~&3Z4M+=a_EfO-p`ZeZmo?y8JYHe9P{m)JG4Zd%kha; zn>Ap)9_{P5BjVF&)}1NYZE#RJ1{yWsb^{J9)?Wt}N%VZeJ?G=s)eK^cpUaI)cU)g} zplol#3)RI=H_-k!GdXBVY8MXre4AZ<K-B>5G8~{csK0)G(&hX7SXdt!N-wzw zRbIscRFI5-9L0+ueX?yy=|-?8$K1X_8YIg5j`NXAn|#m`M}f(;*xV@|!M8F~3m5bloEY0}LYBl+V; zw?rg4+%T-uOgWn-g%NA?}pgdFdZ00J*QW_`%HF2+^ueh2LcN4 zzI1;6EAp$8=`$S;Mjv48^vcQ8Vqlu7hdElGNZ?HB4pRshhGk9i9Oj4GNuFbxT4g=6 zj+HF}dRXkIpxSkOre@uCD)SwwD(>_f$Eds{s@o`p9@g0-@{H+P3q?&}-vSc=gYZ`~ zQ~ku;ODz%9Iaf9nd9Mc$sM5Fzp0p=b+^ZZ}{e?As0CbT+&<`kC6~QfMIqsz&97x(e z|75n}1lGKFD`??W0n6MF_RcqG@eQaYY1OQ9#jMchfG~%W*n}d5HsDJmq|Oskw&``m zMEX-KsO?So1=5{>5r*Cm!rV(H|CkMS*}5%kMiyWPcL)3I9zq&yvn+PDAj=2a9vZKfCz*i#8HQJD$IN&_U}9s+O_UM^fB5z=KCh1?obF z3+~u+5;`32j_2g7(k$)CD~*;$gI81JD`fwqHjQ8E27hW!Bwi1Gt(}~g`Q=;#6)4`0 zLh^=f-QC@no4U?HfZkL+6+7hE?&K+6Dg4JB6yCh#+rBX{OZT1=f%%dwXg!nmdJ<&y z;yv8JP}6-EyxlT4(0gKn?1*Cv9`Z^LV#UY8o5|vR8z|>|Rrv4VTyLWgZkiMQTpICB zq|NiA+|$TJmKQ8Z3%_p}2pQ;W^=x?T5N#0l+SA^g3-iM$CaN>Q1Wik| z8L7S$eyeJwJsehgO$7OBat_OL-RY+S#?=!^905TzeQ-ehEv5(7T@@eM#HKG zZ=8v~V!RO3LwY{-{}6b&>U~lwCYfm_j7%#rW=J^lU3!sd2yKhRx99*D>^^hS^lc%U z_6R(UOJw|}t~69&+RX0DTcnK&ZS6YkROva?wUQlw(Fin6wE+hGyp^Dw80R%L#TnRl`$M9mgcWk6Gomi{uu}R2@)`qi9|0wq%U(F z!GdsIvVWQ^)F0Xpw3q*fLOIPeHMPQ6{_z|2`{=8lCByZ|0%lDOQ0wr9ndNgObg3O4 z#-uDyDU7BUvc-~pk48u(Jalv3$#`e%>GRBF%mjA70~B?bFDYa*{*EHNyi)LYW9{)- z&-j(?XXcqg1O!5eRiYjZi4CkcaiALza?&BvgM*2|Aj+gpH8j^4zX202_Tn_$_29Bx z8Q{5^#hiNuqd20cEF~9viCMR42C7#-IvXK99&$ANQ7t!Hv6qmWW^TX*YOkX)3=8&| zv?Blxs3!^eib1?BHgbf3J)2dTF|X+X@)s3>!VcyvDe}STMZ_G>Xlo)o;`# z|Mxi9eU&z#-%fI$0B=^yeZx%YGvq?N9A|gbibGInhM_&vfalR#T;t)USR=n3nHMM> z)W1B#$0~f9s|M|&|5+WBdTbBgb!JPuo%As0!_kv5k3! z+dZvCc3#jL`N{mCnR5xF8OhXn=O`Hn2po~y`tZo=QMwGlS%zmPT7;cyPipx*;>iF( z+Nc1KX>kUgb@{ak#nBj&_`Kr5Q>5Fhe`{n>|alI?%lRR_Up= zftolAJfvg7nX0kC!aIvJKyt^ooM7`D zBzAt$s(k=)?R&NkSiE#JX6bJ~BM;wz;U2H}_a)*%R_0m`6FI4-mG9I5a*d}3Y&Un1 z@Np-88m~IF@(W)I1XS{HYak?XOyqHD?an)2F(vyz6=;or5~ES+Xm)3>az%v)D0FLJ zQd-$_C2PTH!{<(FaP>DJAkKQNah;+|r+ctiEO=BLdEx+QIee0bO67Z&=47jsxpQV>~y$=`(GuVE=24p4k+lMoyeG9qxv*WjV95eg* zb^_n{!I~?=fHNp}k-%9o>=vMOu|QSy zz2x0Y&!!xh00a@YCSKYNwa6ClT6d^%)rv}aAn-UQK!py#?=LAHF9p$46|w%ag|XP1 z7fc(@0KEC1ugcbp@5WT@!v?+rs_x$?N8`vY;DpFMq3Lu;?u-C<{L{tr0~$DyK8nl) z08M(>pf|0jYhv~hi;%&Y+=of+0 zcBhc~7XxR+kE#qQYM2Q5`7tt3 z>#q7;yFZeIFeV8jp)XWcnia?j0FlAcwe5(*vH-$}{uhxaMK}=r4eWSP;D1VB{K+CTob9f_DfKrF4Zo zxoY*#z~j3Map^?FgbnGzYt;7%Q(E66D^7qoBs);QkoFMv?N6AH z{skb0pR?Gs1nG+?G4RHL7e(tFdnkH~p8krwA2f)LlsDIw+jz|*{J~SeIl>UhabP-6 zsZ;Tpj)ZWJ&*fkA(r4#8d4AoZ?5oQBU&$uqC(A9ERn%?FPOmXvi+ewBE&3nO<-T?* zXJ7KzGTdBp;?4?q^|Q}0<^t1yWiFpRO$&~yOe+6k0^TVnjuyWv081+rrUb64y=Y+D z)L6vPB%Gj@4*!4{Y7t5x~|H%HRj z&j;%l;1*?AocE!@C8**vhRpC z9MWM*f98$L_Lc+%3Y&^HjHoz`E5OAY9qCWg3n$0Qz!Oo6-qT|Lgaa1-x8cC@Gyhl2^2}mt zJ?!`uLS<`9KaL8AxCynBkWH+gMiHZ+{#S=%dEre4?8e|*j`TmOEF``CIpWZo0?7)c zwR^{_8DCgrz*U2b_r}Qeqgc>rnPV#%v@21BUBpVaF$X?!<*Dn*?Y zJ)fcue<0dxl;*zeqAByz+kpcA+2)-yyKCdDVFl#-60h-hyq4+%!@1^o++igD?}(+R z^`!sk!^{jWfCuIT;*9fKdF|(FMva!5*RF1sOPNhG*t2Z+jRj35l_3%%-{5Aa>N9n( zA=1zo>EpjYK55^Vp8;;2e!rS~L0tJAtGg7D$O4M+rYaU|s_ zwWT!~n805&c?mUOhgD?6Nd5b(DdG0}2M7vl&gTq~D-!$Be)-iw%up7y6q(IA zx9^5X>Mu*1I7RlKB+=;EOChwc!?*u90SJW0RkQ!HLn;_fXiERfPUVc&`cj1EH0ie# z=Lcb3_@lDe{iUo4yRfPi ze#xk|{nbon-oqC=1^&u4iCpCR6aV$lq?9ECZERN@#i;xcAbsCa3%`V7olkn{{?iG( zGU+HE4LBz(=H)v)5yh?XZgI~puOe~|T?mL_`f15to18NI$l??2r9N`>PQlstA0sq| zPi{pvGQ2xjY9|l=KO`$}Pb~@iufdOcr5r{ERGDRlCGgeE*{47)8 z?3@j7R0AYFO3?FTH~C*43iNYJ+mh^1X%FvWXMy?9-X(IPYqbTTv^u-LHqcKIycJEO9<+94>GnAghfs*@}1SaJ|YPGW<8@o8HL<@`38n>Uh0H3)~6NuT{-KMV$ z14@Tybf-h1_*ViyysYH~Ja4nP4dX0K-L1F=T@yLKx%NZPwn>4rsrxqV%$vdQHmKOV z`HMWDr}jw5?;w3j^g$MhGrqQ|_9uy9bgRwM!>Z&WVPTF~*}h#km;-Oj<>iiZ7alIpVf1Zh7bxo-t^nTf5 zN+nU?Y-QFwgGk2)*U9&yq5TKWp#ZH(N|JVO`$bB2{mNRwo*89kx!McCh{YJ4`7VU& zSaMtTUHVraCM0vRgg+~ezkkV8Lct&}@V);UT2Hrc(WSJC`IdQCkUlxe63m+`u$%lb zZ!Y*)#6)dzMk!!`83M}E%&=9)zjnT+Mm^bZ&zcGJUE2|fzETWNO2?93-^dRQghkOFmOpeC+Hc>L zQgE*IN`r-fxyVUarF{A_e|HMr9SpZm$A>2WEWw?z%nK0ZE(nd{_uChTrxWK0eng5C z?#hxC&+i|W>2Zlt5lYHE0z_5-8;jzsAt*`YJMx8TuA6XWp5Tt)J&z#))rSd$lItP2 z&a%j_fn%zKb;>zp(k{Bcw07XzrvV~)sIa1~XiW3Z(6uo5r*M7sc)YSd+Kjb20GJN2 ze+pjf^O!m43A+ZL>8uj6y||%1uLhCT-2*XQ^7;AiUzoVT-x3@7!KutuGr#N6Vvmr4 z;A^nwB)$JJuwUqR3aKamSZpe0C3rjsV5<_8KM0Z3y6OXF|P^`fS+kv+~JV{^XJNp zcN=#IpM8bIwka_Q0?(RT7@~^c;H?In^7f+t_U&OA^wStq2p$9(@IEBKdlUnY%~3l! zAax}UEdtrn<1`USOJSh=4%>s6Ql z$dQb$|HXGrAb{K6WUB>{zY}!prZK#L1h;S`8j|H9i|C>Ec$gq=6=c^Ln*6y>=a#3X zjF3Y1%?lxqI`6!|LtVKCPB_@*l|M2Hp58|dUb$Dc1XPe$upx&xex`!1X^fTL(J6?BkvJO)a0rBL zr0PACt{IF5PD)z?#~XwaLw-g-#c@{2LG{43F|}qfB-MU+;Lz`%rFx^YHDKBY&`79j z_BXQ%bcxsj6R`3Rj%Z+V*EG0kHusf@3`zXZ-J2} z$O>*E<)L!*^HxxwmzIt#ZFj$30f~Bj_C-Svd}Wp$*E7L-Mh^pCce1JOSgV72`utU@JCc6e_}XkD z{vD{Yp=;%fGH9y-gISVW+5RuT)(>hu1LUUL!%X09Sn3UJ5z|_0$tW(aKXLL zlSHKuH2|4aM5TCY%Q!*xnG^stZol?C}`CSJ%3J(GVIYW?a81rZK@ zIJ(vB0VjjGgmSE;yBg@lfL~r9!5S%aEtcmF%Tdwb5MFrzr_7m(Tp3x0C0T&n|{9zx`G zoy4=H8{*m}7bR;QOb>8AU>vPUU9&ttcu5p&L~>-o;a*M9F0I9E*>)p=unzs&n4%~8 zzE8%RqA8|lf*&>B6FR-lQepep4km1isfA3%TJskn%&+(mcAoT(5)?J};D&^#- zPvJj->`y7voslRgW#*ZQ&8R4(=N{?PvJVHXt|?17pERU&@TnZu*{GCbPep+tD2evVWr6W zsU?)MZv8Jng2({JDZmX(M2sy$r!lB}{-hkckAqIS_k%`qP&uph<^g|JeBL7$lYlYj z)74Bs4BZM1j5pz3H*hg>t~dbbHwLRPtJD`_%ac1El};sb5Oexdp~d&<*B_r+Kpn|q zbY}_e4XOU1{7xkltbsQ72*g%Dsi?{xeX;e~k-FVUXT`W)mxDa1;Q)fi;+78DE1wbN z{uCC#;rKS$pN~8KJG#WUiI6zcXhYb^q#QHH#KvR1+!^qnPGoZ4U@cp)jtI90dVn?XVE=moz|d z_pV7Q-xGGJ;w0>^55hWvMP_O;9yb5}olpaIFHm=YKC&PCku#c{0wan1p4@LP!8ZQC zg?=-w{|Nn|!f7JbXuX2)%z^aXY}G7C+q*;&Y6exP7>W;v)i&VbqWixGMDPmHj#3^s zz1EnQgSk0N`u_~zAyq5eldrLzC(SoqGHKs%^6JZN-wJ*H9#n*8cReDS4~z@c_)2f`MrAM-~+{@(^*L>Sv>i~o&|7|~jD_?6=j8oB zzQw_)5Zdckm=z7c*nn%*9Ay>!71`KI zDJ;s+H-po`yas{SUg5HJKOs}5Og)BEO&D252#PaKw=N2-Hb0TmY>+6dfJ%{I8|vl|X>z;iTnKRw=@FoLmeFJkJJ|o6*#d zc5}3z?mwh3LHh9l@h{EU)KMJB3@$Or6t!RNSC+(EFvJVNbCY~RE?lGviG}x&X_r6E zvZ-3FG+xkaF-YF3f2dk9F}1-+0;3c?0^9*^$kh2G%C7U%R~`62qLNyZ#If1x!5hk9 zNhuXG{>30l`#`X!b5hs&Gukcu*64%$nY$wPu?DJ;{Otr)2-rUGBVLkxSbJRQsPAv? zT9C>{bO8I!mGbD#Y1t+0&F{JWf<>U?QI!*W?O13FlMU|jYWdEnzFs=IFx$clRN^YB zTa4PZn|)Q>vk>f6J8}}xp;#V||0Ac>kleA5b2711;{F=|+eQ|%ZZdt+TE!09)=D-d z7GUYcnQFdTWdk$>3JrPhZ?!o-JJJdH%ReG{-_Vsy<3mvddE}G5L(V=-NHa{*KJe~{ zbNdLJzIp5$h;WglDCz3wED`IPl}c&(+*+fE-IJ3<4rWTkqY1b?g)vgbo;EU_ahgHE zCUGgKNC_lbcc`@GGxY$Md^A7BCXEqDH>@W^MVEE70eV{S$;Y4Geyqsu@}9-k!f7v^ zE*0?JH;}D==CM5g@L~Guss~86(15EbSx4(z*~_w`MKXZ= zE{agoho_v>*X#sbKJCOVc$#4vdNZ=qY6#_HAJP3%aDd8`R39+4DU&udKV?pkbeTN^ zh@5+(JzTk@t{AJVpK{))2^))MTEE>z*l0NfiQq&13=iI^<#6T#+x(7Uq$T4|!Nyx^ zgqKht6U$pJLZuY7B7C+EB<9E$bbFK&X)xi^Kg)ohD1Tn`cfiSNbyyVkL%Hu)okIy$ zyHOp#=zMdXti&s=vmS-E!NWn5_JLpr*s$Eg;ZU&1aI9VP1vwxBP@Mg&B6f zx>J?>SijeuC{Eer!J#%ANTAI4{Pc7WP)>qjg$mAnKr?j`*Lj0EXL(sJNI;l62*3$c zK=}w|rxjr!Su1St7f>yt8Xzoy3KI0N>onpL@;+cT1R8U-v!0tMVw{ov769g776!s0 zpytsR zJHKrH0l=)6EIDc>gG?}%yUq=t=Dsyn3U7P?<|QhKd{~pesWC6U$A5jEU3qh;Es`mB z%{>z;|A6tBc_U)V;&L;4tj*wsm5lI&yNO_JrRKm9y}~P*@c1R&bC%4${aVu1sXC{q6I8 zO_t#u^P1wJ6#E6el)Gp2UgW16TYt750;J7f#^yB)!*r}26{n$nSa#+@iLamWkm*bn*>m%Y8JsYvA|AS&yn%~Q%Hf843wjj* zkXJy*b2BB#{WComhsTT(Ux8Gh31Tz?ZDpEMD!w1T=Xc}_i^AtFXW8V*-IJO=&pvh5}S0j5pPMAI>`j(5xu+`q(hFVZAf0KsS`>|HwC=m z4%oxs;_1sp0B2PxGxT||Q0_rAU?zQ&502iv zo~{hGIk;5ruDl^UZ5OxucDOZv6U2lu8oU@$Ox=8aaRahBlnK7Ln0Mk-p>*0?-ozIE za)Wqb^e~InVN9EoREKdny3A`G+!drF(e1U zgg3Az&cdrY@dteG<!|4y`nbRJ4{B8_K)h>0?AYwSlDXN*uZtBh6`Kus(eO+_WznX@lB>LC zlRYiyR5ZZGa4WL6c$lzXHOE9e>py6gK@scPYQv|OMW4b5dH7Tk4LvXebLP(bNwDVY zlA{&K+Eh-sv|~iV@Y142F^`>COGipsSxmNV1^BNWD>54k7BM-SVZ>qD2L)^)#R(xMlQy&ILbks@al4I6~$ znAfDJW{ob#9dHdAL<9E>b?Eh$Tx4$hto(A^TsuEPnZjB{FH4o0=j}6rs!NS>x~CeK zR{11GjE$JV$l+Ng}Ks+5+_kb)r)5 zHrXZL^@Z$szkeradqZ0!+rIIgQ2+Ts+7k_o-Bf>bql!?1Bkzd9WAA%jibua1Em#Gt zLeHW}>KVZa@4#+_w$XsklnBB++;iQ`H^A+)wbr5kBh9LEw5mNEE;h_@8mJHtW9c6B zSTlnVYO*Lnets(^i3nZaP1^NWiSEP?zK{;+0IqLb$CCpk2r2gWB02(e*I5dDeTQ*v zPUa}i`e%p$(5zmxROK^~Z7S6$mG44SM{WmpNSnjQZhBF=h0E<&CXPj43m%AGYUVt# z3;phOf_x6QDSghiLNw`sV2p@;7<{e!;f-{$KvFx;MjT_WvB(l~^vh_ql*(%0kIxO4 zv{0U5m7iVtpJPu)kMk!)y+FOX=|R zcj0soj)5+<&W55h7?MsBVP~V|pH2;{f<}z~YJ-u#ktmLCEPcUC2Kxd4t{5EA=+cTu z&MQ5x^RAb66{C5+64P99WI>!{FwSFoTx9-x{BX_^mLgS_u1bMIvy^sUy)*s@givy& z`Hu?=ftxM*NJOX2A?{b2%Z%pyjRO|u5}D?Fk|XP8#g~JXbO7Jlv^#&fGhkfC!;D8! zHK!KW9icorc@z3|nRjxg`rOdQ=8lL`VVH9o7Q_ML@X4xvp($_up>hUL-hbU(Zy`Uo z=t618v*fvvaVphC>^fLao>pD9BXd#)+3_{%(f$Y9=yP@%7!M=PHJ(POl!hzkSX-OR z49T1B>3m+>FskgHZhQVhN{Ke&O(z0%mfe$)5N(1(6o0*qgqxQnT)_%M_g2P;S0q zj5lLG&k4U-><#pZVzi$PE;ZpHm{eUBEuF9L$z+7+H7wYLLIvB+fk)INh?6HJD?s(V zA1Tla;g=hJFy!M%9fb83OB207c!W04#g;_8KZNE6#Ol>`qoIXvw5Ms~v=1zB;zeq= zUr!jGX1`=Yh%-66Q;hl+i0NUCKwhqTHn)xqkb0?uu zQgQ{|&5I;o4K8x_e}D6zW7=5;I1fNO(M-r8LfIjYG^MdErUXg0n|lD!Xb2FgNG;=( z?_EwT*gOY24tdrz-($E+C1qzFJqgr<7_P2$l&BXkeve&*IAh0ssMpS%#NR+~8Ycb7w4 zt$^4lOaMJaN5A-l?YM9hcNZT>dq-8NXtJ*#AG-{w_WlGU$wG~mNgx)+`DPZnFhgcI%r)HOE}^jW^Y9;6Cx-A%)9 zHI6gm;RUD%Qx*1dY9Bjg7>N9H#?w0TIs*YIvdEyZRs_2BnTIk;N zFjm!!fD4ZvIr*P^OHzet@9Ua~qj-)ivb9Z=1UWz(zH240yti(MVev2{dui>oyCoD) z#9Z_plo+@i4B9E{xbFVuJ-RsNC?ER)zfRwK>BbCw{nVIP;jwAV;?NEn9xuLr+YXK_ zP+tm1A0FeMz5y z&j$zHe9viLGG*FOYYtI3713jl1uKTEy#~Rx;^!VO16tD1IGK`_|LNKT6W>E7pdi7s3o$V10cmQ>>=MJ|=w(msFzjlKJ_7IF{z zh@4E(3_2GFdlpwp!J*b=)4{{tXHShO=#^6zq#9?@oFO@H_9Cjzs$%@U_oPavp?2F#j>MdI`bI;9y`lN{foYhC{TP2}Ve}&`OLShlGCg4<5GkD$~95 zfgSD;K=!dqSd>?S z!zeHq?9xc_oHwWj`Sm}>be-2a<~<$-l9)2$2?|^vC!OiBB6`)*mfA(esX$+`;r|x4 zVV-d?8)be}b;b}2&NrKIbwOd93Ckz$GZ|p)e(NFOAgt;HxRX@(iAR^0&j+mT0}KQ= zUCE&@O!(snyHLLO`fCtn=IBkpNz0tT;a1_Wt7-HzRCSeFX@Koi4g8%jKB7uKM5P2b z0OfMkEL7nbD8a#G32%8GHUCT!Qu0lGaYL_dd)MVw>d|x5nugMh%r3qh9L=+QSD_jF z=7INanaJysfP;9KiyS^ddk_R9&iS7*E44xTt42sJ5pJ=!T%d@;ldwAfL4<@DtLPb! zaXyr?-ln{52VpXabg*@F|xHa&UgnrfMx|)4S$6ouN()d z+A!#{31>f>&JsN}b`5_Kep@u|MYKTykbq_hfkrM;)5PuB>8LfDD93#4}cL=yv6Jd-gCOG+L6$Qx0d0>YR=e~=j5dj zdFH>!Yj5yn;XHX#HTZ}eR;P^0YSDw|neCF^uAz*AV)5=s;mR}C+^%q2EXRC5_!)yY zAQb)eCbyI8gLJ(Tj7q55Io)o}K&0F|8S9-#Q0o8zKoNTQoJ+fYRUX6B_^MnWE?_N=r zu%L?Fz$E;zQ!7=0+#>M^`Hx&kogI^(@J$Ikgp}0i9*povWXwp*OBJ#i^pgUED<|I| z%)Rqr<>&vy3Io9mhPg`8Vh!;&8?mpZ>#4?Xk>Im!Dpch$u8jx4y~)AdwJ_gR-g94n zSIG0M8Uk7vyzZs!{$3>QRr2>fwc-#f>QKYDJQDuzoQXbs{+Klq> z6&)h%RqL0Jk9_ZvZ<}f{@`&r7JA?1Agke%0Z#-W5aW8tiW>NrQjO@60{tfIyi$)ntAC#xkGnN0)&9ktQc4Cjb2C^EQM-?)CDXCCA7rglD= z5mjz-Y@>@Bsb)#-1m*nM9z3_Us!Z(ili8QVk*OJ<-=S*&SA136P5ILq$w>&rwzW1C zFu$ON8s{9nc;(*T`ZDw0a5kwQSC7yj4?z*_+${KxXW<~gCIrd_j-LCCE(MLT%ZFq5 zVanruD)3P#B%3|6038(xJ%RCeU5vZdYKZilL~G%ddJR*yV+9t;$n7!KYdj-qw0=ia zr*wNd%mSf@=D|+JGYFnnVi^8(23)-`mO4E%(qwPAF#x6%QnnkLUedg3I0oj(o|NA0 z#A^Q22=RlD)JFd#Z*CmFS+~M@fbLpumPwI$83|TgU`#J%c_U6@2R3EnQa^y;R zbWs?AgwEWcL>q$tY(`HtbsXl+lIXI32KIk2N!C8QqlbhP#toPCZ{qQH##Yk^b=#fV zE*j;Hmum>mnrXpJlP!Idvckct?59|T1{7+MGIv=Zo8yaAvMez@>->H<&zCQD-7mkd zZ&5|ONN90W-BQ_VJtb5$3#jOM7O#(lyccw9ABlK-{H!sUIk*^+Bjw8GgCOBd;sy*fFybA!}-~P^da+dJ><7L@`;!>R%BoE-Kmw}z405J z8}Z1XOV}t7#x&#Wi(gZEEWbF8E3roZNr@zPi$bq+ltvh5Bz!u%Ye|bOQ=bfWnWdqW z&FQ;zj^yo#S><|lOX->WSO>4j7{Z-vjWvD5Z0+pKECAz}+Gm&0REO!Py!U%w;qW`H zg<^=GI)xg17?@0iBjeZCa5=!Ehzm#T3aSKFo?!~qF+|?WrJ)6~5U@|t`r3Pkf}&l| zUepf%Ub_E2U&B%bC4U3rG<8;Y56xdJ;q<8zMbhoET%gJ^>N9$nT)s`(Xsd7089*A~ z0FJg?sPZUqFjxJE)JD$SlKjw63Oxv@^$>prTdCE#wlYQrS!YyW{T0{0QRaGECi2|& zu_7o)0T9={zl>~{3g7m!w}wEn0|_m~u`ldzieo5BtOqoF!WT19w+|&=6p^5st{7yD zoI@31!iYi)PV$#{Gj*S5ml;rcEdab7xr9n!TabR_j#2CO959YvxsgBqJsBQKjSF*b z1w+1xRP{7$%)G^qhtfAMx3b7>e|rBACi7_l9UGX5?hR@>I$-)H)NFMBy!`*QG*<1u zH3STk!~d@>w78wmYE%<7sTD90p9bm$_#bivPt-#F59gN@LVYA^2z_OW+9%iBHGxUA zD9DcR|I0W2ZU;jFc8o@bbzeUO*wjC-!eciDLfvi(u;J~VkZE;@sJ|=lahghpTofbC zef_oPFC@wq+$heLPUlM>*_RHX z-3wwLQn^Qf`xyVa8P`<;BLep+y2OIt4y9lfZu*)3PN4VudePr*`2L4Af6%sf`Ys0i ziPt`V?77p@vqfH3c>V0=jlmCYvsZ}LAEvfXN21~;K7KSP8|nL0##Db__)J$8L1#mk z^}g%jNq_v?Cx_z)EREvXjS(Zs*+LPV-0lHSy>0@d@nU}>_m$~3r?%gI%(}9Ot~ofp zOmkieuuBxOh%CZs6di@f-Edk*u5(0@QikJ@)^n;>i_ArHQmiM;tSKbTr*Wyo^aYT^ zbh^lW7ZQ&DkglfXQiCg5Hl;SkT05lXKGVqAtF%HeisRSy?bcdjGi(o z{UU2L$$G@{DaWrns*7~@;|;CnN2kqN=mg=fJ@mvUUg5^bq47M|<*Re77Zi6viJ=O0N!%0Tw)8?pJKRK0U*~=B-%=frpq92!YX}2Lw4oyK;NiI&lI>ZDYeGZMy zZ)!3Gqh#dtp{5kLaZ2lPLLtHUvyl!?rDV}m=2Yz%f5l~Te7B9*v5|%p#CX@kM-;AG zXM_{@V;~rx=!g3=hJ!Fa}<00 z+4Oi%alGsn8{KbM96yWYrgzXBUy{8Fv!okX*A(wmxnGiDR!2<|amMKRxl~D};zIZX^1#&W3yM}N|7Fg+nEi@#6IW1fZKC3*W;FX%? zU=Gwnrzs3I6Y^GJ|4O5u;`VZ@gV`tb5%&$RG~DYalr+N9Q-Z}$W1(887nJRcIq`sJg7 z{|F1-9~YNjd)JKEL&JGfW$e6sRbv_o9IZDUHlIl9X2woWFGKnHMHMI_Ggu7H^$Ku^ z%SN#INh5|{^L+bwMT3KrN%Y`dFRs3hQl_|-l+a@W1>a_y?b%_c2}XScWx&US9Y06) z`pFEXyKk_`EYf8H%-RgPq?C@rtGNj}EakKipZ zW%K?9+}nL$(_TWbyQ2&pdV{c3%r@>tV`RN&jiqbN>4}z_`L!6A?i7x|wX!%PgGDCH z37~z@Tp^&9?e9@eS$avn^?6aDpj)$b=$FO@DeN&t!9(3Y*Ud*cS8h)UNF&U2Nku>M zbq9L_d+IXqnXtZ3yrl{1r!zFJeSmXkwoBBOqmiMU+DTd3F|$=8Wh z@9lxgOGf=!Q6D>b)ilFrPJfJ?2}rTV)IWxEDqFu*engEnlf$n$BS2j7-KD@7s7#?; zOe;a(%*Vu9l3V>^&@5{gR`v?QW2Nl)D6!&u3=seOQmm8cTQ!sGIPCoj;o4adVjwb0 zw>&j}AY>oS$-w`?gL#Lqf}^81XFa@{{bj*gAB<+CCZn!^JG->c^!7B2wawS1obTKK zJ9(X_)81(^O~YCe>?NR*_A%&eQ(ln*Ip=;rMass+pnz&0^D(aob`nw5h_K|}O#_x-fKfFS+zb*sRaZ-2wW_f=^AW$PB-C`?i;*pwmW z2!xjV)VnJJbsenZ2JfS`{^D)x#TfK1sTDs zlZOLt=R4)KZ6sOUctFZ|xCywWXRC)S+PQiMlPUX27vr1Wvuq)&=+H4Sh!I_Gk7lz#&_ep| za`s5m@KX+di8Zv`$$f|JFo?g4f!gc0_zZ3RyX#h`E%kxkFvcym<)85XJ>o&rrI2hqfSeHeT_<2#5yWoy_K#>5oWVhjYyJil=-V$mfGwu23xSb4Qj zmxv$Z_5?*1iW3afSK+xWcpKf( zMUEiU+`Nnp*+zeO62TqSp0X2?0^fC|5ae8w_;$bY5po}7RKYfEJ2$t|U}&P>PPtTC z4Cq0Osjd|HQ(fvF^2q@F-nsUimAW!@4ZIws63SooC}-dE#0;(h0DP-6MYdByY1%s$ zn}3o1#oiDR#y-X|Cjdi;D2s?k_AFyXe+EiMH4zP)G0t#K0fHo(smY9O<5WoHKo}XP z%hJ7fkar;ndqa-7GKx?;S4n7ntb9S&h7e#XgM+*nL2^22CiUiq6lIiB1Wf{wRie#m zYIu0Ob_hX^deo@RsE>)>LxSKe{E9?Ej_@Ti>t6FDVA8zQGER2#l}{Zp zZ80DDyUx=KFbY0Q{8xco*s1ezRiA!HR2}WVqaG`qk$L?$5;_wIjy%2Qx z(IpG|+SCf3D}$*HfcfuD1Bx_Jge zI=!}Cv8#4HKa_t`QdInPmxpvLYN4Jc$;Css+#c0>5FB)_A=i>ovMg(!IRrH~|4I8M z#tY-9wr`uqiFvIuW7sfg80X#rX5{@{PN2s2?v%>@s|!WyiWzN{ck43ZnndzWGn<;5 zc2~My7&<}!Y1DFbb?b~iLnGDHd#r3NYWbrKleg@5BBht?DNUHYB_K^i+=(=!_T5~@ zKSJ%h_!s{XwU6_NA*3F15Hd(#g5XS)WM#@T;aL%b`Kr40Yc>5$s*4>^*vpspl8Cl5 MI28Id@X&?-0RlN@-2eap literal 0 HcmV?d00001 diff --git a/doc/en/screenshot_merge.png b/doc/en/screenshot_merge.png new file mode 100644 index 0000000000000000000000000000000000000000..6aea60ede3b8171c9094ab57c50dfecba8367dee GIT binary patch literal 39051 zcma&NbwHHC*DsEMz=DV@DJif^E-4_5bS$7WOE(JAC2cGvB?~THA}x({rwd4@ba!{( z#qayx-@W(!=Qj@X%$YfJ=1hH_Gv`@DU#lq);#1*cU|TrFt7;mu+SyC z>G+js0^_xcmfR?s#?Zc}FtG2l|NjCu)&m?IOgjL8ii(fsU%;ScrK97dql3`@3)Ihe zpFLxH_Kfw}vu6wp3`|U%OiYmfPMQ7%4kjiJ5C|R7fei#={g+3RtPCI)hJPu#o9|x` z78Vv26~&O0d?tAx$X~w1kdnf9O?>x1!u7v!`Y%2I4{?2cbG?hsj$ho|od4ZFJghjn z**iEu$Nl|{-Ti~By{etPgOQ!X&8=;8++Y9Gu(~z>FHBEc{wGdNS*A=JZcXM7jZe&v zf0!QD#2Ci-K46LJ?L+nc3GCTF?M61YwjDNp5U8sjs*7)^Qz@&dajRU$D96|+afv9# z>M7|%i2Xt4O4T=uVyH1 z(>LNKsZ1t{8b+3yMpjxzHd@9uszxsAhL+I=vaj{cU+I}Zb&Wi=)WkKz71Z_Ilw?Ka zUEax<>&VFJN&A152Ixy#5lAKrO6Z7-N%0Dbo(nKzKro0|6+mFHEfWra;oU1b+J`_+ z3?huDj|XKR<5ClnTod4d@cADD09aT!%Mbo*f1{u1c#DC7RDFy-92jnH8fu!e_lE;r zj){f-_u!tD2IP$o0O%1D)Z$T55f;WXU?61_ zvlJv16jN7+Dk;gzni5iJYpbcT5VA;1Kc|O0r&mybJjKPK021R+auDD=e2D!oV8vZt z*}cWUi0xF8mC}0ucYETaHH|%K@ByIlmCpn1tbun59##+D@P-*Se=w58=^5*Tn~hGt zd4m<5w2>@aZnLC1KV;n! z*^Eb=@*DV!;X4To6C}$&i_lY=y$B7Fe+#q+gw&((G}PV!BI_sdUa7r7LBH0YQ4%+_ zquxWMl`$3i#N=c@vOHk6-~>G5l}k*i3d!YF$5iVyI5b2=MyE+IeSaLgmKa_RN|$BW zpv}9HlWkz>M)Agjx|F_u9T^%kk=25Bqnr~#rLplK9|bNngU>6K7*-V=h?g82+4x1Kxii@G;{f|H zN!l!5grH@kJPOdYZyD6(i$Z?u;w$%r+I}CltRv(Ntpo`<#R6%;?4d#ktH};sbW=H` z)#819J5T9zmOg|Nl7^L62^(m(Twe%cluW4tu(pQ2b!lGSYXb>K0>8;VW9xBGU6YfO zy>lz@lS^IODkD|XiZN4Rgp}GS8Bv27QS#so8r0g`6DI{(uG)ayA+K4l?}_hZN!orC z?N|ZrLi0&pn`eT0v=Cm2YF{=F`k=DMdSo&DDFw_h>tRr{Y-mVDJ6G}tM1e7apYzM2 zxBARgXh?pCyE^IHzjiKUrsleRCE%98VRe_MuNe_4*ocmIr#Dq;A?wzH26!wagP`W+ zvNlk)%OYfuK!L4BTbau;HUz{88s4xy*@?U7`<19>peCX^wnFdG_u)C>UD(o*Heb2L zrvw#dZ$xR(FC}L28}k>ysRSh!oDzCd3Av0DKlbK8_M!zGI>(IkY9a_lR@xsiFL$CN z*sQSjsCz-(4-@J#P3pB58daA%d5^LK`tFkXh|<2Q^juso6G1fz2N!03@?9bHR^fTxd5i&B^wgn4j-$s)~!tATH^%zkW}9PBJ(U^%<%BwHER=Z+Xzm9zkSd z(@&Ke#zJUbM%%`d(jJm7A5Yys*ViX8A}Aa%f>2VApBC))Dv^ejRm$6s2Pxx6AA3{x zA0|?t^an8L>Zakj$2?DYndlqI`p1!J@B%Z@KE|9M!`E}%O{?y-_n%?1?Bf}RO1u_Wu2WzXq^Eu6OvtE=4Kgo z6*_DS^=n|#Jk!!UTWQfh+CtGvvxM#3x$TNPV2XfR0fX35b21be#duvlP1UF*Lzg3D-azekk|UVo zItt_52pk3%U1;$I+#T{|}TwMYwdN#7Q z5zhJ`K|ry(bf^4ZVKNv=_Bx_JjNO^}*|%6ODRWgW=N~!zE)NCycOy;1d2WBWzctgu z`KF=>h97gaIG(%-RwjuBbkHQPj-5j|g!xg{CX+=hC`iGV^uB zQEB0`GgQq}J)xRk<*N_+B)cHBWuEo9$^)RVz?5D zNPzMs;bVDX4SUE>@fOrr3W>=jgxe;VcIOe0(7Wh(hDHgkJjvmLzWFrFp;cBRO!F9r zJCRFW3!xa;zKu|;0kKD<4|Rh9u@j-c+2huyjJ_Lip)gfvpGg?lal|b~adwZer?^E~F5jTr6W5bm zX1QH||32S&{^rcs&&Xv^At4!|lKVhZH~weg#n5lvrV7#&I2V3Sxu3V*|rKt91qgF~Rj=@xbPu%gG@gp1%$-8E9Hk$^T zmGiGl)XesA5c@bS;ec*N9AK) zTfvA++SuR~V3{m;=M7-hN9$JdiZSV-E)ePE^Ow9NI4%G~=!^@%G6Tn3ms8Db7MuW- z&Te-5+~GNzzIwIuS>hY>$cGu)Z-J<*qZ~~Za@1ZYGBkw{@hUvLCFR#sh6P`Y-OQ90+uF+fl#}k?^pL`%#-4a`G;4*;6_0-A)r5K@9uy z04SJ>xj5h&Kkl42(y;+~-|97tue}VLq;HJC1<=NG7MMw45bsjL^Hjr3IwrZyY%!_W z|Ld>^YACwIvEkAKAeSrwPA<&6S_TH0MMhS#t{k&1p9h6HHdY3=n(QF*(e`uoa!13x ztYA4aX@;D4@g?Xno5lHZPzDKKdT?FfqI(IZZ%lz=2AS;=ZKLH(fFHHJzfVe_|4Hxp zr#bKG``q&^uM;k*aJozqvv0#^K${o-s>HR<#pB zPP{?SL2&C8vDc$I|6AQ@+T!Q~+Qn;yAd<}rN~Ab0q0<4W(ZhzfS?T9PoHv9Wb!nGc zk=hA}V&y;UJ}_XUhOOhPV!p@0(zQ=@!&a#wNjIQA>-d2NWyG0zXbr*j>sKa z2RW}E9u5KLK3HHk`!S1U8B zI^g`RoW6QXTitg1bN)>qxl49dC#wwF9AN{Z1*a+b^PturI~itkU&=@(UTafm?=C&F z<)w^7XcJnIn9#ES3K3(1ew93QmyND1fB3~MSFac7$y2DK;B0D%y2+=JC~5%?Q?BJP zHxM9yc1uZJa!GWKQ0&VMg;_NXdF2hxr|(hVl(I;h_j5=@vLaAHj7@(HD`%uk;tLpq zQ5AzK%)~{Kl3{Fnm8{vJQB?(eR4-4Uv38)kq$>6XFE(E;^|_2yO!w8rw_b7hEkZ^7 zaYu+eBROi-q|zu1`J`^?uu3KKSCz#0?g~}zpT-^s_MC$IV5hk*9+W>b=TpCqCB?N3 zCbE+oz0fB|j-)YmS0$4H==ItcFA(mqGTC}x(ic~2P%`J@|BZpNkK~^(Dp3pUPU|(d;fDG!X%7)- za(~gm1Y4i&aj-Y7y$CEUXN_|JkM!x3z+-Q}%hw}KdwJ5C_FvvmkII+MWzP2B?2@~P zj!fEJz&HXr5JKsWvi|PeE8=2^J**0HJy#4KZ4mz#RY)o~00eayCVZfMsBupGiqjf8m-2(QV~)2F-x#YX{=W_a_I@x4kuY9!SOU z*zoMH86k-qf{kGxu?!B5>(zB=!gsvu*dy{*1#EFE^4KfhP>bXWe)o>BEkB&SNH*V+ z;X5hcc1Pwa=M_g@hPI9MsUdvn6W@FwB=yNxbf z!la9wgS~$HwQNR8cBXa$F>!rat3;q9&#|B?7BmXA+4P~Z?>A1i`f1}0zT_N^!OY+2 z>Qz43wYTLUfpS@67f8vjOf$iKR97r5LrM50K{w4pov0w!xi%nqImkC32E){>*As!h zb1hc0q4>Owm4JB^o8@Oohv;_rJI(6J92)q1rqIAECS^lhf_{}DO0uW z$N}v3b_^embqNU!1ACwRO5kErumSvSAMF&{eb0BY7w}xpEnfEbTW;tGB`!{LvU8*5 zldGptgrdLW&(9sM#r&fa+n3n_W+HK4mVTL{Iv}<9r$vA{Q&l00&_knSLf$iWgtcq2 zrU@xyMEwl}P{fsDEO_<>5dUM(3a!z4{}Uu5_fg_L1thwtV|t4{pPx=yD@}WnHYd8_ zz4vTUvX4MzfvBQIR7oAz7DOteVRfxW_Y$(>b7I-w>UVBe@RzbsORdbyc|h;`s`1v0 z?L$(5{s!h7*{Eis#D-}@n`vLNXy2K z#FD5VlZhp!0G$x!zFSi=tKVbrgK)~PHKVZa;xc;O=2U0-8xZxP(L^4kOqd1x;!W*4 z?$p#5n<9I9e@APeZ0^oV*66*y`YxjoVA0C<-8u`mPHX!*x+s9dW-^RD>~kNmhM7jK zUAoFoH9k?E6tJ}uBw$8fzB~L=TPaODeAA`eo=^Yd|@iOv~X>KDK1kL$q)gnBZ~RR!U{F|o#Sg+qewD1n~~b3F4>K{qeismS_kQrhRIsm z)*b|e=5!e1{9z@69{)`xM2|=F;&2j(t-W*9NDeQGuu{#6-2_bVPLkKN4TJpwGsxmC`tGS-Vr+^XLe0 zUopMp?dGyMN`BK63F(EDo{21rM)W(m*WZhBdiE{nRdf}N2%F0>^y{S)ZIy|+DWDk8 zqu2WfNUQ3B)EZLl5cY49rC(ABhYT($8}3nGEIoI2{?~d;BCxO50@>CL{3Az)tXHN@ z0}E|GUGmMMw>yZ`8~St1bP104su972s<;*x(zgK*W|!9REW&6c`rML1KD1qXalc(? zlECK+{z}Hk_3;bXp;`IGK2xVqweUODbI+;762lht0^u=#6mciHuy68~5TIsxuO_#D zdqs#3daD&T%`MCf6-?NMTkl|3sL6~I{*0d2wc-ez9uYz;yp`j zGC^4ElF_f3qS8P+C1K#iKzmvRnp4;WjIlQ!j2rc<(x@fM92}eZxd{F@Oi5mp! z`^(_;RE+2OAILwAz*a`D$7yrB=|z55$Hkt{A4#?DnW|`3;j$;XHLFm5Ug#_#lzBb! z4F!(POZ41Pnwnb!dZw#{tH?D=gje zxRK*k3js~=arniYv^lN%f8gRCME(aN{J-#U*Mv$y!^9XdDWyyW@LGi&-B!u}|G=Yw zxc{J(#yL1j@8_pBbL7jWSlTh_ndI4H$Vr-`_SK4A=3?$@{7NLFrr+7oeR0;2^etfz2!TZPK!G}fjExaM=O;LE8OxmA4_E)-XN_O+8g zgR>ew)^W^-y;}LKrxC#ACkowN3d>0Z7$LwVKf?wZlHxqdeq1Dc?%0h3OEH@0*K;=e zGmgaMrIofPBhb_CwFY79li%dF@Knigt7F%tio*Uj!=7I~rk$qy*c>J9;+@&tjDV7E z@*tZvY(iI;o_qw?VORNtzNS%q1mXQ5TPk*sr$(jA9)Eqg-qPMpt=$0!*FCH^zD#Ir zgEw*#mpsJG={bj(?pIC`A_C2 zWC9b*Pn<|?l;jwuQW>nyhg5a4URRLazlS9B79aoZ=t?}LV9}FSr>y=XpQR+_`=VGU z(MseOySQ&;QvmVH#1P_+E^RH^u2j)four;h3g%(?=Lxc-#9mY?1wu?8K5}>tobe%l z_%*%u4KEl)22|1Mh?4r8#3@<|=qX4&_{?5{{o<@W1lA;-{fV|CI0=7IvkV(40{ws} zj4BDd_G>|an3pPpU9baNXYzm6r<-7g{j;w#yo;|MOt)|nfBf*FTRRcj`c5Zf4LBbH zdih;h|JCI;`JU%LewfGN=R#e_tkD~K_91lNGpAW*>`#;Gup5)l68q*#`gfrMdj-an zj6R?_c89|pR#+8v;mu{<7CSPM`Lw8_T(1sqEWjX;D!<}NtCeEUf_nCezf(Mb1ZgO8wbEd;5T?w` zdQTiagtqJ9$sr&gvpNwE**{yFhi4s9NcnNYKBYoeCp#9I?3+e2# zCqY@Pl8^Z|$k<=<{g^JZ!uo?g;Rw$bpl1m~VJ0WZG9@lF;nzOfp}1^7sj%{|jaS%F zT)ZlW;gIND=_;Hh8nHe-zF#HSH-HFmB((%Yt_o|UfXs;jhS~GF3{H1li?+dzv$J~k zHwdAIkAD1!yMavBrYKU*KjVN`ejZy9hfJnvoN6w9SThdz84nJbASs21s2A$UJ^Ao} z3hMOvaUH8Eq?1P)tD)p66DhQ^ROHMZ2}j6;aC!^1b25@GQ6{(Wq<|+WafN3(S|}h4 z(UO+9paHEwa{$CS3}P-;ZSt)ui_9s%soo65i9=Nz$K54_06RhRI^8%p;xwJc6|k&Q4Xg(g--LH;;#2t_X7Rq;G-k7nNv?6;(B!;npr03%oB@(t)7ENih?vt zvCV!yV@yx)6ym5qHGUr2U|pa=s~J-GU3n=3l%CNa_j}|E*mhUjCR8-tYsz|DVZ>Yl zM>|{3Lp0A6a7b&ut1VZY=p*NH?B#|WP}y)_t5KOj7GRPmdFP>3NBNHCdmw(dVQpZs z9)~TRj6-VlDhUExvyP=7a+*B6oGxIT@~FjHV(1pYi#z%$ouA~v8&_o&wI=ACSpnYvucLW|{73k1sOTiCpQ(2(y`84zN`#|&*pdE?7RTR_| z3O2z{KR-Q~5OUeZB<{8)=~>9{zqv+wVOMpjdg(wmhR;<>egv-A5t00xBu(nVc<9iKKNZ^ zPEhI|DDh_j-@y1WG$wMFoGm~ES+TK#1ua_lEH9ZGbH zSLsy^Ce|4-uo ztkD-n?4-+H41^K+*&Bq)7MH?bC^22HaVf{%x2ERs<9D-I~E;E?K(35ZSiLL$8XcykY6Y@{&K*)NHC>2eoRYU}$-}^11W>ecr;=v)U(fL zwrh3vkE~OlpC1(shGuh4k9ZwT7M>z!*@?gR{+b0rDO*hD5)1;a|9Td&SeL=fkL6)S z5BKLwO$te!((aqTK9BbTN7qoq?^0ckUmteG6soaJ=jytV z*Hp)sEOSCrp^0B;V}4#@nh^DS)niXL=Q8F+b!If~bIq7h`sWb_!=BEZ*{g{AP} z?~sLdT|JlE$9hB53DNmd?uYv!#-eQk$aMXTUen1}4}WNAszgwbMF zK8RFlfvo=;qqh}N#r4!@CkH=@+oJdnOWpZLm`2)JLEkr8v(QxQ{Rs{h!M(CxV6D@} zwOR+3JC~HYhnqnfB(>lmtq8 z?}H3UOz5eu)poak^3G_dVs~WsbX_n^re9rkk_^K`d~SEz_h%KKa42ohf6&5axpOkf zG7wy+1v|yFT7-R;z5DsgW785-C+ zf^Tn>+vy?>Aa89U84W>C=!AEz6 z{-C}zu!2)|sGhrM)90#Mv;ss8?Onvk5TYAm(1CLat$;%ntp1hARSb;*kbdn?xh%T0 zD0sEz0Bx)utHpwW^a^?|T1vh&)puaTe<)crwPLp|(3Hyxq2XY$#A_%O46YH51WEK6 z*n}$jj_w<3H2oYyG4X_aYl9@z^tJJj(XXzaBhH2H_g-ie7P4e6?#nmVKahjrb0#Wu z-8#Ci6+!Y1o*B z!~nk``hmxW1Az+?k)4QO63fu`u237Lg3Bv;zhw#^>zO79UxUDoyTUJ>L)a%he0M5W zqlgCMtGCulzVS(!(8VP*uKQGxo1r9Z8-l%(4_@%q{V`XgRDe_1AluPhHQx6xtLI|Q z%ek-RPxVhvCdK<#Fj`}v8R}qZDfto9GOYy7#AvK|KV6LI7jZ~&;(Y;xICK$)c{cL7 z6gw!~F&G@e9iL-DRQXee#sa=9uJ`@nlTQjeJ{F;hdM+8(rNm5C{#W?WlBlOt2}xAs zQ;adR*M%o({N1yyD~cb_GprV`BJ6U+zlD?&5K-toKH7q`6pvF2ThUll2QSlR%?);Z zqwPV=66v{2d6|W>9zZrk=|z{~6t6oLz3pn8sOaghB7$P(CQ65rXDiidKTFjZdX?Nfc*U{7dsnGQ!~*eD>e889~5 zu7P@=o{2L+RhBc-+}*tztcGGq;vr2_RK&81D+X zzx5b(qiO`pm(5=$yJYr*KL_fvcb&3|aOND%WEr?5Lpcr&r6%Gg|m+L<#)qk19j? zSMxoh$ z!wk5z4(LM{8f5`OfJr#Q`>sfk18*<6qYT&gowohO?N$z>E`Dq6kVx?atQi`VU>6eB ze<{JHr|v=Y#TP-NedA0VIU~R)IXx_4ip?!UgKivARM5XtVkV6^<#4D|2paucAK>B6 zjqHi07sR3O5;q^1vujr@OJx_A@Sw*MeK^Qx<0TiCca7$#m@FGBfi$Cv{&`{gn#y;v zSp1cNRfN#rn?t>ypM6W>elFUL2n)WWS{;WSKIsBBc5<7d#%o@^73j)a(e+EFleBnP zHSHaD;CzaQ`I)2((cU!~u)v0}U`Y7`^ zkp_F*5|70ctL%BYqP!RmoFDVDOuu$*rG|YvEju2ti1+Hd`Mo@GLq#NEBB+1%JnXNH z*=AhN3gg<}X;$99>H0$A*IHrc>R+q?54sp=mPL;iItYz?Hr3Oe3X+Ln8u{ccKsqIR z$w`XwQj6jRfy2O3T~4`9V^15vuA+@naL|(rp&JA8^)`6m2?cc@r7UbbJQRv=; zScFpfm%ceX*=>A9(%1tt;e4b0Oh2My)3w#}@;x90e-%C|aOgI&3iq@G%tiMh!nP6$ z3$+R24r+XR3O%3Dv&b}U{T6&AaG@rs7`ysH2CJm?i11g;v*|FG^QSAV#oms>u2D3S z3TRXekc>>6FDQW+kV**Jdud2S2hm3_=J4ZU6AAf#6iE1~~yM(>_RHZ)Ye zyD|hiEFXq5Gtb?10!4~i8z4=y@ddkL1I`ua!e~Gh!-a!co(zAwllQ)Gb4&pXxl~hR zy0}Z0yCZ2hRs-)}XLwMxXW4RzHUtBFc*HHPp4Lyw;B5_G`&yAL5MhmL^vQ9>M|bsm zVym}6(81;0xM~d^RjT`)yDrY5PX-BJFy_-OwDsG3`lk+3zN~oQihjYc{R426+ndek z^K|C94RPkVh*iA?bqIRgrn~P~bHaBmJAjdCM-um|iN1v)&Z_CrQ#T@e_v4;wZ|~wo zXAxBNEDsQVt@l^4_YCM$e1BKdV{EiVU(`yLOi^#hpjz?| z)$X%Ro1*PMkQQmGpDF5f9j@{vRdxsg5fkKbO#dG5URF3y-$wS6T*e-S+m{{%KA@x^ zr(b=n*Zhs273I0Y>sqDrc$P@FytH7D)sLI(thk3qCvY(1pa`^&wN~333wjy36#u>^ z6r9lVo3ZJQ<)&XtWf;{rU&`$8K2=A=XkXXX=L1)=-@kTjBmLH&*Gc#ZAL2?+w7lL@ zh4}upS{l-N>x(-WZg{?Jw%!bs&dS51Y=iV^`!Ki_?dlg^g}$w5@*1V1z2o{fB%0B* zvLro(|He{@k!EsJx~1d`>QuUO`SffT2zDR zndn1^cn*~6H4#~5a?f2BF3VMIWK>SqW1@NRbY04|s8Yh_9)TgzUNi|^PtR@6b{|8` z>ar((y7BpB>rXfIaMpT)LZca>Y32c#1!+eFQ6tE}%G{tf=|i7=;MSmF@3$O(ho zFv|NVz>6&f935^bWQq#M6YMrGXMg`-JmirBZGt=Ur+6m-inauPYA>C-&AhUw;f75x zKy^G+OY_C9^&(ZU;rq)jYglo?8T0K6#1Lhfo!HoQVTBBmfYFu*T;b)* zpok^#8Uu8qh)u%oRp6Ca7ulfsr2Iz%zO*PC^sQ#ADtP9$e>a!sR5QQ=5Mb(gVS%tf zKC%|(!HDee7pceU!z+9_l6?|$4G4Q#F zj#d+2F;0V!B9l#hX)2<5YDZ7~X!zUT^9m*Qm(&J{S>w@PT-!lD_UrT)&lxpHbQ*ZI zyY_k02TSgM*D1)>@k<`y%GNI+yLc>QQ4uA>-LtlX5jEYlz$7^gPc@;iS`06-+&UMc z-E&8lu;i719vnD->f950d>dG01#sHW$M4T~|4SjzwIMd;6)SD#fbzX{NAjmNR@=;( zr0BPvybj*7D8ByqcYZ4x=e zJxq4`^`dlsa>cEBBiJ+DYPmI~CrICFcqgrR74BoJHlecw-l=)j{)hTokGzeT7zOej zEj`Pl&*kfxKElS+ywFtcX!7*ZD>EoYJX$v(GG z(I4J-AAi~Yp4Oz5q8OLCA%Iq%XfN>yk(F6No-7ovGC)@|<^9ke`?n|AN7oPWUICzL z{1TB2mn`3o&xLvsHU=m5m`iT{T+Z5w=78B;l0Qm1dM=3v&XFy^Xt6jk+zgKOrqTCG z@tqJU$r7)qM|HlR2j{beBj)7=wES|DKRcCQ7XhJ z>V2w#GeRI8rGObK&wX+RwWiH;}#Z&MlX z{$MHI+Zp#yy+a)EKQu+d<#|5ZRfV>-fla!ze^6I*r>7YsW6zP@PW*5o_suNrufM+hmS>7tLMw#eViGK+ybISz`>Hpp1`Ii zB0n*x&Tj9vB$2DlW@yR(7DB5^Uug)Z&C_f1wnq7`3JgeXo`%w9Ldvm4pJLKqKIe<` z7)I*?N&|N#btw(GDiw}h?C!3}G$nw!Z;vR{Y^Gn8{u8!^bCyUXUZW`_J3nwn40N?%w5LiOQ(p=t-ue1`7jD`^ z%XM%nz8F}F&tURhA1B;G8|)4H__0=fr+f(?JxIFaQ={yFNIm7sn?1CY0C(qtIoHtb zyYZ7E7_hQtrqfv9&Wi_*p5BxD>0K+;^~DHK{10t`Ml>%{hqwgX+=Oe z@JXg_f1q3>8<@|Q<}{MeldVkjfZS6vY@)aBDtG&SG%96u?ZK%tvlqYB_O>NWYTgRR zzqMLBLodnFqut5i#)kd;6tDMrLT%oSJ-fZ`pAHbNsrjg5)<4b~w)HtqQVF@}gv=$<@%hl{!(ZugB(UB%=t=XJ?DzP1X&FxH zlI62AB`Pi^%3D3;HY`8)86+5TAx2JE(^;wAyU+juo;Ml^utR4SWNcyLU8>%qe*2@7 zG(;y*E!+wq5|XQeHdQs`t(A7$@6l&IYja6REXU%gXTGk{kG`ua<*Xg?O3r{cbDNhh zo?41AjJTD%b({*iPsjaWWtfH=?NJunOs|vECH#5GC34WXIX*SZLepT>Y5aEifVLDH z6S|$a=3^Fkh;|6N*l+cN1+-Usfe-1bNav@`kpl;@_r0bcIUFYQSo0qE*`&VDM!B|X z+pATR_5mnPgw4c8>Lrosbkaz~do>{yxR`P41M|9P8k~dg+Eym zHgrBnEuYjzo~6R>y&HJYT%ugn2-n4;R`4t{RCZC=iFE3LStv}4wsC2T;&LDi{Q@2- zU0MP)yJC=UA9d(*pV;}XPkQ>#M5U(85v|G;PxhcedyD>Su|y!jKCM(~V3NhO**TQ^ z-Jf6y7b(?N;DI)Yi9n`s)783L<3v+uaH`+h_|5v{#f_=Nabknm)qsgmcY*9thRF;u zscyCZXs`oF<~!a`YH$&QCN2-f27!cQFt|Q z^e_<27~KbS2x$8K|ElPta72RB{_s39{iJn2L!o%Dt6g8bab4orR|;(sSBOGS4>D}# zF5D%(J^Ur(iNvRR>?DpCn7*va^m|&q^ftS7x1-++-e#*q7sQbvLu7rlcwudfYVG2PqprKi`R&3_L-Cj1-c)gq=I08t7*KFXi5G7e_Uetu*MogpLtx zK{g1>w~TnW@}PQ$6g`UJkrec6BV?j1zVGS1Pg6|JGHuq*K3@#jAqTc)=n0cr9_n~v z7m@`L`K_`ili)55i!9;HyIIskZ;C({L>NLVf;7A&PlX4SjB3 z)!ce2Zr--`xZ(TO2S8+nzePNJj)J`ZME zx#F6m%)me-YdlZ=j*;FF&Tt@jizK%vU?!1QY+y6&mH9??T(;y*2c_+NtUsCm4bDA= z{Ul7-Mgh%~npWL9W2TvrPB(`~H;-Sv_>;3ueeZq4{H0&mbli|$LC~G~_F~q><7h^w zE<;{$C*5iA^}wrDNXSxs$$|B%hQc`)0ebt7jAU$9L2MlK)j!y-CDD&j(xszZ;+G(8Ft%2`;TbFNPLZ4Y2_0Y&M>K-$Glv^(3B({Iu3N>oVaeVJ-uIm#6 zq5ZQ9N=`GGM!#GI6Q$3sPhk-Vj{9DUA}&3P|7Lh&6VY9bieyNQQsl@?czk+vZP-dM zvJp@Js9b0?MQ;=ts2h*`DN^Wq`AG7HS&tFzq?EJ)V4^)tErLI74E+9V;HK0ic^8mj zB@4XQjK6%#AO02n(eS$i5jT#1Vr2fS3EFHeKWCBR)5tQ*UoRVYZkJFxIiwCF9LCdu z<~hyx#$k9f(8PUZL&2;&3^VCyq2_@z`H81agSveN2PCwl-TVB($?*I~Z($U>imNvb z)R;WiGtS>BU*hIy4BuNhVRmts&nN%>E1Av~O&wH(2{Kt0W#OU#Pvcbl0#>v+39^GM zfPoc;1!)>N;bDC@m`p6J+D%V0H(%XaAXv+4*cQWR+Oj`1l>&=jdY-Nd5h6q2;Ek&iGR``P zS`p{M3zzjK?nSMo;~Cmp@1@WaAS=T}1%3a~J22Nz9JQ#mR;KJveLl{r!VoYO9cqPx2 z(SARBfww(-buu2;QN>ckW~b6f#AAmb#Y0v7cspm4n*}{j;UUF{(@MxXc6I{H13R@X z3MXwWO=pm3%XV^hv~GC`l{RU7HY8+yjA%9;81zCGQsGk+)JIM^;Y z<#Y;l*$d`=EGoFjXcKyK)ate}XACa-Y4J4cW@f=HR?2Jesh`-CX!Vz^1>hz6r%X|q zZIsk;mQTIiLnE~|4H*r>-ST@BRv})z;xWsCv_XGUu}_=;el)l|vjv@c?O;JHTcGeJ z(1*c+iE9%mKK-gMsdh!#W4p_N)+gvUn-)pjK-UAq#qejmz1G1D=SfLc^Ti*OZ+OncdZv(HZWcG{!FMEF7f#NJTRg(-ZgX7SA5b-q8?QQ?fV0Y zV48XdLrM7jDHFCS*aRBoNcqZPRPOiQ+ZyeLAK z8X=jbM4GTMZehfDle||h(*I{UrQTS;Afm~CB6<*U75#K%Ez>6l693<#(IP}Nwgy2C zL@b^7G1aAfwQ4%XNehF$$FO0}jkOn3P0D}UsNF-KP7R(yK9$}uF}`QB7h@^O?X)S2E84&BENSDpSwDEN z#m0+yyXMDx`(X4sdKnH>JP8(q?|d@(kRElvKJ$oQZGUzaEXnS-?xj$NAs_O8G4&Qe zaXe4hFq+`*5`r8Ax8QCeaJah#cPF?93wFTa?(Xg$T!Mw*hr7GHm*4;W-umjQuIhGo zrf0hQd3tBBx96;XVG!`FK=jY^A9??|2&8QD|L-IPO#k8kA0NO#385uqj~D7N{~#U= z3=saO*}Crm!ZB~&cjrGgt5?T@(*C))YX4LEbuI*K&c8iMHzwuH$ z@`CziHu3WlWS*^kGF!Jl$uGaJB^B~&TK*(|Y-DM$WPU;=Z=nDDQ02n$r=ki z$?RrYjI%308yNB>@1M_10@{|D%psw6roNn!rQ;e`Q;PbS=~d)^d}x5_De+={{gyXpwaTP-8V3X$cyhIpy_w_yVKMf z#_fIUNeYjCZh`+Os0XkEHQ@invoBc=w0kH^hx7oho%SLBtnjn^$N%^k3f_O9hWQWq z{}0@$@c)Ce1Vz|c87x%n6|-VPZCv%Q*R1!+qM`qf&HvXLGzkB{UZ7&({`J-arG1i% zi*#uWvf=2Rwt^XQQS7#8lolF4c>IqBRX`;f|Fk?eYnQ@Vx7Yfg0ECt|PJ` z)!D=W=*ffB+fHl|8X^C&C(i3}_dF?@7cbPbkTDF0vkvpITy;v*B zL`v{O4i?MzTCLQ=%|~fe4@h(sH=BV-7hY+?a(F5Jk4Ve%K}Q+r>ax3fP}h#4wE$v= zRN#{DU*eT$f2nL5M1_(}2L2Is;{i-z^{#Dk3!ND4zv;}ko77yy=PyNHZ05$F6iQKk z`KxzG={XeoVBS)|=H=(t)g0@-3t}R{22HM}MSjF%64Dx+N`{xvNg1=k)&reHahH2G zmiO}v02((p&$B zi-rbMvJXZj7uxktU3H}3GQ~(BYQElF2lQ|HDQ|riE0!unQbPZ9*m^*XWJdLf%Yn;V zT6Lk`Y-_2v34zMFoTJPK7yK6qi&M{-+s&(`tE>u43W3kM?4{E!#m>m-b*>i3Jo#Nh zgc#>v^*u1)sn&1br*@T(V2o|I9X*Lq$o*t3w+SA`{>izYsh3zBDQ7RK!itEuU3hEzvbx=iI$R}C0D3R0KS_D#fa-NR4j2>}Rn>(J z{lY;<=pt0|ENCb$rDJ8Di>+`fWhJ`nV|MvV%j*|}no<-cH)vw;>WU2aqm^+EY^cWK z25334z_QM_CkpFl6U(&5wlciS@A6F(amW?eukvYBOlCt-4`hz5FUH&w{9vZvSG0k{ z(b~nBj8(%9;1kvuZ)yja_{e7gv%Sl^ZZTR-R|MkNv8IvU_y#%(zL99Xx@L_-Vr1SQ zeINfE3{-5x@t$ZZc|*L(=e%O|^_trI^C~)Z^FE}s{LhISBDuM8Y)a$i=)k?Wy?aVJ z#^DX8I~{`oJ!a{>i4m45=P$^sKA%oPnWgYD-AkiD?u1qS;pUP0{!>c}FBhH)Ke^~(7%BFE99ghOIIEd(qOstw#nXw@@mwJyYe=i&F z$XI*R5U&FU@Om#mbnL3ccLRgLwZYRBCxnOBL3*HeZv$g=#wYB|pU0);$Y!`?+Z1w}8jq4%&JRbS=9 z$7IKj5TtJrACJSnosDpbm?;ZO8NJ%e+&2t+y{MxX@cKd(zeA6X`js^~ z1I^bll*Li-$K)KAOTpx=Ut!F~bxITn~ZTXtY71FhwG`cr2lG zFo%_ypo%uM1PMg2>s<3r?}PMXz`Ka)p)YJ5A086-Tp|Y9hwNT{^)8yyNVypk%-~zX zHek8ohseA9)>V>mW>H??ZP%q5THJ2EZspmvIr|>XNkE3Z0TQI5)97`%#)OdeLGwoV zv|In=J4eXzaqP)7J_6XzB>9DHSFiZQBKSy{Vlek>!e2v=5_SOME&lPv*VWMsFACdg zy5RvCE!Sf&0@-b0B90@?-Re=oQOUAC8kBXf4je12^Wv6 zVH*u~K|Zg;W@2if2>uo(F6_v)Apylw7>6gxHVX%S8B2%hc! zg?h~@P4Rt=j~DNB$7F|<-?`Y+!gJSJrqvW@8z=WzPczXWg8iogOHSWc2K2?(zZ19J z$}E+EC9a74D3lCA1!hyJWPJ;~DLxW4eSlx6juB-PYC2i;?yomoF`EbZHxW=Ar1g5+XhEO_3Lv~QZ+r4;J6@r~rnp3VVs!bw1ip&0ob^h^$$LqVZ z;|5e8nj94m32AQ<1IZ(1o1X()3I_TWurceYw~QMqOQfJazVo(|%j}ZKHQ7fG?$!=m zDlbnea?w}L3i3&^PN()lr3?P@wXjr>c+cm={Cjb-?A|Xn@$krx#>OmR?%d5L)x|#v z>9w4ZFN5^zDh*ThvTGtw~%@Mo@=H%>=)`SD>tO-fRmfi zN*752)y*_ibNW){>6Gy9APv))FHDqh~gh7LQnjYPzuLXHIbCDX_$UGyYkqDpf}%z)P9T$LQMXsxCw$+@9t;8 z%#Qg1o%eQ@BfW`YiXBRzHd+@0LtbUmi$0eb1zq635R;LQ?eJ%DtFmdadl*)Epg@5& zVf&8v!f^KI+vNP2;)PAd`nfmRaWE|_;agJqdIHV>aBG6VA>!q(@veR7k2wnG=^bw- z%wL*45GVDa%EK|6@R_fZ%*6QfZ|4(PxivpWnGV2OJoIjd*>|@`xOhOX?!6Uei==$% z{Hz6Kq28r{>L`FdxnRmtuGKUw(OJg2@x|ZWbrdihPrn1QgaV3r2UMT|Y^B)&;o(Cs z)Vrj3sj7r{;jqZ8HzoxDx5mLb%)8CL-o1bW0nsDnRb7#nc;Ku@fZt1B$$iB9A@Uk* znvUJu9>D5x=YflvsM~;idcob*_mM^7Mb74)_Hd9hMdT*u;m2*t`aZRfz&+)5{%0_Znu zd9(Sad*FX@ujS%-H8e$}@F!1i3pN=@+MbZFyv=GExcZ&&VG{7iNti4K*9rJpxkiuk z2e3?`An|zC*i|}KV@bxh*8lQ=kXS-l|fGIK(ajgu0&j=^W^@xy9Xr9(A3xQ{Osm6MoZdNeyX zZ(91`a_&!}tWo2f_0u2#?~(ZK(2bhRWyaBUh+R)yh2Dx?F9>fKFkG;u8fsemRYLDr z{m?+s8M)X$9(WjCt(x2v7qwXues~g9ZcN6YcPvLSm;*P=t2XWK>wlT_Uklfx6M^PW z%7NDoxm&CMY==%Xc;qm|1C2^53%rmI@<^YK@;_0r3^_-L7I$tV4_qwu*UG*Z=$~(W zC7}~=AAZj2fg`sCmpMn2$Qeg}i*=hfWm(`=iwtQ`%iFh5v*{>NF6>WfmF&1LhA2O_ zc@9+)x9INRP-eACwy6hF_^CeU`$zN4;sw{c#RDRLy$Z)lA)=PfwCgMoq1Z@#z`0IcrYtS}RjjD7qKF`uKoKB;&WG1V! zDomJRRG+~-6B4*|Vul!3Grh90io)P?@$2urb?N+VBCss$+r|ygw<+3;J$SvK3dLVI z4!`~+0qw8hVA%z_O6R7o`|84yPjmP|fR^o%XSs%RWPqTev;kSNkwKnsuSF=ZBTM6^ zA}5bxn8!RR1jzOLmsc0W5-va$uNylEowe zgT^WL298q0^d4Ocg$!5AD`I|7B-f!GZsowLR0GmPl1IJ*K0eb2&vqT=#^o$$&YKo~4NdE)1|t}u#Qx_9lOF!z~9Z_ck^v;RMs_celidB1%@BV?TII*(7t| ztJOHtm3&g{wgE~-U;dIF+}ZfrfRh~av4p^qc1}sTcPqZRd|sve1dxm*IZNTBw#W<9 z1Xz#Dca)LqD9D4}oiYSO!P|$9!?zAOiK0Km_}p1ulf0*D{Dy^st+Z2KJPA}nX?u@f z`M6h<_hSRc?;>_15-w7U_tS)0E5epK3o)OR@DZov%14It(rcrn=YV|jU=+6kc_xvTlJb-t9wp^ErtNYCT>!i@srK0rFp_DA1R)!ayecDf26 z7WJ*p$$nV+Qn}0}9!q?!CUHs55yk?$4pB0m;4$*LC2LeEAqz6Yqtmk~vEeW&7m8%E zI<|Kb>#Jv(PoQX`D7$B~8iYt4dl2OUyH>M!4d2jFNm(q*a#8W^y7RVRCNp~>%BlY5 z2jyz5U^~VaY+YczW2=S|Wq!Exh`g9sdm#BZo7x%`WMheJsVflpacpl;&gh?*VmOZ8ijP&{ zK#ISmtC=J(b(aLg5EOYyP~_X7oIi24O^<@TbWaogY`lK1OnC;j{^d-nMpLU}-RS#@ zA(V5UhV1B{6e8+)xekGWtA>`>I%kN`{3N4l-FOd;=5=aZ=uF-Q0CFmr`eZ#70ijL# zAB$gy36Xec6-wt-SRUk&ZBRA+lgdPlB`ic*3p%wRW(C#pDEUeH&my;z0gZMvQ4k78 zkvPh5GGR~o_O9uMF%v$E<9gC965J-*&tbXjlO}Xk6XG}lsLhGnkqa`SGE8wbA@nQH z(hvpT-*U(N`-j&;CDt+|6Z>xoYaOY|UkuYz)bjb>|H>LLH8tG^{z{IEk7u3v%PaP! zEZ*9Q_yP2u+l%2V*Ck*ZNCHhIIPk=s|8h|H?~qEgkBsva>LlgvuKLCXexur=2d3QZ z+ot-GVP>j>^%;X>`Vb-V)Kv2dcjFUhzcsprIto3jMdGPZtWMWpv|9T5*T&&9AW6R0 zt*=N+ zZ})v=Mo&rQqEzx+Y-l+QqF$boO1Fc)I%{+t37pAShPjp4n*B(ARi3hA@JZ4W%C&xgzdAEFDdge3SuGpYq~G3lR_jW*JZa8m z9p_=0htAb5q6-!!V*^cd>HQ(?*K?=KNV485 z>LYB8lzN!De(kkrRTypdB*@T=M$AUp7A>3jR++fjrz`UDb=`Cur6g7>_be8ibnJ@Cm*Fr==ivyi(m4wWBadT zzCd6g56+GSlGoRqA)ebzL z_V@Kyb|KQ{aNMOv8)d|b=M&Ktb)(7evyA>C4UhM=9n1Jb3>$zyw#TL~=NLPMC59E= zl7HdwceRiuRWnh{9>0H)%0^MKGoYUT(8?Nbm+`7On0e$avH5-T4>h?^bHQcOyYC+f z$yu!~ht9R9+oH~DXdnv4X)UVk+jNmWotEfPWFIu3{-y>^^WI+2b_~?md;|sqZJYUn z8@3rklQOmCpER9t<*)GN=35f3=7%yFr?TX4!suy7HNRL*+6f$Vgm~)$9VYJnCn)6hOFu%r?-F1NJ;mLuOuCnBm3}UDq;dMT_EU{|eyeUL78uSd zgkP{+@uh1!%wZvUY4{K8+0v~?GUQ*=#(Uop%r_CkyzFk%t8q*gSY|0a^>vyaBKxOXEQ)z_|T@<63K}W|Y3pFF6(l2F$g=v0dd+8T|#|NO% zj`lr=|Cu8Zh&3U-yzgW1TEi@_($}K%P&)I{z69B+*o-Ugn4tEsW^;PVRzVQmiQLtM z`%+}zqI(gCm=1xm0_UEVvEYsSIf(~wfDrXTjjb2TG0gAg!E`J$Q-(p^9xbsB&}R}h z5?gh}_g?K-!8U(Y@9VxM_ChSL!m-UrxzG555O3kgKC=dpe3m8<|3*fC56vBzy8kh* zP={iO5s@lamL@lFIgo@vxsYEVsPsYlWRs2$3ZW>eMnEL+`YQReedW`=d*8QkE(*ir zejKLPq$Ingh-<9RV+3);NV)Cd#?&LwdqUzTuGJqm9($Wn&PEm?>dtEzG5!fM#D;$^ zr~av4u#7p16*}a)S)(!UqsXkiS8o+fJo89_+;s|UGh#v6-&aCId<7S})RE8!4Fm^g zF#`BwL8&_G8?uhr9+F2;za|K_j?F*A|87BiHD&+T#E2z*{w|E(CsdEYkj~p;C3RTA zn4@%KELPGhiIt>DCxH&v%5$Bc)JW~A|DV!W=D`EWmV2zm0%?OL|8TtqU_fFzB`FqQ z-oHQ9NRhE^du0=LEuv~|Wl*zy@5AV`ajN?B)9?YA2AUs58SUgnm|$s#s>i$&|3CEr z8vz%9mZ)j^Nn&&RB{!~B58ZH$Vi)g}xHyUmD7;m4F7;mI%jNki7DvL_qtESY z+|(#1P(83s?0nEpS$VyU3W~fGHCt};PU ztMgnI&-#E74LxO2XGVfs^k8MFL7{R&%6$n~kC{;wgPx`|1hra?Bwd!^`F_%=FbK2f zCqY5djWV6R506zHb11f~UHY%jb_9ML_lX_PWT}cVlu{08gaunpka1Q(w1!L+xXOmJerH zJ^GHZ(Bp2zk7_DU1iG8s`7!cp2c`kSqD{vCW~wZYo6NNN3@{w_c&VX(h$-9BONQrE zL3!x8r^p@?FfMdSpG13L8Q~eU7gj?&JuMl)iCJZE4}W|wM$H+IkbExnFT_u*q*CzC ztAnriXQg+R9G7I$e{AcbO2VYAv}0rx#jmuZtlX8X)2=s~v+`fSCHzMdLSU$2z4M9h zg8C(jbw?X%e~X{YT2f>UgjN9omyk zLcy%ce^Gt(9@~@p$Igv$-69WOSHi43H@%OlqVqq{#9EUW)=6F^)9@I$JM3*oHJT5g zF^qB_>jYge$7UTp0`-p7$u-bN5kmF0bG8$9_Anq`S`xtl-y@ zyGn}QnZOj|byx37{U1R{b49ai$2mbTPqHDEUQ?7Sno$8i7R zmit|MDj8Bcw{X2SEj6EX%m)sXtiNLRmd8z3>k40h##?5L`41B-GcFfNxocq?8H}B2 zDZA+9%<%dYx8!7zZs3RMx2QId_fO103@_|e)+aX~t9lHNu z^!vJ#W#So7D)IC8!_`F+{t)aLsIF+};1Esg(}Tj$L4(f)MnI}5i%{VS=3m=-r?&J! zPfg7??}X5~krx=BRR$I!?1LfF?n#$wktb+Aalf-ew7mPbUHcxMKcp2eZc?{l|JTER zJOJ5b@%b_DUgHqE9af5p00CeuPa>fa!NxJtZjv7tz5+cXIilULCGkEUM7*6>TX?LTi?V7|S< zfYG#c5E;wbKvLTu6$NE5tP-D4wMMSi<7At7{)ob_ zEF@p|GwfQ;oR2ZA2A}(p6%dn58hctGH|um)4m~+}vAvdWXnbQfX5Q>ZvFEbqS^&*A zHJ-ao&AisnzlI7C)Uq$O5!s9!u`l5K?<10YI>V%-?F)kMG6>SlEV4$#&{qvw%m&wh z*%n`Q8c((_lc(*6*0Y1pLUh%ftfzTy8w7l|>6_86f ztcKTi!4#&we;9;^8p5)`fgbOz=CijkSkK*6X9DAW{Wa4Z?LUU9bMfKB&9RS~>EbzFg&=kG&BDWvJDt@sjB%JQk!Mdk*7 z_BTF#qgq@lORp!+I>~^jOrUZpjlJg5*8pkCr@`(PU!j?FsTV34K&t?Qyyl9XY2R~tg2FO%68 zF}9X5nE6_t0qf5P`aalQt;F<2JLqn>C`cb0C^iGEtJJnDq+1$3=kW4C1To8=V z)nM@pHq`0fWg&l0-YEDOPM44^q^fD>mwPRgpNcd`-UoDhd@%3{_6ZH~&4QZq{=H*# zt9ztQ9d$8+z4(5RgF=5#Tk1F&w`4TtoUKS#KG^_4mzlb*k|iiHyc)6mu`Du5IjoMtkVgS!Vo?3*ajFI(l?JgUcR1mhXb8_N1)mqtUjLu~SA7oK5Er+YJt-nXjEdk-BY1>|M$Dpyk$9tb>r zsI@_cr}@ zG|(>7`hI-|Z}DIhu@+u%0Ti zj8u{F>aY5Z-G!7MWCd@iQ{3NcIaZ`asPJvZqKxW9PYi>k9Y4)>6KE4a=Iz_$wn^d= zot-NJ+9bk8->dN@az3%KLKcyj(j%<`vvtw)Rsalvz!V#ad7Po-MJFxb_iVO3G9xI~ z`Q%B(yEKQA8$%ik`~}=6VHZGTEAS_O!~Q;QpO}y9^y$n7+6b~7fV#IIu~i@M(p0yk z&gVaL#O4a zY>x_VLzkJZ0+4y^)AGYjjs6`0jh0`Rcspe+qpZGlW=aU{khYpY%cNOgzU&swQQ!$n{k5C^7Ujkru^{7_Qe9NwrcWbePL%ZU zmX7fJdM4;xflfv?^fuG=vG z+4$4`^yM}p(JQ?OJY9PNRl4qEpv&em$&@99A#5w2JTtrW(E#n|Tz=oi8U?fm1sie; zi&va0Gcl-$9D**j_z8OB8d_EWuQ^%dRXniXxDVm)20il(CkZY?FX7v!LqoKxMRreC zNlY@4T(&dReDc7_5F2w@RVj~BunzF2o)#T&B@9p)K(X`KgVC% zIKW@8aBjv{tNB~=8mjy}0z8^}K0s3yv^t7<{5qM(u5&YZUnv43At$G!pKr1g$lc5q zgOXBK^1lxCp{6zeB1n6Yzqo({Dc~E6fra~>+hh~w&T`bA@ zVYe-OmPEn`U;yickEt5PmTInOjr?+-{?|!m(4f0rwrdfQ_6ea9OQi?FpL7wyQoxw` zz+|t#5!vr&>A+tlCj>s1p+>M4-F;wxL&&IhT}39*B|5eL$Y5;t2WZJwsQbVz9yqox z>?ST56iXytw}M(%42o5OXEMyatrI7=Y3H3Rpa0OonYAG>SSe`h{_~TiKaLX>j24Nt z2*Y2Cwuh``PE2j&wPc1JPX-%9vU9UbO2#H9^OrLk3-Z|)-L+Uev(Ih%cv2%IW$s$c zGddFg3z#4+Ikh33%d~U(ays-_n}rdPu_cej)@gm*GPeeq{+Y}2*DrZ83mz^`QCSXe^EqsnNhBi9PG`=|I` z?<;gml$XrXu8vQ;gd08%3G-neu2dcVikbQ8L4=dF(|*Lj!tXG8j*O~H&_*mPbE#BT zEPUl+UNbadA#A$2g?X*gryQ7OgSbY%Ugq+~R)_49V}_`iEPZDfNT0y#B9c~pcg6SQ z_q_GMdni0-XiDM#fK~iE7*5*|`REbtS)KX1nOWk=hnPsOEVtzkFPl;TqgAc*yd!_J zp~pDRf6^Met(96oJf>Qo_^$rxcK5$;r_Wk_%+uL$=sI9WNaXY@3;Fg|W%K33(}dxg zG2;1MQiuXP59s{e^Um4Uy!Z8D_f%pam;vcKnIjG$o92Fum6|uii30pPIqM>F*KTyjKN%@AhlstPb@&Lm~h{%(CyTYnT!#Pe%!ig&?La zjy15E%VZT(@yNz+;s%K@)1)}s{wh)EsIFr+vR|N0p&(shuNACtL##FRSq(+AP#vr_ z!EapKX6)hGBRsE6uZRE7(qIX1nk455e2&*@87qN$FF9-jpe9J?6jRajW6Z5-@vx+rkB3AC_s%!7=YdUCyJ#z)=l>Kb)&Q0K8J0% zSGn}#ktwo&vbg!19EXDo7G|~U<85!t%kaa5=%b7yOC8O7Fczvxq6XTs?ayy=lT*?k zd^@$!kiTVOO8yv#H-|}A?UQu*XloHh5RAPMH@VE|fA>{_h4W-bdon2F9nG)haX|Lz z2e}bML-5LO!0d;p67f)YBck`5hKd$KRPtf^TxDex<6V|a%Hmc6zSgZQdgYD1S|(Z6 zQ$sjabxu#OjMu|QoK+>CX+4q&I;rv{SZ6lAWgN>m_;41sQ^%eay`a*6weETWovi6a zJBuj4g!oIOaAr^)O=q#D&pmqxDeXTnx~$&b@?gr9PYsRnB&&nB57{k? zkf|g{q5_Jpdsw`rGtvzjaB$4SF?biK3C}J+d+}Tn0hOezH-&7I{iTt9xsXR*D&N9^8muXW+Z5b$`rvE67N!S?uzyXt`9@&X}43#-K8zcC+-n)egJT z{`LR>p^p2TOJo-s%FRQeYj$!+`y7z2q-@aN(| zt(e2~9XyINp0rA5X-lQoUcJ}{J7+;@zImmfce~-wrbUd(%%qYRN3HbtM8GeCb_e{| z+Cu~st*-R=b?<$hd;1t*7`=@sl}+qrMfb%w8y!uy6|ZkD+F!@70LeJ3m|zEw`){$~ zbSM=w37C1D;ExJvmZi#L;Q;MOloj>4{_`Xf^jM~qIW~^lDU}kl-q`|FlH%4+;``i^ z^aDkEbv>+<;!N8|UJ({s*uZDFV0iJU+J4^oV79y<5;jg@d=ssp2b|-&0aN$W{#JfD z=sP!BaEO%X+^J}$y}?0-{c6PMR5E#YX8SQFh__MXd7e9*l`22(iH|&dSjEsKYV|zq9 zj8nnVQk$3k9fRu!X33AiH5e0hf$&;xsy^PKiZ4EZE1qU{hN18(BO61vOwY2Z>3k;TOau#q1F= z9*{3M-P;Qr<|OBMK^6$8Ap#q96;!ywChj^!M@GLZ?+-y-y=0FG(SIPRpe6p5=HZj| zWMBiwmC|?B7nMa&6LJ_xs$zSwU&xe;e#k9*$T{SuECeIww&f#}odMM17#+Sly!q** zVKj13o$rGNG}1;{-I|=#_&j9X)M@384b9&qtR|`8E0gOa1C=KyWNRdq ziGX;aS}OcoekKt(MANxS6`vTEu|!hxUGyomSAFOK%oG1{e5rx(DbdWd-}KbN>=#U!-LAhOnszzFl;8PV}w05L1{6qryPsu(jcM1K`%7 z)#~ep20wumxDZmQ>q2yUK;XJI_3}}QdYUnzz#(uBmqVX64h$KS7;90{OIBqMYX&6Qn;!^pw`jr6;f z#a0u3)`yg~_TW4lN1ME;vfX**p3Qm3FSrOEWdQ8T_4pq;Zci&}q;MG*HAys?1o<;q zkwF!u>ZP&dX7PZ}x&>Yei53CBO6KN7Ie#x&CS^G0b6*Cn9e;MZ)$uDgpRE3JJ=kn+ z_)Y%)h0G>Ch*M`683(~_zhLflGg&_#pp~5Ysv6~2{zFO+Oz^qZG=-qq>{Yjs78F?F zd;fQ>FRf;LA*7uE2c3yWr!)XSx{a$triBEy&x)(HpvwqFic&vmDMb3wfr5>3tc zQqiscyMOO#Gp$DGjUQ{6R|~gmKU<0kc`-x+Tq5!8_O8O&@1!@G(iVv+x2(PVu7RQo z@@eJXq4-iZLgUYctHh8oDgaMIt?YxKQAA&Xx+J(q%@2#}li-8xt<)ZJ44@9dLii1C z@3(f}91~Lw&F@rBF=Oqs$J0KURU13M&Wo@Nz{HgR6X6)0$1f!02{~vulGP^A?!zBp ztqY-|E})T(Mh(oU#6w$S`-4`QLX)=^w}oFvGnsRi{rCnkZCgMQDI@e9d5aDH`W+M~ zE57@Bh^~C+8ujM3!656VJHw5|sI|8VeY@ooGBC>|^^0(otex$^6AqXt`sA_WCXw@3 zv>@QRGz2haR}Via911A>A}l^Ep>oaaL=g-vLOW%Q3`|RO7noI@R7$G}5jK_?ueoCQ zF*lW?b~zas0;ukR7Da|D1bI+)LTh~1z5H*D064Ss(FfOT<7@Rnv%JAHOfvs16=WJy zo+~SxZ5uC1MP*twe1c_@Y#e?9-ptN01j#%ed1K!G7{cB#?tECdrJ<_&F@*o)eGl~y z9IOy@t&duGH2rYqH00X{Je~5(z-s%G7t1?g*6k_~a1Y#JM!Twy*$scKs%yXf^7lSA z`;2k$t^COfIpA*JA1-#y;#pS6%W@wPF5n<>~{&gTeezmvGdf@81DX z)zk&eSuo2i(^T0w*p8U`@SwsldoF>8MKTL=;`K1ImuI&NWr~>T?>Aa*tdxoBQNzEs zwb=hu#4NNrM4uUI1#9VX(cXlQ)_wk>pxfte!CZ=x*BC{|OgxlaB)m!m(?G+L#-9sc z&4$V{JiB+)1^tiAcESn>4jkUGB#`u!y4D*MQ=V!CsCUExM~@m=c_3aReRzz2Xe7-T zJLkrIJQ`@qcFCXpINtP=iv|f@{9MYd)R+2fh7{=ZDGl3E38mU8 ziA(oY7LY5|Z}!K#2r$etD_21=CWKhtZ05bp+CnYT>l1X$n=%S3EHZ5deaw7WhTLu} ziaMYLU#0NTAi7WN6EXX;Ku|%NqAo{Ftf!SORu8in@WZTTLiHqA3sR&FJ-#KQ&;>F0 z?n*;W&YVyu@4pIiis4KdcWQdsUB)?g)=d}u*uoregQEzxOFHLbh+sDO-C>Z?BuT>0 z$qCAye8=)Zm*ZFY2$_ZD$UI-n*>5p*oI#(hQpi0wYuL;r^2SgOz&7Zk_Q01WdXlt)=@q~9cRj2YO*-i9)(d&iWcm4Sf@*UBv zQ9WvB0?}d$FM1ey&Aux{Vr#oHS!OXBQ4IwXM%-GBB4A3pl z`>7i-VK-D8wnY>d4jsC!BR0x~>oSqn#jI@H@C@R#DZhu+N$B;>w7|ohRsq(tyL^4? z)~a>$#BaL5CB8+81cbVI#Ur9X7~u)By{Fe~ATzdX6w8=+Cb`tEOKE`#_kj!|bs524`ZAh`Qfu zL=p++ZVpFbf~@? ziXc?>rfu7pgizbI+p;jen8z2sN#Q=PkxaOTZGS~Voj%E;FfduNbR&_@Y<1^ybK|0% zd=_%7P4#bZcqfiY+wHO@Ao84SPZ)NW_t6=+v;_K8@0~6s0aVCFKC2{1m@12&3W4Gy zS^xGnj+ZnGnc}=X1je7(=ZAp>C5#V}PM+jjEe^~*mQVIM+kdVAv(dG&R|X5?w{}Ef z-t_rgUsRH_Id`qiel-Kb8RGmHFu><>n=V}~<8iI^JyBu%q9!4Xs6C4ApNui z-1wh?d^3h(*?w2xAf4)v)2tz$hVf+)RH9tk#63^3{E_%>`>?0)?ATH;>jeQ}#Alpw zw;{lE$i9^~F9a5Ke2k_`-iB!9w0Nq_00NU|!m0Uaq|wZ;ucLvJ)}n638wfBQF~|5y z36v_N$*$wDoYp7_aEVv0?J&5~2sx?JFucT>Zp6LUw^SGhN zCBKO~C5^JQORkFWM;{0%UYnXKqgdEmPTqOIxN=#idqtfaO%kr9JeDq5Pui)^VROS# zM%xT{SthzoGsNcZphs2m$3sR;NAba2PNiPfsKlmt&u@gLyQB1%HIMCw%Ay4Bv5ig- zoJxB}V(WnYG)w}eiuwhQzm$@qlAhYg=$6V{?q8#PezPjm90oei`LN2Wl-RG0n7EHr zfCd5NJZErs@B|8dV_Xz4ViaH17k$uUrCJek_WWdUBbqvOPp7NrMWb`Eq|{%l!gkZyUINVhKDqupOomDn}@QX+6Us z|NdzuH|Za%R(LJDE8nnk8`cFsVrZhTT? zefZhQB7(UQg3}!noNuT??0gvXb!2Z(2;&R1<+XUw5DU^qAG6X~3r%TGkLIKol`1@& zYC^wnTftWrb^#W8Xe#7+te(oR8BFr=kkKQGQ>TEnBAE z4G{5JvTp{Sgkq40bBJM%pM(^gM;eP|427W_X{mC?^_Bo!NyBt2$to-IK}Qu;T^{Z@ zb()=2S+&BbIeULvz8DF&c>41cqMKnP2ev=LW_|!#So5ysJk5&RBmS za=i5{iWYtA?UGhA2RRfE|EH)c0f*{)|3jon!cZxqm^-K$JJ}|E8OxZlD~+u%)+BsO zmMoQRvNeOjSSmy)VF(FfEK{;2d)Y=Yw!Ra}mjCVheSXjXKJRnybKmp6pYxu3mgha^ zo@HRMgiU+tG8|NxA$Bnf{nJ_eZ~Nld2ZrRx<;K!aK!HN#oR52QC_RGe%wkXH$A`TQ#3*{U7S8k$ zkL1P$Q=J zd5l|U@xi$#9?RF6eHx0H!~cq0nz-wU#2xMYM{nEn?L1=Q-XcWwGTXUQG)njY|5dHX zcJ469$o;$aADPQoilpMIVV&yg_FpF2@TqHT+gs>bmQNJb@$TNPO+x1$`!;8FZ+>ZK zFV~*qB*oJQv*)~w?1O#JQ$lTW*N(yZDC2y6u=5#^tIjiSb$Jr{wE~X;Wh0}85sDZh zWL_~~ICY43s>5N%Bd$6DrM30VfqUvkALV|v-o^{+#4WpE@W1;5&#l}Zq)LH_HY41_ zgiRhjXFt#xUwi{i$Ex(MVLz1l@m;`e=%s8l0iRS?j;w@xlj1)4=f-5OKLr*v)Jr^T zL;LuDhdR#?ZlizFK7MF*&+C`{%o9Z=O8zMRQcYx&{cy_mT?X#9B_|UujjpjC8p@8= z)J;$xzEk@A&AhbUVXyl-Br{{}`3?JlSPO0Fr2D$%Ny91^`;!BLL5JI|v-P}4xZ7;ZiDm+sfUxC2LkCXw`4D0B!Z4Vp~UG@7ZH9GGDYM{*T$OT-X(|Tf&fBJ;|EON%* zk5m;|0ib1bMSGVFA%31o^!gN=*Jm9$6Pb-Y&bSX7`2c!#vfJ6gK5Md;X#R4@@x!9| zIi9KK_LJbEpc(6v%^T4Pm%@6xn__1Q74Snx+PX3tA0xaVsEXh%6>{6G4Xy>FmK^SUP#qgle-;;MXfU& zUsj7omHA?S_~bRbN0s}h6&?-R+b-y{ftbo zRsHN_-J4iS|E_-MxS6%2bQ@esc0DIi+lWo%bU*W%h1<9&Sg=W}`)gM%bb`p__6s;A_Gs4{(A(f7>( zQ1?N@xLgo&Am?IffvI(Gqo{&=s;E=*po@L*{N}kW80kH#(rSIHr70wI99kz?UHA?8 z$6O=t0@RgbW~FZSxasnS%I`l>(8zM*S9)I9_n)^zNbPdm<$S1sVb{gqFmZSGj}oBX z!Qn{;O1^-7M0`0FMYy3m!VjV`@Ch%ralWD`!%C}OR7hjTLMUo?`9yJeaFR_%X?Gm{ z9G6`TRl@O))DX3cPFSyc#cE%waaiAqun5j-l)PRB1o^s$s)xN8iZHF}FCqYA$fp=Z#}r zpsJ+ad}nO}q>mEUDH!@||I|+d9HgRy>pO2|BR8nv1^t6?34DV6%_wRg3{p+x{SWKE zAW%~gtWAHw|Hptq`0WGDz*r&Gti7ddu4`-)q0Z)AvafhU2;WuihY3fN4_pwEk75cx zWbo+28~zWLdJ6l9??pHF>`_dD2R41#O>OjleL&n%_##1C+B%7nq{2dUUnVmt%nvr4f|9R`-{$SyTB8kA2g&db{<ICtayT{Wd zl3sC)j4p!Xe{ykm4$ZY{1eY|NTvpwhm{n6numb$(3sfOv%<^5zfdH**NVO4z;*tTdW|8hmQ8P&(6<_r}|7MZ`@T5hE6Pyzoh@Q%H?z4ZOW+r zMU$1ct1r6CY$;jeNoE@V4f{J%DM3#jT13{_&@R*As|CbsRH2gnM1PZ@s?zr`q{{p2 zmw$9n>m5UsF#9E}qqyciJfGKDteVuc)?)e!}9LVM5>=mP{6(O5nt0( zWOO$;;rTaxuILw_h8?6<9|CZQz@YYe*NOaCyMveq_@0p;Rf9f(#g4M%Y)Ji49>i07 zS@|f{v-4|+dSe9x8~g#W0_6dm-`A9tkxQfH=hDxevRA|Dmo6N}StnRd4}VgVr?CyW zT)ADo)o>2g^YuPq z)VJ@qyt^bYdOD1C8tPnfcg9<>9XWlxMkQNACX{h6zU17|-(39fIRS4HTn#W^NuFv{TSvi7E5q z+76%FcajfM`^+&BCG=!SdY^4><8+J0s5q_7y)&*;cVhXDbLj`z8*6YYW>kR2!LwG$ z#~{GRDDATzP-)4cR8itpS(oIjmeY+cr0!>iXJ{2^i|Yx;kDrioG)=Rw=(Ee(I3=Su*SzV(%fAEzcaKoTihfkT zUp|WSnzy;DPfBrW?t*E2K3|YD{aTy-?9m%{DEEVz7MIsm=RL5+ouo?}=(zS(LYL*4 zD;>mb0o))oUg8NCk=o_H^hK~2Iqf@K(gX#gyZ6Jc`S)|dgCcD*={MBfa!jC9D5zXSxslVJh#yfG z$aV57q1*LnOj0NBdG#Y(1c&;D_j0amXx4oe$kv%&zPHHLdb`z$Iz_Fzv!R0|_y7Lp z8lDc+iF90x54=zbAD`W-z9pMz&FF9rktsllYTs@Zo`g2LLwo&)F0QB-eL^SG^~leW z&+7#0m7ai5p42X26TPo#gt?Kc6nAseK|SmG9<3~#6xeulW}l&`*mbJd{gW%v0mmiQ zyj1eB17ClKRE(at@P5!en5$HEy|v=#2iWeOX6@K&Ha7Syuyq;>YgVj4g&{1EkIZV}m^KermRd_lG6dCF|vg>J{Ui!sNv-59~f9kG{` zD~)J)*Y*+R>&00n-oDZ9?T&_(q5R8FS2lBhbBbgo9`@!{eR;NrVl zVbZNI4 zmI~i|?WmBF4E1oE_*@SUPUuAGSr6|aUa+<#;v$Bef_mYB~ymWyenAipO_87tehq-7y`p8 zy3&f&N|NnqNG%&~p)B~I&wnvj;8P_8?s;MN2-Jz5{Zfi?*@EM z#T+FZ=WlE^QT5G^X6EPfy_8%6N1v)2qJ(XOJ8BIuaF{iOqoy~=Q6K|~-4rJ}5GDvs z-CmWvGW_u-YrY+m`9@oSR!54D&)|+y^f{4v7Xj@@Jph9`?eME$GKD~W& z-SGBwG=X9v5vEWQ38Mm^I_<)gu*T*m5U&HHNkz=fRtwC{aw}=mo705^ia97&Sv-uu zt^M*5L}&-LX5?t%XVPWxYaW4>mmR}M@kbN*8`I+{!P5*v{!7hiM&&mcx>1ARDu@VT zjVSe}izxT23CsFP=hp_LVL;FkWTi-F9_|FHQbsm{$!uc@i=f|{ikuTB!~5xrGC&BG z@lrErW)M{(rL{$IYa^=mWJdFil!*k)$VqEM3*fp99;O}O5r|t4Z1e)y)cG#?IP6b( z&*!qK;^?=r-qPk17|cC*A`IQ|WxkR)5zdhJB$?-U;FkUf#xX-{U0J44>4E#hwOniY?Hq)b#Hhbe%fXXQgOW3mK@VV=Zu_pCZLY<&Ae%6-T~Kr>zDGB846fP z7-GsGB)Ha>SkGZR_BQzaN*t`E5S#Cm@vXx-E(37?D(6j7{16uf&Q!Y7qHM~Ev3UgC z!g2HvL30@VO!4$HCc+=48z3s2v=5#whusm&k*nl4-lMA7TQ>(DO4adJ8G9gNCrmyy znha;=S`7qF+aj&1;8(PG5w&#lRHn%y<03{)A_!DV%rAOqMrH{rCj)-_Uw-43;CuOiMdvo&X4B!p#`i z`Q-Q=wFA5+6!>!5AWHsa4!6ihOis5acTD^Q+{okazg#Jzf8-m0xm0Wi+$^<_q*1JmD0mW@I*9UqixI2{p_zyTNQ1r~*mR^y2*WAx6fplaEM2LC%A>~-18^s8 z4p=+a^`S7VYuXY!EfaW=DN1AA(#L!mkd_BZYzBNuE(4QuI>m#S$3o=dm2@m+HQQ-Y z4$Q`6Y=qhZScXA_opq_d2C$SzrtCDe%dVL$ozDOGZ`QAX*0Q#XjIj5CSdy8DH${sq zi($Rkb2ouwB>{o7F3Kf*kX33oN%yq$ja@wh7%=)t-uo41+3tS`ai>a5q)ln45;s>` zyhw;XW@XC;oe7?M0oqD~n}ccFT>J}43Bq<$jPSP2vzR;~a_4W;hbELDQzBLdQA8RO zk;AZ%%F@Po$|aChfGG9Mdxn&uqd}Rpjt+sBlnFQ1BGwrPWbTFc8S{Ha0r)T$s)( zi-LlVqWWG_=JE0I0eL*${db)IEhD!ZdG3OYp75)vN`?{QTeVl zd>}5c|01#fXsEZTt+VU0%e%d!>#!r}Ysdb6`=90Z^wzeP*4Ea#=B7{0*Y1tySq+nC zbvA3YzLhog{xz#56}1IrskUYNM+G_u1v5GYXU93c(>b43b8LEZ|JY}bnPo56LBo!q zm37H(4nLb@686^P-w($bsKrefM7GaGh_;1u_JnB)g)Z|2!{kGH3cncP1qE0Hq-lJv zZuVDM_IbTx~kd_F*Wa1Rp^)sd9_OIM@1=0 zg|7tiBS!MsqH5v@5+5uibYsMyDu_$rh<(2h^UwlP`-_tCh}sH@ zD!dU84d#DJ^lI^ti=2i_K9Z{yodwI4xWpXfL@amD1vv@-P!Zq~;qzSMJqO~wA;D8;d4`StEJ6|&PZ5{(6)rm?4i6fR z7%tBE^QXAjSkFFVKEFrDKtcb7hV}##br7lc4=AXQC@BB!e^Ag+Q2LPjh4ml^1x3Y1 zL0Uo+Ja_Pu9zW<6$-C`UlEyZYyd;Tl4NSPDg@Wp#YnqLK{vlQ}u`JXp`XdEfzXx2N zv6R=$I?sMeqnKU|Q_{sYPkL3Qz57iG6QQP-2D%scc$`1OwTo>Y@{;eca`uPk6aF%2 z{MlUb^cLN(P(S+Oi??WRlriu%1mX)9f`HJBxev=Yq#G{H5y^X>S2JwaDrU~>PH4oF zFAfrc>B0h6Y!J|MddO<@>WeO`vfVIPXVeGa{Nu(CU`0N4g&d;AwGRM8ukhSF*mUiK zh8$eT=CDBWTXjBp_dz{?C$>?IzzQs#VSx9)YN1eZh{?)?Y)uWp7+RIKBCIBtAsS_W zib`ufo=#n{VF^5An(Uoes+H~0T(Wo6Sm;({Qffa2vIr;R(j~!r;jI?IfEvd~xEubK z;d9Kp7mx2A0#GU(LXYm}=ek(bvjOgI`#*Tpa)EuJdlv{iWRL02g3~CVHw|PBT9g z`mj5G(2r%!cdrx-I9QCS*0khtv`x7GF!1>+_kEsfN7P2KbtN`k|5d2QsaV)SL(!Y( zWgDw%3C%;HhE^cOW5)5h!D|0V+r{JCK_TB5kiYbUQTj`Z&VaQq6#{Ql(42Hk!n1#= zV)HJ|9+j}C>A$%%H3ptT8u%oKnDISXf=wxO2t0dnvw9z{p9p`HWw7G*6c|9AxhrK< zqe>klf=#vp#l#Si)RtC9tuN5-r49sQF><`Db9F<4@^P6?Z7lElJbSunZMOOYIe#?2 zE$j=yNIxK`=Y=>8>BfmcDzp)&LAXlWx*84}4E@Ft{X~rSN_M&J3DOmw?q2Uu>(n>p z>RssN2VB)fhei$Nw|)50dY~-!4p=&e7Z=sjZ)=r1$;+qbs#>&*?ZtlD9rA_5BG^dlka-lNShYLg0?(9hbAG!GaTFxl8>;_Y_Dx8LyvcDy z-f|Q!m%Y~$N`+CEWd6bM!m%mmXX5BM@j7$&efNk5CE#T&rockluacloPcIwqp~iTn z6*mS|v_}I(B$AXO_)$@{<2$S7Ux-XMxzUCP=#_Bfeny_$@hoTkfYc0@a#x~!SN`PY z8VV)HNOeF1oQzfln=i01uq-}cvIk78q`JGBJ9;)nH(-l2#_qq}vb(;iVs?zX)$+he zfA}Wb@Iwq}fk3Jrgt z{FYX$wLG!AA%O6UrCD5KZoz=-xRP40Mkvv>`TYudL9TiDm%wZZ87g;|vPNbd0)ai0 zoG$UAeA!PV6hkT}C)Pi+pFGTHdOp-rfTNpFFM`)Jtw60UUqg&bs;U!*>2*F3h3bdTFRs`Av=b&kRD#NU^d$#gdM*y=e*DOzBiq-4=*G+@DTs?W)kVTzA_r$G~!; zS;QoCJ|`AZQ~#an1Xk6etJ+dMHg{fT4lg0#XHnrMp)`7nHzBxkw~kqdCF~<5K1w_H zv+`Wy+wl3|E002pD6!f>?1c7KPXSe3rJ7NjJSa>ms&3=O6KS3Z_ly59nM_J5o9N-(}L&} zHzF>A2pFrw^Y|s(z23+*Ut6r;<~mo@E@rrnkoDZi**uQ+3lz?>k@=&#p0&$L%}?{) zay|a^xwR)4-cIP5EgbSh zH_LBWWIS2U4BLhu;qL6{J7M@k={3|2k0&;N9gwaO9Lk-AE-$RVtBYxINc_oGc%Iu4 z8IH(^w>4th$%J^?RsJ;ZthPQ&!@mL53cohkbNjf48-{w=Gkv1QgM#q^BbxF~7Wc@# z-1+`1QD5YKZ*Pjg?w>=|luvj&nsJSGT|5gf-@Y)Itn`hgqcPz~5LDO;;KLUjkhDK; zqHM5ogwOu0Ouj3?BWH?9OV#I;ralt}WXR_&Hyu`#FZ1G#g7)*KW^$E{5XTvaD2)im zY7Rw?>5NQ>7&`>)X2PV8{hb3f%YZpKI??T^6|kO!RLGt+hNp)>ESiG)$P)8q&yF=c zo(7d+g2{4x*G)eE(dg}7^(&9?Zj-hJpRod&?rirDD|pSpd%5foV2i8-Vyg#a$&(^g zIt1`Qy0wx61p`Eexe!4?Jk~9p@K!IP=_tbG)-THEuFCDuOz@SFKePB<*g@2DW9sfS z!v}zSwJHTcJ}#T&5i2LgSXpSVr5wMZUEX)I6q%lTvc(E1sq%WoFU%>qSn=0VmyPL* zX(z#5Xo-(XlV9>%eD<$q>Cx~zyL%hY#P9{f?LJWhS%$FOP=Q9+VQ7R;yd2@Rgjcs| z8WEB^v{YfS77@YnosL;rX{`q@4%);G{^$i_EBo_$gbUMB4G4eh@Dk-ePPm^gI~q9t zSoHhwkZ4ss5f}+?UZDQrmbElOHuf8Vf774_Ti@fW(S9LVs)o{~h=GNbPsZ<*Xmmr& z?lPdtU{XvcD;AxhQDu6(^(0q=iU)$Of4*;ipFMbQ$Ru5gdqVyypX&2@e3meJ(|+k< zHG@4>1xq{2|4GpOKmh>QR5`>vlAHZHHpfBSgRt$4atxIVABEV|tk>LM_I>5P)8(6| z=75ka@Zt=!7l=YT4njmIWys8BlEuG$)UZ=EGdtbxPWHRN+zjVnY)Mkl5k9381Dg`^ zPpaA3OGM=d-tuEaZhVI_Qhc>XCBmTjZV}MfGM7av@^mFS0Yz|&^DrX&h6in=vRajp z1tLC>47Mwqt2ZZ{49AT=Qpg-3<$!P`CLQ#nNsiE-32+GhLTVC?s1>W1fW@6@g|!i< zDdzTTST>(ALf8uyaT2Ak+A9sA5XohQaIjPe96?A%IlRDKX$yj|!L4YH%23)jWL9*L zAE9#P)t(}DZ<5|GUFt;NyfP$?Z?>k`X~cjHwu6n$RDbsO$q>Dt=&$C^vRPcov1aDE z-!ZOA?P8?T-bb)LkN=ccmcj6AanG&AHJ*XgL|)WsCX8c3LeHb~tb0`l^`}GHC-@=< z3**4J;K%Qu@>1CH`naFq+c2zvTkK&!D=}t1nH}$J{IPQxKF=$e2~LUuGO+qgEzMGX z#+DYTr?@q%$Vd75KptWBp|YA#uZ+7=X?$JS_n-aHNAHl72PPfRD|13#Kg2k;kay6F zFwOK^A)^xnU zXWVJj_#&+J%q&q)u3bWxQzPNuCNnq_bTdyW$fvnlxnDV$sZO7594*FDe2__<(f4mZ ztuVNSXqt6B>8w}gX=Ekyqk5am?BqlLy6r;T@d$dx4}IV6`23A*?{1grEe5c}*~gbQ zyEw(aox)~vKHl8Hd3=@%&;Bf^!k#6l!h*zkixK^=WcX-XZtm1tzX>T_PAEqfC+X~0 zACOST(VpQgZDUzIaz7iWQNXeq7TK_sgx$_}?YFM^-!BlNt4#DSCM86|?^X5n=PHd7 z#W(5N?!mR1qPguNr5M=ZE4?$Je6(vP7tMd;>)PE4dKjifu_-e|o_Nr>*niXDd(-$Z z(E`?i=7a{7PJYe4xfc^b)JN1o@$%2P9u9ZXhzg;NfdjMNNEy9eC=&G@Ze+oqG*j32 zRqyRk*BT1_aeqAnz~>s@U0r?|lbdpfmLMQdK&zYdGO53tC66?3>w|N)lGJEJHklcl=UJh@C*X|-AM2#EV8%BdMlwNx0Ya`iAEWmyzm`oG zrG)*5?g`_)Ni|m7?<5%(7ogUsL9Z|!1K-qZ)=ALw7ZrJ_idS zWwoABleE>4Tg0Y9jf{e4$S6qBi}Rr(l&}22Cimg~Rkd~(zoir1Zw;S2%B=;ogy1Y` zTwS-3;U5&n{hcq3N<}TBhc-UA_Qk_Gzf(q3d;|7(#IA{}6y<&|$&#RKjW8*VWYV^w z#_6vzbB>8L>;CzEj*TJ~C=~nHYhxmmkdKq=BL?gKoo^ngQ;{(4A6rzxg3MtVA@x=7 zKrn9DzRQ{w!KbK+wr^uc9IWo?9}2oO2M?3MtgqSb3qB2WvVsbK{QmW%(tlJD@x=>g-CVyl3If+nPU zh;J?q`QO_-L3snvO-GZhYTIhEuA_QUr_m{Rd+YVXq~h_f`5)lO4 z-dxb~#>(~Z>5D;MomDkkxUZ51+z0L}R0Mo1u>w^$5^%a8RvZ#;OFPb3?BNC4xyiPL zzA;R&ISu7_;1qH$1V=z!K6 z0@j-T>9?qDwaAw?T~=?Wu$`vg^wO2N0A)Z&F_`7k-=yZ4Wn{@jg%fgZT(48HfhDdz zL1#!)(DyYj^OyLcuPg!}yiyP;H&!s`gsUj27r)RxL3wCr61|k7^&^$Vab%@)>B6ca zl)QXk5Fp~ub+yN!6jMNgTID|k%cFl?7Rj?;NR;Bd|H~N6r7k7wuwHw-{_EsTlP&a1 zJ})2udl(BeeJxDO? z>=8Ua#1(pd&E!ohDzHSDV6jIV`g4u7WFMOc)4G}pe^l-j;F zo{nux+2+DpURrkq==iW)>N_Q?OlfEf^HZ=#!~#`9xs@*V>6x~@m(!J(h}~R5(GjXE zQ=|%0O3h|X9{hVO@T#hfO{=J7b@0`CJ}6+?2~ToT0o78ccM!kOo?`cU*HCxy>^vNz7RTrLHD~Ur7_K$#kuhOeodImGph$6fc5z{-Ie)T?pV4!d zSR?~~9C9RgGObZcp1b|F-2NTD-LyV=FUP`8wE1g^WZyW^${%QD=U3JC2fen@nnqD2 z2Ky>^2g@g;qbE%rY@iv6YO|W>Y3yebB7DXS!fy^{*=5W53dux$VNq)i&<{FwQtkGb88M>4u}#{tpd?6uW2X$ z-#Z>oPa7|O_`i)6VCXZ>IDs5Z#49ab;`y$=qlC;<1|F<#6m>Le+J#q;dugGxlW5%s zCf+gln)@x`x6osG!PaX@wk+XP3Va)p$f1R#tHUh1HN=GVLh1(ljC+^rtVSkPH$|y# z#`g-y&u|p7-EO~oKS^QUA^uMk7|6^+ z-wt1U8QXj9U5v4=cPZk^G$c8M8$#&=UaXjW^2H}usHBT$t-js1uW%)Ij z7%<~|8IPw7_!M=5Ul&>3d!_4gU`FXk_N+s&a?KXUo%6|Av!FXuf& zXytKv>iY{59js;LHlAI{tziLSExOK#*pJ7ym*64Uf0otaC4Q5<-1eQ>ZFb;-X*FWB7~i0S|;(wX*;9)m`` z)zFVKO1EiWj~32GNXDG6h$Aldj3`81a^@oD_|!CM)(S6aPAzWL#3g=ELUo2kp#9nb zI&OecRg`WWC2)6mFU!;pp%$sZ+%X@W%5r9q9J^>zD2qi!KJo7SvD}EP69sF3za5K? zHiDaN5byR%d{DAD}UrQu+tE zP1pgR+)7%-L4f*sQnb!(v(`}0cOmLmbgER~_J1eCupUAR{ zQijSQOlR<*)gmu@#R*$m%j@~UUlqS(Hr*$?O-ID=^KRJ#r1H+rZxON zsYvYf7$AL?X4v8!->>3;8cXb;*y+cc``ot4G)mqwO4;VO5u~7b;}xttmDw2aO2d4w zvwkCS;%kbin3}X`D<}UEV+@3;OlZ=O|DbM;UOheSfnaG&I??cvsm+*Kc-Kg zD0WrI#n&%{>JF&b@Hty-HO3}91^J>GYkfP!*K06YBeC9**)`((+|*)}*iK4x;Me`r zYtofCB+xd^wG4%e#AqXo>WIc2km**FJ^_yZRsW=o#yFX$|^Td z^3U`Smt$%8WV-q!E5No%}3zlc@X7SWWclyDvBhi6ehNlr)XG+F|-b`fJVutuX)7cqNaDVxV<8kLl~AsVUIMugKGQ-ip|O3{2sww7&XB7<8T9d`sBc% zAiLpD&&p=KXB$XFZAecP4c&n?4r!66={QSP9E`I^ zwYoTpqE3a@KhRBl!D?9x)daVoiKfRiU*%T$GgJ3$*l1I2b-sCUbdksskNvi`HLNJ* z$_N}325W*JKz+t0iL3rF5%LVy()-aF^iPF-X12Dt6yd&k#xK6s6JHaXsX4hH>lL1yZEh+T7)Tw=b7SXw}@R=75|dE#~m*HKODWz?WZ4VfClbj zLk~7p&N3bc4!a`=YyucSEYUx@i?5&+{ZrApKrI}$npt3$FDpWvwq~SzKMz<{bA&MB zKpA3K9iyacPMIb?Z4eqdp$F?6z4R1q zdtoXy=^25Qlu5Wu?IXWpuCLQG*ByUCkrr|BxEm*XLI_9@;MeuN`YC%74bT1V=4d8I zM!;O9d>3d1@}=sXjS;a%p&6Lvlla@Tp!Vg;Yd1WrSA%uT$d<*awCB-9M)QLYsKzdz zdA8<(20yQ5kZZeRN~deN;G4wKO+8~0~{c08A>VKreB z1t1N%xu_)(usdu2!Z>uu{-|#a6^&d;0nDt_%fou|Qyg)f=$Ef7`h~^a5^?59MfZuE z00uo%DYt}>K3<}H7V+NJBC7$uxr=Y>R;L$L)xi<%dAZDg;P~gGW7KiZ_xE<8hjgps zgHjF#ZAX__cjRjn=)ahePmt+}4bE0%^Zg>10ydT6jcnaRB~Z4p?8rE14aVNph`11O zmRvs+|A4`bu-LNVSV46NORffX#Ew0gZ2Ztc{8FZ6HirE7?_;S_t0rKK9nUleBg4w; zs^RJFbp02ib6qd(Gs=NLE}g9!Pm)%mI^8{%;~c-;r$cwp>L`AkjYvR-lR^k>_SjD=Rx%%b_b3dhYvbyvyz{t1zUW&fxgoTnV}$9Ld7eU2%vx(3_qNrr4jK${!1e1@^%v9}r;;D>hE6}Ib+*K>4vX4LMaY{y>? zlpP=@f;8@*^V<&Lwf2&tq9ra;MftNHr#bfTLVBlYbj2bps> zjeX^5+w^yHaFpn;29qmG1gEbEhYImvp=H zV#zQ6ex~e#kqUn3^|&(6yhPKa)Pd(s$8nv`ZzGKF7L>TWF7SlFaL>FS!JdHn&9ziM z0E^vjWXoMND1TV%%OhzVSbz=y)vk}33Sy^>pHF##^=xB)@WipiEP8X0MS1Ud2ZorY z+xhVOf;)1`F?hx;yzB;bA!+Y^dKJp(9MlJBRkx)*R2d9fq~aCaJ3)Zirg2oXeBg$D z606m&A5D8VYgjVdd9Klo%gEW~xj6+LAom6ogB6XwL03P`K2pz-c?<0{m9e~D)s(Vv z?%gQL64LXn#V7TAf7dZ_kYoe1pZJuKB2&>EgV)v>fmP-jL(1KN29h{==igshV;y91 zEVxp2eSBOs@U0j?(#qycI*m#e44+z!b*dW+PucqZ<^p`4UYpN7Htf;^#1&vL#lLJ` z2wipXh8sEOMvjER+qNa}mj$4&&;OtoBiiRXYX|6b^vcpiZh9}pgmpA$r=$2R?}c=( ze`P;am2_-6)LX7ZSKKMpArnqCvT1~x_NDoymw#cdyVvh2PZ>EfHFL7Ma_)zgO8yb> z4Vvn|dFJ-UP5Dr%z+e_dv;*P9>PSh?dMs!pvw#5W5L`-UV?fbMbB04g^R*l-FR)c4 zyI+ybKPF5dQe9Dc4uRi|n#FrFb?(>I{+k44T?LTu6>1_Aal`IYr)BIXi4U(^)k8{O z*ecv$Qyc)gJ{H$KwmfZj_ajBKeq1j@H7qG&wS?&MyUOV5Fl9DKPBE}-pH^H79w{Fy z(m3TB8QpMx%S3^x3Pasl@z4}e3>A)iUQqlZTCqiMYQ<-#G?~jDeJ4=!NpOXZW(h?U zW++)9H(wNlKUMIt zexhux7U8~(c}BCO$dqK?d=@kZ$hs;JlwS9rwP~qA1%H9BRzBBGKm&29-@5KBIg8!} zD2Z-3y!~s{=tXj;A_oz!qD^wfjCN7$G2$C*C2Yoz;6EUnUwCdxf#E(zeqayi+@%!khUYCjub;Le{ZHxc^qy|6QIeXTUK@EFRckdE{C z%_J#O$)+C& z{n&{Qx%2qmQvZ*QZf&U!-LC4|b+O?&K=ymHA2B)E(H1@UO+aO73)T+760nNy%lAwg z*xZ|YWBX-YoftDE6Kj)Pl4sozZ59?;_3Hh zh_{b9`teHa*e_ge4fvp09 z&oqun4J9c|I(C~f%WK(`5sD#|ZU(Q}nj%-gk;?OYHtS|Xv?Qt4zPB{ERb zi+%~kd`wr5Ys*6a8*IT@zdy_9NQ9-}?~Vcp$X7G>GTp4u!{`sZnRkyQz@RZ-j#+42!FnnX2$|U)MkT25nP4&pW*cXTiCM7b1ODEEI)Le#cJz z9{g74Lb|4zoO&luIRDkzT1!5U>VDUf|3d{)>d)fsinrp8nNtx;%&MElx~mno(J!+M z-Uw#j+wsP7KyEr8udMU%4C(1H>oHZ1@#Z=@W3TJ3(8#RFQgv_D7x)^6bY8Fp{Q9=a zX#;EV4w~V)u!)~51{iuVa*0+{D}vpOfwq6)!2FZX8Uth1YnkRY%;cPEWkN#&$MHWY z+CtxB$=1XB6PZe|Qq`@Z{OijD91336>ASPw+K-U|phLY(r-(Q`C-dCO$^G9a7h8r` zh1!<$8p|s?>uPygdxhTNaz^y;zj52pR+bjY$t*#`-wA+!3vMBl4_Cts(P%)=)?r3N zy7)=vK|=2jlJ2FP3KYG+*Ka`SASskLff?`OtG0)ZVx?z)f}e*Ddc)EDV(i;0ijK`w zB|eF__`jTENno;Cd?<8n_ooLe-#~>@5E!ZT&U510=&k270KxsYJsuY$O0`Zc){>uI zeO+{uS}s|-PP$yzg-H@(ES?vi0j{QgZnpAUN(+r~xieZmUByf8$kyc@G*MaCa~fcj zS)el!dDiNFBYyd14;P^3736jM1%84jn*2RCH5oB#H~^kl$;Q3n71!3n?P7zg^36H{ z)@8E-<&v}uviI5#fCb)Qw%sOghWWq7p!7k`Hz@QW*Iod$L9_xk|Jip~5$S*7eX=V+ zxf~m%f>IYIPJ`FJNJ~|Ru z^wlaXMxW5=evfy@T$U^)BsuOg19abj>}rrMWw43j%&)6q3~&lU%|G)*WW7cU7L^yj z@eLu#@}h^nUNT)0GlTd9ea+*5oUc+(TkK}Fo7MJ6@b>D_Qy)3DS})GgmMx-G*DX;S5%5yOmN;;FBI%`8}l&8)4tVOf#md zM~$;n()t+ZnfXoiN`F`$>kxBujBj+PMU!ni-o9D+9R>P z^RYKUV7&{<>%@{nz>9^I$c8R(X90MND2?L^S*cSLyFtvm(g9I*W`(!g#u?=~xqjFk zDcr8q&UG?6!TV$f`g?3x@$qjKejS2$N^g%#a=^m;6GPY!f&#Pu>ETU*Z1J);>uP z9<-h$99^hZNve|eg=hc#M(i6oq!iUK@FL5)!VE&9F{oCp1j)gp>Lk9VPqc2A@#z~D z##;>EvwW_|NyRzGVi)BICQ`Pp;Rh`bKgTnUfWvK}AuEiNxV?XMP2<9pch^rk(36c% zoK`0){2yBHr=fYg*SorwWDE&A;3ioBtY1N&x1TuNcmUoqQ^yVSaFc3pi_yQ;?enBhL^D zm)4z*#vC-OeN({KbFWqgJ&LzP9W)iRRvu2o{Y@w8Ce$$d3=^}#*-11;so}8I&%WrN zu_SSYF8zk6{Jet3w4F%6KqhNu7Unp{RAGw|Q*H+Wy`^ao4ZGiKBtAu#bvx=`5lM{= zla?#TZ_d36E{0&>rkhp>-iPF5zv5AGpA%rVD{rrAElTG{>%!&V-#s0lLu64x!Op6P zL-COVdoSQXfWszNYkUu)gPJcml;w;b@BKV6t}ghsLVe<~@)t}_J?n?dzi)J%J~=}u zu)!fFN+i_Md`4bMHmkj3G8=f`KSG+?LwH`(zhVEYOg9C94bmG=-5BZz+!Ca@^wnIh zp)Cpu>MuAI%&j*`a6r15gu+Jf^|YT3vQaa1ODy69m~BE8osofZ(P zsw!AXG^u>$VvzivFP)>f0SK@Sj^9>~*vIL+=6%{%qP_qf`2%nT3nwWGmlj)FIj8QN z@3u}Jo-TpG8kC@oX_dO_?}VJ^*9YTec%tW_KJ^ueJUUyC??3%$YR~e$T68kCiJE

2!#!V%U1n~q30NKA zkaHpLy97ra2Ao1ajraN9L8-#6)?|zsnvI0+2w1 zijYf3n{G$eoI0sCQHT`dIaJp+%_g4le<=(i7$EGJ5Ssq24AQ2LO zF;+CYNBqZVv5qMxdO>=^Q_dbls#;j{vZ@sCx8Z6TDbQ2IGn0;n%_Sx{vPGPB!F?^C zx*W24louq~_ZBI2{al276xyO&a&72K(Lxwr3jz@Tan+9r(4M5GjjCd6YLj{AZ+A=OOX#=xZwNxUt{v$su?K{ zrwF3d2a->zjZ)^1P>s}CB z^hHkVg~~*N;On(!ZdV)!Wvh3`NQN)uM?hoB%a64ej48L?KcI(s)Smp15BeUJ{9jKI zE_6>4mS&g%9i8@|6r|3Bm!Na+1guvE5QOb2pcfQZeE4!KD^I|I|HV5$oCVbo%e-%s zEv8PaY_4~)g55jP)7Qa=;F<=cWDUV}uIedB$=3prQ=T_)%t*=g^3Jnzq*2;U7Cd*^ z>%&CFM}Z~hA8qxuE70M}m;8c-FPEV>=$xG&Y&J9h?F7`|klZZ=9z$S9_2ly*tuc4j z+t=cv;N?4d2u|CHgZD?p97U9Me=1?`iJ$e3tWO(uZCspsPE%S$F6L*cqyrol5LMx! z#~E-N5+r*$evS4oFI@J!&o508+Uzh zS~j*sNBUpR7@K4Op+P~;k=KwJkrha4Ad(v#p-BBhF4#WJiQ^Uocc3#g?jTkwc~kP^ zSoN4B%=m^8X|Vrmw;%t6CvqGB#S+t-N5i10F3a47;5S; zB6-YO{S1RD`?7v5=^FCRzxVV@i?Q7zD&Tr@w158A7NsKEgj@y&Y0PaHmQ9`=t1;(9MMKRU)gY^4SPNkg}4>r=A_OS7yAtoF&K zNRfOwyo7A0rVySP#1&*y%`Jj+uoR2gZ6e5SpUqtbEZYZ{XIJDbtJ#FAq~UpT;LLCQ zn$co&N8GFyt&QEiy(*tlJ3q*L-~5+z54CfQZvp~#YLel4)NVD)m8PyJd=KY(-ruW=~@5?+&U2>()=8wUfnJ4e7|9^e(b9G9w7ET3wY_bo8 zvdp($DfJ^Hm$aUZ7WrQ%mPUt8c^OTQ3q4dBM5X~ZGp`a!2^L4DISM(DzH;7xYs`LX zX^DJnz9`O1Cz#yZrJ8r%bwp?h=UVr*8_bXe7mhx-x@1i2fglNWnb!a$_hqsCZJOEC zTn#gpkm&2Vie*pFA*^8mB9|5F!dGD0Z)-x0^`12b{cAuokj4C8{l61NBrR+{D6$MG z&6-JW(X4@v-+|;#n=PC&mqv+bbv&8XC`lS=xM6lYwn%#XIbdKOoid91 zoUl$;F&~T_Rlc^>^f*#>5fXZec<1%lOT6EZL@)8d_LGEChK9a5EFWAf{=V1=vT#`501VCm*!l|(Pcx+vK3NTl%_T~r zU$EkDqmMtjF$=gX83&$e_vr5pnC=@<6fMtfJaX0_jNdY!{SVuUvP~^|&ST&BhDUpQ zK2JRCALlyj`ZY)AUoY~1-7L9~W7$R{`qtF`0Fv&E5MZ#FT=XAOFFnN|kK`3>&}CYw zxnMl=U8l4`TH^bJ?1=lOo+=m2@&1**vt|>(9HvXQ`?l_thP5ykRm(q&*4)(oTNrdZ_sz=@)kWn>quvK z@(mYc9r}6D_X_rQavTdAzx9;`Jc=K=DuBYhUp4O;6v7IX5=Q#Gwu@8?te;EAs!Py% zr^ko2`67?WfU=Sq0qyh!jN)NmV1M=J!PzRtHcF)LTfvf2@LJ}4U(+-KHQ@VToF{;E zPLy@~yEp`!@YiFuAT`6r#{hg_gzbY-3d^m{|~W~?6&3iOb0X8f zTK}CBTXgWc^us{IH;&YIo09>#Gz-U@k{PrDG9)T?CCZH5wPT8}va|lAF8Lo%B={8Sf4{=Zb7&!6upoz(PE6xS=lH4> z8>H}8Wq0?`vIaoe z;7vq1gNqjGUA_{Bw?!`Td?!yz^h@tY$E)Gh5v(sP9$IG&z*@))+2dr1YD4XH3Z(FX_l`flf$wui*W*7ppsVR?Y>SL?gQ@0 zv7g|=z&d4Yi%=tzr^Jmi;+2I^>c*vlIcN~Os$Exvtu$wi;rPiQcVMxv=$Nu2(igDb z(yxXw{Y^NC!_2B5j#}yNruJ4M9}y*%Ap_nVZhFsTM9TN=5BF7YO$5UX6lXT*=dXzT zU+FBBF*L^USf)rLhJDnuY6w+$8EQ| zg1-q(05-+P2wW)8IHn60S#4Zdx99bL{6Cr} zb(YxVH8M8`ZCGm=V{G0lPK%`>_4!wE6!}vS=ZW<1X01~M)lxOyvJov!Yo9C&zEA*f zzSHv`<%c4dp(nEY`$_BR^a3Gt&%vQ5`E5*9m}s>guaK(?!3Z#A-OC7YouGm|ICPVm zA)qsAoGf9CuS(hZBV}7qP|Y#oq;jo)1q&2Jt@z_1isijiXFXveUeo5HTQ;%z4y_cF8$fXK`)%K5@Z4l+fn!-v)?zJz*f~!BHvB2roc-)e9;_(t~rH zVYwvcJguK$>L!L)3RJmqCY+*;3hiq%b5jj*qgjqkS~Z@+cyXRglTjnp$jauWG{c>TKfKNQ~``6kitJUPl;JML*mpYjK^94QdybJHK2h zXk&%K*8?1cyQIKQbV#fviX>`>hGVdzrfWt{6+>2cBt0wm$oVJI;wD~Kb@JY61XWmZ zwcd~B=Vx*q5Ax7z2F5;N#}!X7GB}$upxnYYv2>aclR{?cmT~}pV_Tr>TVrQdES9-m zBBskgGMw&={Y_V@L`8Q$6EZL^zu$EABSw$}=NBFIz(Ke)bjc?W-|m zWVi&8tq3jbz7#F*BEC*r=nFI3I)i@pKen%4al*LO<@u}q@N=5k~3+(+E3kO>U@RIl{1tKH6XyM{pf%XX=9u)wuqW{iAtd46N&*bMF}rZ5k1+ zf7hZ$?4shvHs}_H|3o0Y@?UV;{~w$Har}c5IPv6Xf7mTroqBMl9eHS@;R+0*YJ^A# z_A*93N11Wy@29_cKK?6;CxNWb=w3j=o8L)fxO{#>QOKfeTKyY+3&Dh9ZieY~>n{K% z5dZKFff5Zwc>&qgMlSCZ__zPb0klsPQ0n9@ZIa9F5l6AAA@np;7OnCZgW-z>{E z^)hquuL|3gPuK)1LUAjwmPzW^#AFb!pulM4pG7M|XGy-WiIG|o=vWe*XcFdKk-+xR zVJ{);eM?89OO)MwN%oMt?y#pi-w0+3$UCLHc2P(QG6*i)Uy$W#X1vcxnWIDysoh-RE})6SsD?*?5@kZ%~_ z;dSv9!BQSTUx4s?9uJcaFXHm9s$(>{bbIOVK%S*9Z?@m-nv>2nkoV$0uAB3mG!9bp zAC8ncK0s(9?1$8aT6Bsn0mJiGZLSAt)ZI&^c?H&>N7Y)9B?>(=nge%&{6$E-nf~&1 z^{mujAtJ^5ONzUwX~v2`$%7j|1Sy!)vD~*`^+dTTW^oU9m0!M9Y)cJbo4WI54{& zD!ZZ@ay45-1tXrfIU=K7SV0v(MBg_*dX=c}gM2sHE0h%NfYz8p&K}Cpxmx#QQiK#Q zDsC{n5j}Wk+o^`rh4N!k@28wNfx}M6l8fV%rzrHaA2TZi9PuIZWhP2rBY++(+3At$ z{5rM5un*3sE!q_ms+vM9$xd!R45X`SVHzaX+KLBh_frP0J&zg}dF8d@dYi(n5(k-9 zoCgxUvR{6aYh-vBfo&EgP$ASuVP+*Zk5sk!S-$vVU2d6q?P4jdl6|Tc_G1I*%qn18 z+aR)4{ms)qnkwLlFpB~-1jaz&dg6VA`H{YqRA*S+BNk*|)4tW&K4qn=KZPRjOLN|C z3?jC8gm5BpPcJw@dAJoV@lU&rSz#)H+GsHZVF=865Zc04Vu|C=z8`sBEjTj>=OmXb$U98t?*xr#iSM%fKiH~#EtAWO0}47L0+aGhZfCi&&%!_!x=@_uaoIiHTfJq?S= zy<=l9$Jg(khe;6R77TfcFsC{;pCN|37Ec@SCkrOb%>WVYUEmssJ1ZG`$N1so9X}VZ z5H0~@MDee8Gjt1IB?yJtzh0KH*I8x{WbPXZx2g{&*L%_#_9CrG-GL09ucxH)oQAFT zbQfyM`a+p9_Rvy^J)$1hVY+al((cqS?9Gj)8hsWuJ=@#Af4_OQLefI3J!)a}50;r{ ztAU*!4e^51f;*;Qk6P>U6t+zv%5-4WG(MaHFcfwJd&b~kN!PsG6`1KSscl!s>1mqt z6z$jf&@5<4au6_QiZKWD>@1-%`7q(IMcqA?5<>|!lvjHY%!04>vgfM7ILr*fEYT4; zq`X!+oatJJQv=AJW-CKqq=McnC!89cf3&9Z^K|-qAPrKo6_w$hvPGI^@%_wOq`^Xc zMHTK0k*k`f*;fdtwSRJ^9CPU@=?mpc_rgSK+NP{(V6O$#+fvxWPuGb5@n+hiKuzt1 z)a>Q46Sm(@;lS#i%83^odygJhXm8y7P<#7sjd_`{N2|TBw(Y#S)LOf6Yme^HQe9FC zg|iF8CAAm!=z438JC+XYy>Tr8j$X~M_tdfvhyL&U@1@3CI=Z#vw_@hZM@XvXT8}U> z`9~Z2rdyA|=9TuSC6}$m0)+-gpt15|IkmuQFZYN!I+$l@n(o0mt^BAX+~42|jnwo` zH&cTG$5c)uxgb|X-LDoC)}D>rnZ!RyJn>2vZM#z}S&?2Y-`V68Z_lCgJ| ze_!=~IVEE6FQ2i)Cxt?=O~zhIG8QKLhQ>4$JPxQC_M9mclcn9O7J^&=LdG6iDzMi% zj3ic4?D)2FoVWQ4ZsC9u% zz#h7w>1tORD?w;hSap(Z(uX3*YL%0Hg^9HMq+%E;(PxqFWm;K%n!Q+UY^7&=k28<``4kJd zE-f99PEb|dzWEE!7z^c8Xy08TQDfyPYY7Jwla6(jsHeM$GE=Xs{H)D6DFz1xn@z zP+ETnXaJ<@p^g-q0an7E&8fzn5}=~zlc>?Iwq>37s0c=6S;V*G?s_8djr;to8cbuAvX4~K2zQPGW*xR zLtq9-$1i;QNVYYMynQ9ety+FKQo4;{j|f86K{I9VSlIKO2iO_*FlSc;^Wya=Ci|dH zfw@Ry!x^`yNW>nK?m$tzS;^R|mxJ6*W6v~`sl;A#Qf=>)H-llXezq|M7ZUc+lKfc0 z-pFj7ggu+Ld_R1cWABiRy`-){)~Xf}dt-Yf>~Xbj*7QyWhZngmlsgtV9|(KNt6e4R zt>2TUq)>B`B*y@a8*^Z|;9I8`Jvr`+Xth?!njjZFtx2E$?ss|0AQx&2G%cY6%4-ws zM}_)|KgjHO z*qTEAulnXIa^iT{%Oye3mCFR!!;7bE!kU|lEe+E>UJmTh8_CDOUM}1k)o5cFANbfY ztj`7Za)CYG06GK#_E79{>T`2V>_&+BsQh?CLs^awTELRr*OqhB)90k?*w`cMNYa6o zv|wuxPu|kN*7I+dIrb74zPR!rotjC#1xsP5R=hUN687+ZrySU$(&)+z*hhnF5fbg> zMbd<2BMX;Zp1gRoinXQjJb%aDZ{%lt7DVZfGlfEk802zfnVl&D_8{;c7SwiA)s&1q z-V)_Wh-~p}uPao_u}AQNm#x7b43aEpk%L@%+$LcUY5{<92NsWf`GZiE@B+y>e&WQC zwCr{?a$DZ!H-=jn}ihw=dMBd5W z{`IYt>o_ZBTRj@jm#L#0aW71+FeD}NXaWCYW_PAuc?u+LiTiT2JV z>&2VZngo{92)qXpTAtiY$X>R7jAxaP8`~azl^_&?ZQ_;&N0!5qti+!2VvPY$@KvtC zyn`))!X#T%!XC8*@j~s#d#BG+y0Xd^C}iF6q$yoD9(fgec({2GyBd-fAmGS;<(39_ za;6r&XoE!S8q^s5v@sEC{NxNzkmFk#o$4m#md11swlw1PL@`myQ*#`dg5dZxhDl_h z&5+98W{@O`O$P*!F_ehdYrB91gxQMK1Qx#)`>H*tXm98P*A>^mBkfgqKSCNF4Ln2Z z;#(TEt6Lh~;FT~)*a~Gz?5Ue(OOv{y7HO~`aTYx!HMvWZr7CGlqkFc!gl}nlva+R7 zD{g6+rZBv%6Xa?nS4?~46}B`U*6qFeLcrd7TN*Oh!;St#ChrjaJao0-k zo!y>2tClJ-V*{scY8YD?oiG8z9xTxc9OkiltlkQ+yu~Gcw>cMKGYAiIL#6uK3q^vx z_0)Ym5wS-b{4f8|yqh+mzYl=X+ig!Mfu(QxrS~JT5IebI0t+Wyuvowz?9_Bk8>YrIjU@4+H>PwVW4idIHh%y0tN#^PBh|eMo z)c-)mtZB`IO{}JF5IIo_drCEI&?)LGDTdONNBK9a1iVo!hEPR^x&8`vXj{;7Nwd%IO# z%P+t8Wbqvy7c4U<|A|4S&yOKL-^uMp(oZ0ZY|A#29)NPxY^Arnle@y{UV5foq*q`s z$2VxuSFxFqB`SbGM*E<}G zS__H=wn6>7!XBl+#TTLF+ZU*Pr#;`nthAqJtyg8dpow4h9(x-`UR%4tybQnGyqMba zkiYh!?93nkGss)R-Y#ty5|#ydT}#zo$dj+T1`R@;!QLr0Mid->R&S2I_p;UHJ@z`D zy!?K2&zq>I;t}0@?8Ow-{ig#7Z-%}9YwwP!AO=DxiV9#=tc+0*Is{BN4(M_)zXGx+ z4QcY{T?xN7E>+F!t@wiX z;JC_pyx+_aTxw=Bd$tmLTK2htBkTP#TyUujzhtiufO!aTQ(VezyX*nL7~=*BN(il%9?{4JA7z2?+_!1B9wR3CR@*v20Iq zg_!f9j_ZgOBzjtp?h^iASpDbs`;xGGN!Yj~tX&e${)k*5T<)%35Qd54&ld>izX%t< zf1Tk6&Il7YeCHXVjfi#DLOAOp;CcyXg9O}U&k3GzQeJ;d*g3-19$l6l;kU4-1Z*+k zsCMt*VEO=8ae&|5-{0EbTiQD<+$H?jI>2w`zFWV%SpSgo<8pm#m+*37#(3TpB*xbJp51XFL`!d&~p1`M_vhb=CTFl@$Zr>TQKN9i4eOwMp4WBWh}+ z(%X-oQtQ5bqeD%lnaigU@ekt0D>X3qeim3c{h2adv@$cFf^)Jwm{LB`O_tkS8VZ(* zgGyLYh(>z~(>Mz;bKN!y79=AVLSZFPoz_g6Y(u}kS2#XE_J12u89laGDof01{g%J%IC5=4=wY4ZU zDU3=|my%75lK&p%^}CefLX`XnFexecnh;ow3w#?v0VJoOrzIx`lDh-QwMod8faJVl zWI!O92qhWi6;ehjQZiZ)fE+*u0ssNTsQ;4yfAc@t=3V`(BqY}c9;hlk3Y^)>B6a7m zgmmjN@xOr8mXB(<8M6Ld`>mIi#UX^;xUgi+p_>;GPtVHgb?{1PUC+sM&BYCwX=0Ao7T#soMK(s`+}` zwd#xClz01WojzE-{vChg8Ah5ljB!&5cC`L%uyQ>lE2P~*Y;C`k--q5o#S{Ns8og&$ zLlK~XT&f7QKal#6ZV#T^fdGkLV))5}_|MAao_<5l&xuX-b2Zd35QSKc@* zf(fjB)!MhP5?^_Sj-=Aa>$^kqcx|NS=oxPfd5-@_);kG@mT0}w_yN0zDGy=G)%Buw zjw@{u5mzDi0@{|&Pt;ck{Nhy+#*S(`ch|e{=Dm5ax^w;w)4W#ACsx=_M8(0-np(&0 zS6EX-U~Yfh-SbPd$WGe_LVER%GiLz4H>+6w$$9TQ%aMf3W4Yz}WpQYA zIG3?jU?ypQfWg?pXX&8QE2moM&IIO}>cul-&Y0z)oGzIUjct^2do{&ar&D_tJJi?h zX2T}EqZrmIQu2A|q#+1sXPAq74A1fR6?j~Pj(-hn42|%VMp3=&-`+kbP`tcN*B=0c;Zo4`7f(-lv$ z-lBAu1aFixU}97Wlg7zj%S;FPRx@$GQaSr$?Lsex{ZqRy`Vd~(rNxqQgAkogHUK(A z%Dmm)eUamy++en8+*GQQNpmV62{@=TvsVs=_b9S{BNk_PeU($;n%^3?{;JE%h?`?~ zgucHr^uKQR^PlM+ys-voJL@jYb4I-SCHXT)>K;DIe=M4&`+OhR1+Jm_sUb|Sm>@%x zf{ZO={#dDn{fJw^wB5?Dt;-#EFE_SMUq_!BAExF(G-X29_MM4^-a8V!# zYYUi>7^@*Ccjogpa`ouwKl`i{*})8su(7A_wMQ-ERWb#m9yVfnXP-GKR61xY{+5eWST^!MUD~H37Dt--v(p#CIyCke-QWU<%MS!KjpO zH#IFL7W$7DV{GBk9Jb^1OBb84R@`NMsKE{e4aB!EHn3YDwVH}QwdQqdHG0Y+IX+{j zS}p1Ps!yNPiP`7RyEFeNuipLmHL|`yUFBv}SDxl(gh1D?!L1ak7&hJCU8Hbh>N^CL z$?}MA7B60Z8jlC9KjWhb5&w7vBIY#N0`C_~PK2>#4w&bZb zCs?GsPUeF%JP|aQRbu=)hGA{2l3OME7KuBLtS zanLcE-;qVuxO#1q+1nhqB@Y6*tQl=o29!^WFinmrQx0X^VD~(vDvqz2$|6p!?a&@@ z#sF6|D>(J%gAoDBw+ustYUlded(xAeOP0N$1X(Z%PYmG)qiJ#nniD zE*2dh||EqF;_@HcvHt?CY;m>bP(8m8-Pb_v#2F$~_ujDzi_?Cml}) zSxUe58dd^Q@(UE`n$9rVtvALhwFP~9d>TZ`yX+%t#0|0VV|W7E#=f<%8V}_|j`?E4 zcbBDZta*sBP0jT}0ag3H($_?ug0zDBU)||H#3}&$W_Dti+0-+O; z*gqN=NO~^w8@>w{g z*u2+toKAnZEop2a?{Mu+42a6JMs<>pfZMJysN55)p`q+7-XnEydqr7r(B!AJ43cs; z4f*~!$riq6H1875O$NS_T~Xj6Eb850q3?rK0%Go_35G_ZD+C%pn)O%CtJlyLBFVt6 zj9)%<&DN#lTTir(VLBQzqGp+gmbGVDcw04?t->i;-u{TvHaV*dE^7nte303)VFd>> zzEo2VU^Fr((ro|2(~RiOljtbN=OEeplmW5xF~&BYv$9nAb)TQmWa!k*ENd|vYClZs zvSMO$n(L8E+*hk}QI_LjgFe?)gGyb^fJJ$u6c-X@R~gxiyI#v$Bzot~H|ZP-4_160 zn_ok^)=vfp_uk!VI$q!o8(bhPZeqkDRlBEG>gv>$RU~!T6OgbsZxA;ie+mr3ZxGHm zAPK7dqk)JMZvp#bJcXEB#o^N{3P;K2x7}sD-CxdAu5fkP4+mWm@IzG?)G$|gMn8N9 z-BVOmYyzBKnOrWv++B3Z?oF2d^?_v&Tk>XvqSiIww~b?^16{+wMymD1XtQ)II||t$ zd<#KoP9Js)UATYugf;yq?pvWRckN^9!K)BwP}yo@Oqw)$`2r|&CQW6u{1U)!{6%hF*u~CnOqQIwX1K4)8aNu5$wdvkt!@P6S7p8$XjO9r!BBi>|GyY+-AtdNQPudWT)9^p~72;rk`D2rlQwWt4J{t~T4?x-i7c zC8fRN87SO1L(6Nf2HO5RL2{~^@*ldrsS90A>dClR}#K8;mqfP2YWd5lP5NmXS=SYymAISDp2Y_`;Ptz(en$TFbf`9`=Gnq$j#>wdG_7h#r8Ru}3xeL-bBd&0;6^)2I6Z=?< zN)h?)bl6UFy|2V$^=L!vuci>E)5R!|N1?Hd{>>$FXOQtITwX&}Iu+B{OR=gGkL)eK zWW9^^DrE-ONkoFoYIxB{T9(#_)LZxmR0xdf;P1{2#kb}wULcu&dfzW+*|LB_^bze@ z7voi7%g89}Hc(3BMr&xArJEKVt6hQ;O#_w4xHLv4@)&=2i7c+jrT@!lmF==Ns_lfb(A&*+bp!?^RYz%y{_MDh?1)R)btHW~tI#}5oy82UR?$77 zkR{F}5-^ezl>v>TO$&owLXuz01s?^TSBeK_)cKAVKcw$oZQU40G-@HXINNksUo}!7 zpf9+k1FPC?)q&IcE6ms@&-5Fx!IwDXovSB)OIek?BeqgE|DpGXSL8;5+LDml*qQUC z4n$_9P-y9O8nYk)$i-3zdcI;-6R8RmJFh6=x)!SttA^JM{#gFKH<`0}P)?e8MAHNW zA2fYp^qd(yvzbp0sFQ&4MrpmsolXJ3erjMk5LNlRF0WS!o01Js8T9Fe41afK;u5kF zwjAWOV!%#ss}vnqef_EXS$Tg_ctusmX|Vh|KQsE=ECix@1|2z1wz<)tBBJZ<$mrkc zH{2JJa{BGvJEJCJrbwfO1Q5nbJfB9rMCHw}p+6j267;z`pr$t4DF}dK7g{-O7oxOU->F+{)ONbEuU|mcW(gSzju&#sFtX=Z) zY-D&@f)#KWuq;^UX|)bq=brpeuER<&Kha8YtdCl}b-8W7=WDm0+r)vN2Cn;RUv+X@ zSoXXzZ~Xm^(e^$693$@LYyU+7k3Za|b{U&yAonK7z*)=H9g**}{7%OChde?;s)kdP zZeh6Z3ixGL)dtVd{QY)+sjr*s(HJepn|oy`(^Vz+zUOoe>v-Nld-W|~?l^1>*3yl0 zb9E*9Dz!;~hm?%rLT6WG+&}ZNfEy&7xl{UAELl+f9rG{eq-6En@Jcwo3w5BnUnBS% zqEUZQIlIEEO#~voPTK2k21F%!=5AcjYt5Wu-VeU?Ead$3njde0bdPZy8?%(3S8cl) ziruFUbR2%FsGO-SQnmFdis%ni(zLeTf@Mm+TD`!!mv#BOID04Et9d;dJ-%8P^rE`R~RqsFb3aZDHhUkI1+X_>qVT~3v6^SD)^u6)jS zP%GTJT&Rm^4BI=fmOG|R+3V(t8aVGceu_NOBtdmq-shYBGG3?*NDd}ds)Iu9;^me5 zwrrE1E<7U1YMSRl+YkkBFHH)=tvpMvjXd)7&-iplamo?n@II0V2{M!)9z!6n^p1hFjoVB z{qe9TA}j3e8Q($n;&twqy5V5umGqF@+-YYi3#t0U$^Y_M!fIb;$@;05w+Ngcv<=*r#ZuSM*-TK@z?T7;Dl z7e%3scR$1dxePdIApRl9C-bT=r}+!4fmlBLT84FW3aiW)nV6KRw4|~F^|z{R9?2Cj zrNsQly5GpoNHU?}VCZtfo&3n|N8iZ#p*;VEPGtXrM>0YLqZ;V8Um;xnT@fa@5V*AW z!wS9@!|2w!zhqydP64+`rtp=B?hLA#;6jsxgVkWnl!023R^_A+SNY!7s( znfB2;`yLg-f}mzsT=#gI9vZd5fEeDy(j1ycBCFLA@F}h+HLZ~z(M}rSSq+XO4-8Tf z_y??k7+mB;xS`{x#oDBTRkgf-Vym*jY@L8hRt;o4Zi%LbwvNRVL=qqTsRn8XxT5@G z%%_QP&J-U)t2j}r$C@pqZ^X{6ioHMUBsXx34d^8@TF~FB+O(e zNC5qRwIu=T=hys#A6@&j;ze^`89h9VgY0i+5OXtYSg(5}et0SfHJPD!xqA9ZSjqfj z_i;a&q?vUarsqR(u2@*9dVeXFPb>X`)SxIic^3zXIv{_qRZIYFIER7rHZ}X5n?{tJ z!%%GjyDgrmLmVUnYF#G0>=}kq3~ygP{K`-!{P6fkf~9W>`w5nhY{2t%0haHgT-bK~ zNko{16R(-|+u!R^u7_~uT`Zr_S@UK5^anHR6~Xb09^u^P8t;n93>%E<#7JMh_*cn= zP0cl?j7jcm?}->?!cldT(r9|3u9qVClk%0iW)LjmeB}{QyiXYTbWVU1Ihj#+T&jWl zy%+e2xIVnv)URnqE@Js8jfby)%wi)pvyR(zId3iyO-DB!wB9VlmQ_U)0f}}7VSg46 zmdcIcAQEcQP0zm*?`%)HY5O-eiH4U6zrpfB#H*W$?=@Jy|87Kz|GwBD<0doKYr_BS zWRqNxOLTU&LDiHt~j&A|{F87W9>+ci>p5omq0uqO6INfWO+4-&6!bKDuS|$t#AzD#!&gY!uJhxKX4BBEK zs{acIsZh`HpC|goyoZI}8p~&sOmz6Y@Bhk~x`d2ZR33Mj{(&VbPh@0@%hvi1(HHdk z_|p&ng6=i^K|A()hvmzOG+z|^^jovyua=h9(c6Ed>}2#TP=D~68_%%$qr~5cdi$Pe zhx5M-5fvm-@@B>BzOoAXsXP9fgv9~5&nf!*)_g>P@HZI;i*xMwC&ZGwFT+l< zehOVobW;iG%Ud3a&p|jRx`LmKkTzkZpsd8--tv(hk=qg3_Wq)kgd1ZSV^`o?tAJlX zYD(q%#8CqtF@*`{?}%r^qnh9^imvjgj>^7#0%D5vY&0MGt`^F30r{#{WZsDV!KL)J z=~FoYp(^&WCEq3)q_|RQDT`x(a4x?7F}K5|v#gge;4*A>`LzdH`Iw-)ITSF|vA!iF z82c`@e4X@6PtPkjPV7YsQ)|AB`bt@0L(i(sF1NW-eu?@9bryRg3xx%^J<@pszBi~# z-XBg&lX0Y37o1Tt6aqrYlb8FWZ+yI?V%D;8$jU1sPli&@p6LO{Tod7HGXcgZ8{47u z^wye#ol?|(O=t*d+p4!+(l(_DUB*o9MNo@WMB4=G$*2^O?UDkG>lf!vjz@VQsP#*V z>d<>Rst8{u5kzYqtv}h4QH3j+$86d^K81IW>6pu9LV57iozNa~$a)f+!O16MGJ|9| zWX{$sXLsP{g6q$b83mL7F(5=(#G>v6%@tN5j~e@Fro$kSk+L)*dq-mteV$XpVHnl4 zaFFuK{%uJYGSt@X29?5dDSKGh5bLTDK22Kx$*2CMzt%(tfNccy(T=THUYWrIlu3J2DC6^c;jPb86}gOp0ryeTmq*z+W=MQ_{M&gGGWaxkjXFocW) zj=#)y`4rAXbj+#|9VEG6uUMbp*l3Lrzw{Ub7dfnaYg<6P|+Btdl~-_gIiapYIH zeU!;42@&ksO;FAEH`r;O&v^1xft3^zFglQajBlj`8p>x3(tl_TX>E@cuw_*w)ENdx zJM&928TO@wqX0CC2L0Bhxk_!J@5+@Pcd7r(qhUehb(_EdSoVLOa)DVj>tV}jVZI|X zCkb33Up(#Mh!_Vs2bc9c)&IlzihxgTa}&N5h*G6iLQv107OMgWNoY~3R)=GDpPd2X zkP)hbDA41B)&s0ILpvs(qKLduT-9}}NzvCTOFZoC&G+^PuK^I9i71uig8WE;TDx1Y4PjV97_uX7U|M=M z9l7VMD%`_DTu`tFK{al)R!O8ZE^;0}meg582zwm)B?Qtx(KQvKwA}PZ&0A$ct0)T3 z;RnPmi2u%Li~}8y_xAUO@I2F%d(vU1$fKa=44GVN(LODKCTRLDNK{A5ZMVrG3r~C+ zfXJ$sKs0xbJ;51m4+QTX<@?4V5}W?a_3T+TUeT2r|3<6qRxtyaU(p})+XpE@revS$ zC3+Cl5q=MY@soCA7GJ|!3r%&7qC;)VIWXvG`GWd|xE zM?lGQT?HU*CNOHsB1ijyAkX0%MPL_XE}>b!O#>?vml z$BpN%X-`!^7TtpPhTR3PLCYgb8>io$*)m1u^QUl*qD~TI%@+xxh?8<(M%<2JeR~HhUMDL4IX$-Z$zQC z$xNo)V(Psv)~F2tBd5KOd(E(sFw7j;E=TA3{nVtiT9`;oC*B*41}Qg-;ys}f(d+InfJ3bOz%r+A~MrE e3aK-sKr)wJGq7Fb+WO}M=Y#t?s-Ki?qW>QQ6z2W_ literal 0 HcmV?d00001 diff --git a/kdiff3fileitemactionplugin/CMakeLists.txt b/kdiff3fileitemactionplugin/CMakeLists.txt new file mode 100644 index 0000000..36787eb --- /dev/null +++ b/kdiff3fileitemactionplugin/CMakeLists.txt @@ -0,0 +1,10 @@ +add_definitions(-DTRANSLATION_DOMAIN=\"kdiff3fileitemactionplugin\") + +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS KIO + WidgetsAddons # KMessageBox + ) + +set(kdiff3_fileitemaction_src kdiff3fileitemaction.cpp ../src/Utils.cpp ../src/ignorelist.cpp ../src/fileaccess.cpp ../src/DefaultFileAccessJobHandler.cpp ../src/progress.cpp ../src/ProgressProxyExtender.cpp ../src/Logging.cpp) + +kcoreaddons_add_plugin(kdiff3fileitemaction SOURCES ${kdiff3_fileitemaction_src} JSON kdiff3fileitemaction.json INSTALL_NAMESPACE "kf5/kfileitemaction") +target_link_libraries(kdiff3fileitemaction KF5::I18n KF5::WidgetsAddons KF5::KIOWidgets) diff --git a/kdiff3fileitemactionplugin/Messages.sh b/kdiff3fileitemactionplugin/Messages.sh new file mode 100644 index 0000000..9a6a44b --- /dev/null +++ b/kdiff3fileitemactionplugin/Messages.sh @@ -0,0 +1,2 @@ +#! /usr/bin/env bash +$XGETTEXT *.cpp -o $podir/kdiff3fileitemactionplugin.pot diff --git a/kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp b/kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp new file mode 100644 index 0000000..833b02a --- /dev/null +++ b/kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp @@ -0,0 +1,280 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "kdiff3fileitemaction.h" + +#include "../src/fileaccess.h" +#include "../src/Utils.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +static QStringList* s_pHistory = nullptr; + +class KDiff3PluginHistory +{ + KConfig* m_pConfig; + KConfigGroup* m_pConfigGroup; + + public: + KDiff3PluginHistory() + { + m_pConfig = nullptr; + if(s_pHistory == nullptr) + { + //std::cout << "New History: " << instanceName << std::endl; + s_pHistory = new QStringList; + m_pConfig = new KConfig("kdiff3fileitemactionrc", KConfig::SimpleConfig); + m_pConfigGroup = new KConfigGroup(m_pConfig, "KDiff3Plugin"); + *s_pHistory = m_pConfigGroup->readEntry("HistoryStack", QStringList()); + } + } + + ~KDiff3PluginHistory() + { + //std::cout << "Delete History" << std::endl; + if(s_pHistory && m_pConfigGroup) + m_pConfigGroup->writeEntry("HistoryStack", *s_pHistory); + delete s_pHistory; + delete m_pConfigGroup; + delete m_pConfig; + s_pHistory = nullptr; + m_pConfig = nullptr; + } +}; + +KDiff3PluginHistory s_history; + +K_PLUGIN_FACTORY_WITH_JSON(KDiff3FileItemActionFactory, "kdiff3fileitemaction.json", registerPlugin();) +#include "kdiff3fileitemaction.moc" + +KDiff3FileItemAction::KDiff3FileItemAction(QObject* pParent, const QVariantList& /*args*/) + : KAbstractFileItemActionPlugin(pParent) +{ +} + +QList KDiff3FileItemAction::actions(const KFileItemListProperties& fileItemInfos, QWidget* pParentWidget) +{ + QList actions; + + if(QStandardPaths::findExecutable("kdiff3").isEmpty()) + return actions; + + //m_fileItemInfos = fileItemInfos; + m_pParentWidget = pParentWidget; + + QAction* pMenuAction = new QAction(QIcon::fromTheme(QStringLiteral("kdiff3")), i18n("KDiff3..."), this); + QMenu* pActionMenu = new QMenu(); + pMenuAction->setMenu(pActionMenu); + + // remember currently selected files + m_list = fileItemInfos.urlList(); + + /* Menu structure: + KDiff3 -> (1 File selected): Save 'selection' for later comparison (push onto history stack) + Compare 'selection' with first file on history stack. + Compare 'selection' with -> choice from history stack + Merge 'selection' with first file on history stack. + Merge 'selection' with last two files on history stack. + (2 Files selected): Compare 's1' with 's2' + Merge 's1' with 's2' + (3 Files selected): Compare 's1', 's2' and 's3' + */ + + QAction* pAction = nullptr; + QString actionText; + + if(m_list.count() == 1) + { + int historyCount = s_pHistory ? s_pHistory->count() : 0; + + actionText = i18n("Compare with %1", (historyCount > 0 ? s_pHistory->first() : QString())); + pAction = new QAction(actionText, this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotCompareWith); + pAction->setEnabled(m_list.count() > 0 && historyCount > 0); + pActionMenu->addAction(pAction); + + actionText = i18n("Merge with %1", historyCount > 0 ? s_pHistory->first() : QString()); + pAction = new QAction(actionText, this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotMergeWith); + pAction->setEnabled(m_list.count() > 0 && historyCount > 0); + pActionMenu->addAction(pAction); + + actionText = i18n("Save '%1' for later", m_list.first().fileName()); + pAction = new QAction(actionText, this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotSaveForLater); + pAction->setEnabled(m_list.count() > 0); + pActionMenu->addAction(pAction); + + pAction = new QAction(i18n("3-way merge with base"), this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotMergeThreeWay); + pAction->setEnabled(m_list.count() > 0 && historyCount >= 2); + pActionMenu->addAction(pAction); + + if(s_pHistory && !s_pHistory->empty()) + { + QAction* pHistoryMenuAction = new QAction(i18n("Compare with..."), this); + QMenu* pHistoryMenu = new QMenu(); + pHistoryMenuAction->setMenu(pHistoryMenu); + pHistoryMenu->setEnabled(m_list.count() > 0 && historyCount > 0); + pActionMenu->addAction(pHistoryMenuAction); + for(const QString& file: qAsConst(*s_pHistory)) + { + pAction = new QAction(file, this); + pAction->setData(file); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotCompareWithHistoryItem); + pHistoryMenu->addAction(pAction); + } + + pAction = new QAction(i18n("Clear list"), this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotClearList); + pActionMenu->addAction(pAction); + pAction->setEnabled(historyCount > 0); + } + } + else if(m_list.count() == 2) + { + pAction = new QAction(i18n("Compare"), this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotCompareTwoFiles); + pActionMenu->addAction(pAction); + } + else if(m_list.count() == 3) + { + pAction = new QAction(i18n("3 way comparison"), this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotCompareThreeFiles); + pActionMenu->addAction(pAction); + } + pAction = new QAction(i18n("About KDiff3 menu plugin..."), this); + connect(pAction, &QAction::triggered, this, &KDiff3FileItemAction::slotAbout); + pActionMenu->addAction(pAction); + + //pMenu->addSeparator(); + //pMenu->addAction( pActionMenu ); + //pMenu->addSeparator(); + actions << pMenuAction; + return actions; +} + +KDiff3FileItemAction::~KDiff3FileItemAction() = default; + +void KDiff3FileItemAction::slotCompareWith() +{ + if(m_list.count() > 0 && s_pHistory && !s_pHistory->empty()) + { + QStringList args; + args << s_pHistory->first(); + args << Utils::urlToString(m_list.first()); + KProcess::startDetached("kdiff3", args); + } +} + +void KDiff3FileItemAction::slotCompareWithHistoryItem() +{ + const QAction* pAction = dynamic_cast(sender()); + if(!m_list.isEmpty() && pAction) + { + QStringList args; + args << pAction->data().toString(); + args << Utils::urlToString(m_list.first()); + KProcess::startDetached("kdiff3", args); + } +} + +void KDiff3FileItemAction::slotCompareTwoFiles() +{ + if(m_list.count() == 2) + { + QStringList args; + args << Utils::urlToString(m_list.first()); + args << Utils::urlToString(m_list.last()); + KProcess::startDetached("kdiff3", args); + } +} + +void KDiff3FileItemAction::slotCompareThreeFiles() +{ + if(m_list.count() == 3) + { + QStringList args; + args << Utils::urlToString(m_list.at(0)); + args << Utils::urlToString(m_list.at(1)); + args < 0 && s_pHistory && !s_pHistory->empty()) + { + QStringList args; + args << s_pHistory->first(); + args << Utils::urlToString(m_list.first()); + args << ("-o" + Utils::urlToString(m_list.first())); + KProcess::startDetached("kdiff3", args); + } +} + +void KDiff3FileItemAction::slotMergeThreeWay() +{ + if(m_list.count() > 0 && s_pHistory && s_pHistory->count() >= 2) + { + QStringList args; + args << s_pHistory->at(1); + args << s_pHistory->at(0); + args << Utils::urlToString(m_list.first()); + args << ("-o" + Utils::urlToString(m_list.first())); + KProcess::startDetached("kdiff3", args); + } +} + +void KDiff3FileItemAction::slotSaveForLater() +{ + if(!m_list.isEmpty() && s_pHistory) + { + while(s_pHistory->count() >= 10) + { + s_pHistory->removeLast(); + } + const QString file = Utils::urlToString(m_list.first()); + s_pHistory->removeAll(file); + s_pHistory->prepend(file); + } +} + +void KDiff3FileItemAction::slotClearList() +{ + if(s_pHistory) + { + s_pHistory->clear(); + } +} + +void KDiff3FileItemAction::slotAbout() +{ + QString s = i18n("KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n"); + s += i18n("Using the context menu extension:\n" + "For simple comparison of two selected files choose \"Compare\".\n" + "If the other file is somewhere else \"Save\" the first file for later. " + "It will appear in the \"Compare with...\" submenu. " + "Then use \"Compare With\" on the second file.\n" + "For a 3-way merge first \"Save\" the base file, then the branch to merge and " + "choose \"3-way merge with base\" on the other branch which will be used as destination.\n" + "Same also applies to folder comparison and merge."); + KMessageBox::information(m_pParentWidget, s, i18n("About KDiff3 File Item Action Plugin")); +} diff --git a/kdiff3fileitemactionplugin/kdiff3fileitemaction.h b/kdiff3fileitemactionplugin/kdiff3fileitemaction.h new file mode 100644 index 0000000..b809342 --- /dev/null +++ b/kdiff3fileitemactionplugin/kdiff3fileitemaction.h @@ -0,0 +1,40 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KDIFF3FILEITEMACTIONPLUGIN_H +#define KDIFF3FILEITEMACTIONPLUGIN_H + +#include +#include + +class KDiff3FileItemAction: public KAbstractFileItemActionPlugin +{ + Q_OBJECT + public: + KDiff3FileItemAction(QObject* pParent, const QVariantList& args); + ~KDiff3FileItemAction() override; + // implement pure virtual method from KonqPopupMenuPlugin + QList actions(const KFileItemListProperties& fileItemInfos, QWidget* pParentWidget) override; + + private Q_SLOTS: + void slotCompareWith(); + void slotCompareTwoFiles(); + void slotCompareThreeFiles(); + void slotMergeWith(); + void slotMergeThreeWay(); + void slotSaveForLater(); + void slotClearList(); + void slotCompareWithHistoryItem(); + void slotAbout(); + + private: + QList m_list; + QWidget* m_pParentWidget = nullptr; + //KFileItemListProperties m_fileItemInfos; +}; +#endif diff --git a/kdiff3fileitemactionplugin/kdiff3fileitemaction.json b/kdiff3fileitemactionplugin/kdiff3fileitemaction.json new file mode 100644 index 0000000..aca1268 --- /dev/null +++ b/kdiff3fileitemactionplugin/kdiff3fileitemaction.json @@ -0,0 +1,61 @@ +{ + "KPlugin": { + "MimeTypes": [ + "application/octet-stream", + "inode/directory" + ], + "Name": "Compare/Merge Files/Folders with KDiff3", + "Name[ca@valencia]": "Compara/fusiona fitxers/carpetes amb KDiff3", + "Name[ca]": "Compara/fusiona fitxers/carpetes amb el KDiff3", + "Name[cs]": "Porovnávejte/slučujte soubory/složky pomocí KDiff3", + "Name[de]": "Dateien und Ordner vergleichen und zusammenführen mit KDiff3", + "Name[el]": "Σύγκριση/συγχώνευση αρχείων/φακέλων με το KDiff3", + "Name[en_GB]": "Compare/Merge Files/Folders with KDiff3", + "Name[es]": "Comparar o fusionar archivos o carpetas con KDiff3", + "Name[eu]": "Alderatu/bateratu fitxategiak/karpetak KDiff3 erabiliz", + "Name[fi]": "Vertaa ja yhdistä tiedostoja ja kansioita KDiff3:lla", + "Name[fr]": "Comparaison et fusion de fichiers ou de dossiers à l'aide de « KDiff3 »", + "Name[ia]": "Compara/Fusiona Files/Dossieres con KDiff3", + "Name[it]": "Confronta e fonde i file o le cartelle con KDiff3", + "Name[ko]": "KDiff3으로 파일과 폴더를 비교하거나 병합", + "Name[nl]": "Vergelijk/Voeg samen bestanden/mappen met KDiff3", + "Name[nn]": "Samanlikna/flett filer/mapper med KDiff3", + "Name[pl]": "Porównuj/Scalaj pliki/katalogi z KDiff3", + "Name[pt_BR]": "Comparar/mesclar arquivos/pastas com o KDiff3", + "Name[ro]": "Compară/îmbină fișiere și dosare cu KDiff3", + "Name[sk]": "Porovnať/zlúčiť súbory/adresáre s KDiff3", + "Name[sl]": "Primerjaj/Zlij datoteke/Mape s KDiff3", + "Name[sv]": "Jämför/Sammanfoga filer/kataloger med Kdiff3", + "Name[uk]": "Порівняння та об'єднання файлів та тек за допомогою KDiff3", + "Name[x-test]": "xxCompare/Merge Files/Folders with KDiff3xx", + "Name[zh_CN]": "使用 KDiff3 比较或合并文件、文件夹", + "ServiceTypes": [ + "KFileItemAction/Plugin" + ] + }, + "MimeType": "application/octet-stream;inode/directory;", + "X-KDE-Submenu": "KDiff3", + "X-KDE-Submenu[bg]": "KDiff3", + "X-KDE-Submenu[bs]": "KDiff3", + "X-KDE-Submenu[ca]": "KDiff3", + "X-KDE-Submenu[cs]": "KDiff3", + "X-KDE-Submenu[da]": "KDiff3", + "X-KDE-Submenu[de]": "KDiff3", + "X-KDE-Submenu[el]": "KDiff3", + "X-KDE-Submenu[es]": "KDiff3", + "X-KDE-Submenu[et]": "KDiff3", + "X-KDE-Submenu[fr]": "KDiff3", + "X-KDE-Submenu[hu]": "KDiff3", + "X-KDE-Submenu[it]": "KDiff3", + "X-KDE-Submenu[nb]": "KDiff3", + "X-KDE-Submenu[nds]": "KDiff3", + "X-KDE-Submenu[nl]": "KDiff3", + "X-KDE-Submenu[pl]": "KDiff3", + "X-KDE-Submenu[pt]": "KDiff3", + "X-KDE-Submenu[pt_BR]": "KDiff3", + "X-KDE-Submenu[ru]": "KDiff3", + "X-KDE-Submenu[sv]": "Kdiff3", + "X-KDE-Submenu[uk]": "KDiff3", + "X-KDE-Submenu[x-test]": "xxKDiff3xx", + "X-KDE-Submenu[zh_TW]": "KDiff3" +} diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..79c0e6e2adc3801a4fb6a691c0c245fa576d20f7 GIT binary patch literal 2952 zcmZYBdpy(o9|!R7Hq715BG-`QxF3ad5z8fNiHMia%Ar0GHGg( zIK*7XFk+c<*&+i-jCX0lg{zKhqTbcC*x1+y@o`uzHZd{LH#ruE z!zHHRqH#%RTv8-1DfM5KlA4N1#YLs1Jj_Txfsc#JdW_A%XXoT3{4mBG8E5^C$sA*T9Aix|Cngs-U%%sgSy=oszwl*# zJEz&7r)Fj+rlwhwpT<8BA#*#s@k>kRt;_@BhcU z;ePtizxC0Fe&`-}*ZX#`=PjM~chYy0(Y@ zj&52zwO4>b?dhcUP`U)V1=_p1TRMAMJA0Zb)D{Z0nbIvta!2O{3h`pcvnw6M)2)QY zmbU!nH|pdpg=V}G8GnGBZ`WMh(AXsKxUuf%rtFAPgvx@7q4#PXWgKh-2`dxib!RXnUZPQbN_SWK!CC?Sz5p1-L4 zUPL1C_sYs=&xjQj&j^I_(z3FwlCsQ_(m(#;Rx*x%QjC1^KD)5UyRa`iH_s+_GCLoFr2lZ&i9(1qP zy;g&emj*%4^a3k%Z#>oUCumyx+5J4equThA*?&kMiJ z^Rb?1hQ3F-V(uTaf(5X@b>`IBzZcHbx zQ_SGVa`WrtYEmWfIk7mCpT9moGc}dPUBh?nJ#iNRpo*cAxEIIC z!t{WMU97LgVx#U9tp9oTx8aYKA;2Jc-BB?(Er@Z4UpsDW^4Z8tBpT$7P=E=Vke6bM zF=%pdr^2EJ(0d68Q9%r%XyCZgqp~kh7#c*OBMXR`HAgms$HgyJAs8Tc^g6?)m>m!- z#x9e}$!!*2nmKbCbZIo*z76hhR=ikB5od~&8*jbf^*Say`v~WH7|7Dn&gue4KjC1( zE4&P+ks4GxzY!2&%R1Oru%{p;ql3qv8EVHtGnSF z)^3e{E7*XZ^1z47L-xR-M2fwm4O0UtBpDBaNk?(kFJeDC1{EJB2hY|IgtTWH7=ym3 zH)fwEY~c9!FR*#`cr`!XL~j~#8oXs>uwOkk;CkSB#hkz>p>T{3JMO0WA)OhE@Dy?y zQ&PAe>B_gCnzR#&rvCgiTp_rTgx=r3$Z>f`c5tcE+)&UtO)yAF{H7;Webc6G)*x8X zb})NnM0w(`>9F6z+qmMjvR{R0WNzpIB_gM7MJ{cZM`IxwLrvI=lX> z=X>&C2RK0H*6Ou;qLS~DuaZ#JK4*yT`=o=Y)_0`MP34?KPA<9b{uIIU2FD`w%Ht*u zQo@Wy`|rcn?e^h+I=gO)z51uM$4Y_vQMJt;;Uz3#m)k_l$)QiNvtG8El8=@QPOoUSuF6zwuoa0jfF@(qz;hbFlU8G}yCWlS$e%>;D@CjXp=0JZzK#xSGkcKF>!Sc}H4J9x&-9 zt!PA=PhN(dHq>$nJ?2^NZ|9QH?74q+AJeHoinCPbpE5V>FUEY#S?Em=8IXICzQ2$u z;hmJLzjJx-m0#-z)?DRKq`E3!V-Dyjr%BBTi6*IBL5 z)4%@Nu-t-RdF;?s;(i-O{6a88I6=_lZf#B#iCpJU~e|6Z3p5_OjVG9o4Xd$D)0l8x{G})P(t+_dDgVkOcsVP8%!yBJbTNw3pX;u z@7uhQW;4_fK_3i4o3uJ&e=Z~5?<1Xv`D)x z)F5sQ@>mZcpVr8=gCihT-DdLZ707_avHUI2;_50jI$v~S6Sd(cEUoq^U$lD5pDB5X zE>Z-9uc@sL7#`);h_-~W{Sh_+9%3gbuWDQFEDfPu4kX0#F?>v$CC=HJ5gp=kGNNbr zk?-$$3d*av#jLe;i=4M29IR|U=? zsfSS9tbn8OLgBhG+zghCN*MPO8f2|@5+TE9j;l;PMWGe2$EP6+hO75kL9g~mwrXSZ zhUR8w9`|~`9P0=&wq&K+WKLfk`eo4MBPWedDURG^xOs$u#0Y6$z>agFPL?)d67;R& zO=S)vb6gvabQ$7aE8|l=8xfmt3-iTMC{3#9#?a=blZmp@45PxbliQ?iDO9}zhX&j-_u_k4CDi|vA~;XArm?MDd?H|NR$5M4)b}plFiFg$w$H-ijy~(JNU8q zF*9yQ?(H1Qg=uK``CCR!cUjDRvW`Tf**S^Kx#WA7j)@d+#6#@YF(mqlnECc|J z2wT!3kDxZYd(9I^cZ$iOzhM+PCqpmeM|ow?TXI*561h+#x#RLr%w|)OAWbWtUG-!! zS~VWny10tH8Afisu6<`QQaBLqz80{qhyY8%4;j(Ga88K{4m~%30N+m+fpcD(jGsZQ kl%A7w5_SfiL&$NUbGwt90$(>+Z+{~kY){!#S|OwU1Ni0t+5i9m literal 0 HcmV?d00001 diff --git a/po/ar/kdiff3.po b/po/ar/kdiff3.po new file mode 100644 index 0000000..c7d908c --- /dev/null +++ b/po/ar/kdiff3.po @@ -0,0 +1,3340 @@ +# translation of kdiff3.po to Arabic +# محمد سعد Mohamed SAAD , 2006. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2006-12-03 19:06+0100\n" +"Last-Translator: محمد سعد Mohamed SAAD \n" +"Language-Team: Arabic \n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\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 && n%100<=99 ? 4 : 5;\n" +"X-Generator: KBabel 1.11.4\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "جاري طلب حالة الملف: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "جاري قراءة الملف: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "جاري كتابة الملف: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Making folder: %1" +msgstr "جاري قراءة الملف: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Removing folder: %1" +msgstr "جاري قراءة الملف: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "إعادة تسمية الملف: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "نسخ الملف: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "جاري قراءة الملف: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "خطأ داخلي فادح" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "خطأ داخلي فادح" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "خطأ داخلي فادح" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +msgid "File %1: Line not available" +msgstr "غير متوفر" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "أ" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "ب" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "س" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "السطر الأعلى" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "النهاية" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +msgid "Open File" +msgstr "العملية" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "أنسخ A إلى B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "أنسخ B إلى A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "أمحي A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "أمحي B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "أمحي A و B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "أمحي ( إذا كان موجود )" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "إنتهيت." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +msgid "Error" +msgstr "خطأ." + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "غير محفوظ." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "جاري..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "واجب العمل." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "الاسم" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "العملية" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "الحالة" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "أبيض" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "إعادة المسح" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "فشل فتح المجلّدات:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "الدليل A \"%1\" غير موجود أو هو ليس دليل.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "الدليل B \"%1\" غير موجود أو هو ليس دليل.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "الدليل C \"%1\" غير موجود أو هو ليس دليل.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "Directory Open Error" +msgid "Folder Opening Error" +msgstr "خطأ فتح الدليل" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "تحذير بشأن الضوابط" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "جاري مسح المجلّدات...." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "جاري قراءة الملف: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "جاري قراءة الملف: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "جاري قراءة الملف: %1" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "إفحص الأذون للمجلّدات الفرعية." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "جاهز." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of equal files:" +msgid "Number of manual merges: %1" +msgstr "عدد الملفات المتساوية:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "جاري الإجراء " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "هذه العملية ليست ممكنة حالياً." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "العملية غير ممكنة" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "حصل خطأ عند النسخ.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "إفعله" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "This operation is currently not possible." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "هذه العملية ليست ممكنة حالياً." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "تابع بلبند الأخير" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "حصل خطأ. إضغط موافق لترى المعلومات المفصلة.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "نسخ( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "إعادة تسمية( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "خطأ: فشلت إعادة التسمية." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "خطأ عند إنشاء الدليل." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "الهدف" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "النوع" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "الحجم" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "آخر تغيير" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "غير متوفر" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "الهدف: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "نفّذ العملية للبند الحالي" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "قارن الملفات المختارة" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "عملية إختيار تلقائية لكل البنود" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "لا عملية لكل البنود" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "أعرض الملفات المتشابهة" + +#: directorymergewindow.cpp:2973 +#, fuzzy, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "أعرض الملفات المتشابهة" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "أعرض الملفات المختلفة" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "أعرض الملفات فقط في أ" + +#: directorymergewindow.cpp:2975 +#, fuzzy, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "أعرض الملفات فقط في أ" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "أعرض الملفات فقط في ب" + +#: directorymergewindow.cpp:2976 +#, fuzzy, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "أعرض الملفات فقط في ب" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "أعرض الملفات فقط في س" + +#: directorymergewindow.cpp:2977 +#, fuzzy, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "أعرض الملفات فقط في س" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "لا تفعل أي شيئ" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "أمحي أ و ب" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "جاري قراءة الملف: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "فشل إنشاء نسخة مؤقتة من %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "فشل فتح %1." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "خطأ عند القراءة من %1" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of these files failed:" +msgstr "فشل فتح المجلّدات:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, fuzzy, kde-format +#| msgid "Directory Open Error" +msgid "File open error" +msgstr "خطأ فتح الدليل" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +msgid "Reload" +msgstr "جاهز." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "يخرج من التطبيق" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +msgid " (Selection)" +msgstr "أمحي A" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +msgid "Configure KDiff3" +msgstr "&تابع" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "القياس: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "التاريخ و القياس: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "جاري مقارنة الملف..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "ب" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +msgid "Configure" +msgstr "&تابع" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "عدد المجلّدات الفرعية:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading A: %1" +msgstr "جاري قراءة الملف: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading B: %1" +msgstr "جاري قراءة الملف: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading C: %1" +msgstr "جاري قراءة الملف: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "" + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +msgid "Open Folder" +msgstr "العملية" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "فشل كتابة بيانات الحافظة إلى الملف المؤقت." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "من الحافظة" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"إحتمال فشل الإجراء التمهيدي. إفحص هذا الأمر:\n" +"\n" +" %1\n" +"\n" +"سيتم تعطيل الإجراء التمهيدي الآن." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/bg/kdiff3.po b/po/bg/kdiff3.po new file mode 100644 index 0000000..1b150a7 --- /dev/null +++ b/po/bg/kdiff3.po @@ -0,0 +1,3733 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Zlatko Popov , 2006, 2007, 2008. +# Yasen Pramatarov , 2009, 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2011-09-29 09:35+0300\n" +"Last-Translator: Yasen Pramatarov \n" +"Language-Team: Bulgarian \n" +"Language: bg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Ясен Праматаров,Златко Попов" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "yasen@lindeas.com,zlatkopopov@fsa-bg.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Вземане статуса на файл: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Чете на файл: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Запис на файл: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Няма памет" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Създаване на директория: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Премахване на файл: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Премахване на файл: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Създаване на връзка към символи: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Преименуване на файл: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Копиране на файл: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Чете на файл: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Списък на директория: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Грешка от загуба на данни:\n" +"Ако продължава, моля, свържете се с автора.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Сериозна вътрешна грешка" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Сериозна вътрешна грешка" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Сериозна вътрешна грешка" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "Редът липсва" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Кодова таблица:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Край на ред:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "А" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "Б" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "В" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "А (основен):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Кодова таблица:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Край на ред:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Най-горен ред" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Край" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Отваряне на файлове..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 бита" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Копиране на А в Б" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Копиране на Б в А" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Изтриване на А" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Изтриване на Б" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Изтриване на А и Б" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Сливане с А" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Сливане с Б" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Сливане с А и Б" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Изтриване (ако съществува)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Сливане" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Сливане (ръчно)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Грешка: Конфликт в типовете на файлове" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Грешка: Променено и изтрито" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Грешка: Датите са еднакви, но файловете не са." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Изпълнено." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Грешка" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Прескочен." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Не е записан." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Изпълнява се..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Задача." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Име" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Действие" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Състояние" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Нерешен" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Решен" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Запълнено" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Празно" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"В момента извършвате сливане на директория. Сигурни ли сте, че искате да " +"прекъснете сливането и да сканирате отново директорията?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Предупреждение" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Ново сканиране" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Продължение на сливането" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Отварянето на директориите беше неуспешно:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Директория А \"%1\" не съществува или не е директория.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Директория Б \"%1\" не съществува или не е директория.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Директория В \"%1\" не съществува или не е директория.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Грешка при отваряне на файл" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Когато се сливат три директории, отправната директория не трябва да бъде " +"същата като А или Б.\n" +"Проверете отново преди да продължите." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Предупреждение за параметър" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Сканиране на директориите..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Чете на файл: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Чете на файл: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Чете на файл: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Някои от поддиректориите са нечетими" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Проверете правата на поддиректориите." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "В готовност." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Бройка на ръчните сливания:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Това засяга всички операции по сливане." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Промяна на всички операции по сливане" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Обработка " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Това действие в момента не е възможно." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Действието не е възможно" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Възникна грешка по време на копирането.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Грешка при сливане" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Непозната операция за сливане. (Това не трябва да се случва никога!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Непозната операция за сливане." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Сливането ще започне всеки момент.\n" +"\n" +"Изберете \"Изпълнение\" ако сте прочел инструкциите и знаете какво правите.\n" +"Изберете \"Симулация\" и ще разберете какво би се случило.\n" +"\n" +"Имайте предвид, че тази програма е все още бета версия и изобщо НЯМА " +"ГАРАНЦИЯ! Правете резервни копия на важната информация!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Стартиране на сливането" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Изпълнение" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Симулация" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Осветеният елемент има различни типове в различните директории. Изберете " +"какво да се направи." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Датите на последна промяна на файловете са еднакви, но файловете не са. " +"Изберете какво да се направи." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Осветеният елемент е променен в една директория и е изтрит в друга. Изберете " +"какво да се направи." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"В момента действието е невъзможно, тъй като тече процес на сливане на " +"директории." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Възникнала е грешка в последната стъпка.\n" +"Искате ли да продължите с елемента, който е причинил тази грешка или ще го " +"прескочите?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Продължаване на сливането след грешката" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Продължаване с последния елемент" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Прескачане на елемент" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Операцията по сливане завърши." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Сливането завърши" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Симулацията на сливане завърши: Проверете дали сте съгласни с предложените " +"действия." + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Възникнала е грешка. Натиснете \"ОК\", за да видите подробна информация.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" +"Грешка: По време на изтриването на %1: Създаването на резервно копие беше " +"неуспешно." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "рекурсивно изтриване на директория( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "изтриване( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Грешка: операцията по изтриване беше неуспешна при опит за четене на " +"директорията." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Грешка: операцията по изтриване на директория( %1 ) беше неуспешна." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Грешка: операцията по изтриване беше неуспешна." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ръчно сливане( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Забележка: След ръчно сливане, потребителят трябва да натисне клавиш " +"F7, за да продължи." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Грешка: копирането на ( %1 -> %2 ) беше неуспешно. Изтриването на " +"съществуващото местоназначение е неуспешно." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "копиране на препратка( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Грешка: копирането на препратка беше неуспешно: Отдалечени препратки не се " +"поддържат." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Грешка: копирането на препратка беше неуспешно." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "копиране( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Грешка по време на преименуване( %1 -> %2 ): Изтриването на съществуващото " +"местоназначение беше неуспешно." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "преименуване( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Грешка: Преименуването беше неуспешно." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Грешка по време на създаване на директория %1. Не може да се изтрие " +"съществуващ файл." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "създаване на директория( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Грешка по време на създаване на директория." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Местоназначение" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Вид" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Размер" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Атрибути" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Последна промяна" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Местоназначение на препратката" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Файл" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Препратка: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "не е наличен" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "А (местоназначение): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "А (основно): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "Б (местоназначение): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "В (местоназначение): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Местоназначение: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Запис състоянието при сливане като..." + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Стартиране/Продължение на сливането на директория" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Стартиране на операцията за текущия елемент" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Сравняване на маркираните файлове" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Сливане на текущия файл" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Сливане\n" +"на файл" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Скриване на всички поддиректории" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Показване на всички поддиректории" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Изберете А за всички елементи" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Изберете Б за всички елементи" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Изберете В за всички елементи" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Автоматично избиране на операция за всички елементи" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Без операция за всички елементи" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Показване на идентични файлове" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Идентични\n" +"файлове" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Показване на различните файлове" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Показване на файлове само в A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Файлове\n" +"само в A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Показване на файлове само в B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Файлове\n" +"само в B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Показване на файлове само в C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Файлове\n" +"само в C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Сравняване на маркираните файлове" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Сливане на маркираните файлове" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Да не се прави нищо" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Изтриване на А и Б" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Сливане в А и Б" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Чете на файл: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Създаването на временно копие на %1 беше неуспешно." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Отварянето на %1 беше неуспешно." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Грешка по време на четене от %1" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"В процеса на създаване на ново резервно копие, изтриването на по-старото " +"беше неуспешно.\n" +"Име на файл: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"В процеса на създаване на ново резервно копие, преименуването беше " +"неуспешно.\n" +"Имена на файлове: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Текуща конфигурация:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Грешка на опция за конфигурация:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Използвана е настройка --auto, но не е указан изходен файл." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "Игнорирана е настройка --auto за сравняване на директории." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Записът беше неуспешен." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Отварянето на тези файлове беше неуспешно:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Грешка при отваряне на файл" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Отваря документ за сравняване..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Презареждане" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Запис на резултатът от сливането. Всички конфликти трябва да са решени!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Запис на текущият документ като..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Отпечатване на разликите" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Излиза от програмата" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Изрязва избраната област и я слага в системния буфер" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Копира избраната област в системния буфер" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Поставяне съдържанието на системния буфер на посоченото място" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Избиране на всичко в текущия прозорец" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Търсене на низ" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Повторно търсене на низа" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Включва/Изключва лентата за състоянието" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Настройване на KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Отиване на текущата разлика" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Текуща\n" +"разлика" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Отиване на първата разлика" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Първа\n" +"разлика" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Отиване на последната разлика" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Последна\n" +"разлика" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Прескача разликата в интервалите, когато настройката \"Показване на " +"интервалите\" е изключена.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Прескача разликата в интервалите, дори когато настройката \"Показване на " +"интервалите\" е изключена.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Отиване на предишната разлика" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Предишна\n" +"разлика" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Отиване на следващата разлика" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Следваща\n" +"разлика" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Отиване на предишния конфликт" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Предишен\n" +"конфликт" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Отиване на следващия конфликт" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Следващ\n" +"конфликт" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Отиване на предишния неразрешен конфликт" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Предишен\n" +"неразрешен" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Отиване на следващия неразрешен конфликт" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Следващ\n" +"неразрешен" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Маркирайте ред(ове) от А" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Изберете\n" +"А" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Изберете ред(ове) от Б" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Изберете\n" +"Б" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Изберете ред(ове) от В" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Изберете\n" +"В" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Автоматично прехвърляне към следващия нерешен конфликт, след избиране на " +"източник" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Автоматично\n" +"средващо" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Показване на символите за интервал и табулация за разлика" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Празни\n" +"символи" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Показване на интервалите" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Разлики в\n" +"интервалите" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Показване на номера на редове" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Номера на\n" +"редовете" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Автоматично разрешаване на простите конфликти" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Задаване на действията за конфликти" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Изпълнение на автосливане на регулярни изрази" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Автоматично разрешаване на конфликтите в историята" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Разделяне на разликата при избраното" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Сливане на избраните разлики" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Показване на прозорец А" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Показване на прозорец Б" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Показване на прозорец В" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Нормален изглед" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Изглед на А срещу Б" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Изглед на А срещу В" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Изглед на Б срещу В" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Пренасяне на думите за различните прозорци" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Добавяне на ръчно подравняване на разликите" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Изчистване на на ръчно подравняване на разликите" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Фокусиране на следващия прозорец" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Фокусиране върху предишния прозорец" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Превключване към разделена подредба" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Разделен изглед на директория и текст" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Превключване между изглед на директория и текст" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Резултатът от сливането не е записан." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Запис и изход" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Изход без запис" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Записът на резултата от сливането беше неуспешен." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"В момента извършвате сливане на директории. Сигурни ли сте, че искате да го " +"прекъснете?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Запис на файл..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Запис на файл с ново име..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Запис като..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Отпечатването не е внедрено." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Отпечатване..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Избрано" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Отпечатването приключи." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Отпечатването е прекъснато." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Излизане..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Превключване на лентата с инструменти..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Превключване на лентата за състоянието..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Настройки на KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Грешка при зареждане на част от KDiff3\n" +"Това обикновено се случва поради проблеми с инсталацията. За повече " +"подробности прочетете файла README в инсталационния пакет." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Файл" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Операция по сливане на текущия елемент" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Операция по синхронизация на текущия елемент" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Движение" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Изглед на раз&делител" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Сливане" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Прозорец" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Главна лента с инструменти" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Пренебрегнато. (Задава се от потребителя.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Инструмент за сравняване и сливане на файлове и директории" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Сливане на входа." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Изричен основен файл. За съвместимост с някои инструменти." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Изходен файл. Съдържа -m Например: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Отново изходен файл. (За съвместимост с някои инструменти)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Без графичен интерфейс, ако всички конфликти могат да се разрешат " +"автоматично. (Нуждае се от -о файл)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Пренебрегване" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Видима размяна на имената на файловете за входен файл 1 (основен)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Видима размяна на имената на файловете за входен файл 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Видима размяна на имената на файловете за входен файл 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Алтернативна размяна на имената на файловете. Използвайте го веднъж за всеки " +"вход." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Пише върху настройките. Използвайте веднъж за всяка настройка. Например: --" +"cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Показване на списък с настройки и текущи стойности." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Използване на различни конфигурационни файлове." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "да се отвори файл 1 (основен, ако не е указан с --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "да се отвори файл 2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "да се отвори файл 3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Комбинация от препратки и нормални файлове." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Препратка: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Размер. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Дата и размер: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Сравняване на файл..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Избиране на А навсякъде" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Избиране на Б навсякъде" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Избиране на В навсякъде" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Избиране на А за всички нерешени конфликти" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Избиране на Б за всички нерешени конфликти" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Избиране на В за всички нерешени конфликти" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Избиране на А за всички нерешени конфликти, свързани с интервали" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Избиране на Б за всички нерешени конфликти, свързани с интервали" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Избиране на В за всички нерешени конфликти, свързани с интервали" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Брой оставащи нерешени конфликти: %1 (от които %2 са интервали)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Изходът е променен.\n" +"Ако продължите промените ще бъдат загубени." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Всички входни файлове са двоично еднакви." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Входните файлове съдържат еднакъв текст." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Файлове %1 и %2 са двоично еднакви.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Файлове %1 и %2 съдържат еднакъв текст. \n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Конфликти" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<Няма входен ред>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<Сливане на конфликт (Само интервали)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<Сливане на конфликт>" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Все още не всички конфликти са решени.\n" +"Файлът не е записан.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Оставащи конфликти" + +#: mergeresultwindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Има конфликт във видовете край на ред. Изберете край на ред ръчно.\n" +"Файлът не е запазен.\n" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Създаването на резервно копие беше неуспешно. Файлът не е записан." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Грешка при запис на файл" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Грешка по време на запис." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Резултат" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Променено]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Кодова таблица за запис" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Конфликт" + +#: mergeresultwindow.cpp:3247 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Кодек от" + +#: mergeresultwindow.cpp:3249 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Кодек от" + +#: mergeresultwindow.cpp:3251 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Кодек от" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "Б" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "А (основен):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Резултат (по избор):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Файл..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Размяна/Копиране на имена ..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "В (по избор):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Записът в историята на системи за контрол на версиите се състои от няколко " +"реда.\n" +"Посочете регулярния израз за определяне на първия ред (без началния " +"коментар).\n" +"Използвайте скоби за групиране на ключовете за сортиране.\n" +"Ако е празно, тогава KDiff3 ще счита, че празните редове разделят записите.\n" +"За повече подробности вижте документацията." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Всяка двойка използвани скоби в регулярния израз за начало на историята\n" +"е група ключове, които могат да се използват за подреждане.\n" +"Посочете списъка с ключове (подреждат се по реда на появяване,\n" +"започвайки от 1), които поддържат \",\" като разделител (напр. " +"\"4,5,6,1,2,3,7\").\n" +"Ако е празно, няма да се прави подреждане.\n" +"За повече информация вижте документацията." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Регулярните изрази за редовете, където KDiff3 трябва автоматично да избере " +"източник.\n" +"Когато някой ред с конфликт съвпадне с регулярния израз,\n" +"тогава \"- if available - C\", иначе ще бъде избран B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Регулярен израз за начало на запис в историята на системи за контрол на " +"версиите.\n" +"Обикновено това съдържа ключова дума \"$Log$\".\n" +"Стойност по подразбиране: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Променете това ако не-ASCII символите не се изобразяват правилно." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Настройки" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Шрифт" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Изходен шрифт за редактора и разделителя" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Грешка при запис на файл" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Цвят" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Цветови настройки" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Редактор за преглед на разлики:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Цвят на преден план:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Цвят за фон:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Различен цвят за фон:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Цвят А:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Цвят Б:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Цвят В:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Цвят за конфликт:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Текущ обхват за цвета на фон:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Текущ обхват за цвета на фон на разделител:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Цвят на обхват за ръчно избрани разлики:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "Преглед на сравняването на директории:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Цвят на най-новия файл:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Промяната на този цвят ще има ефект само при сравняване на следващата " +"директория." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Цвят на най-стария файл:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Цвят на средно стар файл:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Цвят на липсващи файлове:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Редактор" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Поведение на редактора" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab вмъква интервали" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Включено: Натискането на табулация изписва подходящ брой интервали.\n" +"Изключено: Ще бъде вмъкнат един символ за табулация." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Големина на табулация:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Автоматичен отстъп" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Включено: Отстъпа на предишния ред се използва за всеки нов.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Автоматично копиране на избраното" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Включено: Всичко избрано се записва веднага в системния буфер.\n" +"Изключено: Трябва изрично да копирате, например с Ctrl-C." + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "Dos/Windows" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Autodetect" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Автоматично откриване" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Задава края на реда, когато редактирания файл бива записан.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Разлика" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Настройки за разлика" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Третиране като интервали." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Пренебрегване на числата по време на фазата за съвпадение. (Подобно на " +"пренебрегването на интервалите.)\n" +"Може да помогне да се сравнят файлове с числова информация." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Третиране на С/С++ коментарите като интервали." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Третиране на С/С++ коментарите като интервали." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Третиране като интервали." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Третиране на разликата в регистъра като промяна в интервалите. (\"a\"<=>\"A" +"\")" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Команда за предварителна обработка:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Дефинирана от потребителя предварителна обработка. (Погледнете " +"документацията за подробности.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Команда за предварителна обработка на съвпадение на редове:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Тази предварителна обработка се използва само при съвпадения на редове.\n" +"(Вижте документацията за допълнителна информация.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Опитване по-усърдно (по-бавно)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Включва настройка --minimal за външното разделяне.\n" +"Анализирането на големи файлове ще е много по-бавно." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Сливане" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Настройки за сливане" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Забавяне на автоматичното придвижване (милисекунди):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Когато сте в режим на автоматично придвижване, резултатът на избраното се " +"показва \n" +"за определен период от време преди да се премине на следващ конфликт. " +"Обхват: 0-2000 мсек" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Показване на уведомления" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Показване на прозорец с данни за броя на конфликтите." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Интервал по подразбиране при сливане на 2 файла:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Ръчен избор" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Позволяване на сливащия алгоритъм автоматично да избира вход за промени от " +"типа интервали." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Интервал по подразбиране при сливане на 3 файла:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Автоматично сливане на регулярни изрази" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Автосливане на регулярни изрази:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Изпълнение на автосливане на регулярни изрази при начало на сливането" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Изпълнение на сливане за автосливане на регулярни изрази\n" +"веднага след започване на сливане.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Сливане историята на версиите" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Регулярен израз за начало на история:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Регулярен израз за начало на историята:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Подреждане сливането на историята" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Подреждане на история на версиите по ключ." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Ред за сортиране на ключове за история:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Сливане на историята за версии при стартиране" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Автосливане на историята за версии при стартиране." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Макс. брой записи в историята:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Отрязване след посочения брой. Използвайте -1 за \"безкрайно\"." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Изпробване на регулярни изрази" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Неподходяща команда за сливане:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Ако е зададен, този скрипт ще бъде изпълнен след автосливане\n" +"при условие ,че не са открити други промени.\n" +"Извикани с параметри: има на файл 1има на файл 2 име на файл 3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Автозапис и изход ако сливането е без конфликти" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Ако KDiff3 е зареден за сливане на файлове от команден ред\n" +"и всички конфликти са разрешими без намеса на потребителя,\n" +"тогава следва автоматичен запис и изход.\n" +"(Подобно на командата \"--auto\".)" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Рекурсивни директории" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "Дали да се анализират или не поддиректориите." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Шаблон(и) за файл:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Шаблони за файлове, които да се анализират. \n" +"Wildcards: \"*\" and \"?\"\n" +"Могат да се определят няколко шаблона чрез използване на разделителя: \";\"" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Анти шаблон(и) за файл:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Шаблони на файлове, които да се изпълнят от анализа. \n" +"Wildcards: \"*\" and \"?\"\n" +"Могат да се определят няколко шаблона чрез използване на разделителя: \";\"" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Анти шаблон(и) за файл:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Шаблони на файлове, които да се изпълнят от анализа. \n" +"Wildcards: \"*\" and \"?\"\n" +"Могат да се определят няколко шаблона чрез използване на разделителя: \";\"" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "Използване на .cvsignore" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Разширява антишаблона до нещо, което ще бъде пренебрегнато от CVS.\n" +"Чрез локалните файлове \".cvsignore\", това може да се настройва за отделни " +"директории." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "Откриване на скрити файлове и директории" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "Откриване на скрити файлове и директории" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Проследяване на файловите препратки" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Включено: Сравнява файла, към който сочи препратката.\n" +"Изключено: Сравнява препратките." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Проследяване на файловите препратки" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Включено: Сравнява файла, към който сочи препратката.\n" +"Изключено: Сравнява препратките." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Сравняване на имена, чувствително към регистър" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Сравняването на директории ще сравни дали съвпадат имената на файлове или " +"директории.\n" +"включете тази опция, ако регистъра трябва да съвпада. (По подразбиране за " +"Windows е изключено, иначе - включено.)" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "Показване на всички поддиректории" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Режим \"сравняване на файлове\"" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Двоично сравнение" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Двоично сравнение за всеки файл. (По подразбиране)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Пълен анализ" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Прави пълен анализ и показва статистическа информация в допълнителни " +"колони.\n" +"(По-бавно от двоичното сравнение, много по-бавно за двоични файлове.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Доверяване на размера и датата на промяна (опасно)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Приема се, че файловете са еднакви, ако датата на промяна и големината са " +"еднакви.\n" +"Файловете с еднакво съдържание, но с различна дата на промяна ще бъдат " +"отчетени като различни.\n" +"Може да се използва за големи директории или бавни мрежи." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Доверяване на размера и датата, но използване на двоично сравнение, ако " +"датата не съвпада (опасно)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Приема се, че файловете са еднакви, ако датата на промяна и големината са " +"еднакви.\n" +"Ако датата не е еднаква, но размирите са, се използва двоично сравнение.\n" +"Полезно за големи директории или бавни мрежи." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Доверяване на големината (опасно)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Приема се, че файловете са еднакви ако техните големини са еднакви.\n" +"Полезно за големи директории или бавни мрежи, когато датата се променя по " +"време на сваляне." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Синхронизиране на директории" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Предлага да запише файловете и в двете директории така, че\n" +"и двете директории след това да са едни и същи.\n" +"Работи само, когато се сравняват две директории без определено " +"местонахождение." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Разликите в интервалите да се приемат за еднакви" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Файловете да се считат за еднакви, ако се различават само по интервалите.\n" +"Това работи само ако е избран пълен анализ." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Копиране на по-новите, вместо сливане (не е безопасно)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Да не се гледа вътре, а да се взима по-новия файл.\n" +"(Използвайте го само ако знаете какво правите!)\n" +"Ефективно е, само ако се сравняват две директории." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Резервни копия на файлове (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Когато файл ще се записва върху стар файл, тогава старият файл\n" +"ще бъде преименуван с разширение \".orig\", вместо да бъде изтрит." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Регионални настройки" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Използване на еднаква кодова таблица за всичко:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Включвайки това, можете да промените всички кодировки с промяната само на " +"първата.\n" +"Изключете са необходими различни индивидуални настройки." + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Забележка: Локалната кодова таблица е " + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Файлова кодова таблица за А:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ако е включено, ще се открива Уникод (UTF-16 или UTF-8).\n" +"Ако файлът не е в Уникод, като резервно ще бъде използвано указаното " +"кодиране.\n" +"(Намирането на Уникод зависи от първите байтове във файла.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Автонамиране на Уникод" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Файлова кодова таблица за Б:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Файлова кодова таблица за В:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Кодова таблица на файла за резултата от сливането и записване:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Автоматично избиране" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ако е включена тази отметка, тогава ще се използва кодирането на входящите " +"файлове.\n" +"Когато има нещо неясно, ще се появи прозорец , от където може да избере " +"кодиране." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Кодова таблица на файл за файлове за предварителна обработка:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Езици тип \"отдясно на ляво\"" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Някои езици се четат отдясно наляво.\n" +"Тази настройка ще промени съответно редактора и визуализатора." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Интеграция" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Настройки на интеграцията" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Опции за команден ред, които да бъдат игнорирани:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Показва опциите за команден ред, които трябва да бъдат пренебрегнати, когато " +"KDiff3 се извиква от други инструменти.\n" +"Могат да бъдат посочени няколко стойности, разделени с \";\" \n" +"Това ще потисне съобщението \"Непозната грешка\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Излизане и с клавиша \"Escape\"" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Това ще възстанови всички настройки. Не само тези в текущата тема." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "PreprocessorCmd: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Следните настройки, които избрахте може да променят информация:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Най-вероятно това не е желателно по време на сливане.\n" +"Искате ли да изключите тези настройки или ще продължите с тях?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Опцията не е безопасна при сливане" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Използвайте тези опции при сливане" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Изключване на опасните опции" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Зареждане на А" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Зареждане на А" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Зареждане на Б" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "Зареждане на А" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Разлика: A <-> Б" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Разлика на линия: A <-> Б" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Зареждане на В" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "Зареждане на А" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Разлика: А <-> B" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Разлика: Б <-> B" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Разлика на ред: Б <-> B" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Разлика на ред: A <-> B" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Входните файлове съдържат еднакъв текст, но не са двоично еднакви." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Файлове %1 и %2 са с еднакъв текст, но не са двоично еднакви. \n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Някои входни файлове не са чисти текстови файлове.\n" +"Имайте предвид, че сливането на KDiff3 не е предназначено за двоична " +"информация.\n" +"Продължавате на собствена отговорност." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Прекъсване" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Отваряне на файлове..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Изрязване на избраното..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Копиране на избраното в системния буфер..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Вмъкване съдържанието на системния буфер..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Запис и продължение" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Продължение без запис" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Търсенето завърши." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Търсенето завърши" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Нищо не е избрано в прозореца за разлики." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Грешка при ръчно добавяне на охват за разликите" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Отказ" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Размяна: %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Копиране: %1-> Изходни данни" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Размяна: %1 <-> Изходни данни" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Настройване..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Отваряне на файлове..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Търсене на текст:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Чувствителен регистър" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Търсене в А" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Търсене в Б" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Търсене във В" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Резултат от търсенето" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Търсене" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Изпробване за регулярни изрази" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Примерен ред за начало на автосливане:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "За изпробване на автосливането копирайте ред от използваните файлове." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Съвпадащ резултат:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Ред за примерно стартиране на история (в водещ коментар):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Копирайте ред на започване на история като във файловете,\n" +"включително и водещия коментар." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Ред за сортиращ ключ:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Примерен ред за стартиране на история (без водещ коментар):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Копирайте реда за начало на история като във файловете,\n" +"но пропуснете водещия коментар." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Резултат от подреждането на ключове:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Съвпадението е успешно." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Съвпадението беше неуспешен." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Отварящите и затварящи скоби не съвпадат в регулярния израз." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Грешка при запис на системния буфер във временен файл." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "От системния буфер" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Комбинация от препратки и нормални файлове." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Възможно е предварителната обработка да е неуспешна. Проверете тази " +"команда:\n" +"\n" +" %1\n" +"\n" +"Командата за предварителна обработка ще бъде неактивна." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Възможно е предварителната обработка за сравняване на редове да е неуспешна. " +"Проверете тази команда:\n" +"\n" +" %1\n" +"\n" +"Командата за предварителна обработка за сравняване на редове ще бъде " +"неактивна." + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Очаква се интервал след затварящи единични кавички." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Неочакван апостроф в аргумент." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Не е указана програма." \ No newline at end of file diff --git a/po/br/kdiff3.po b/po/br/kdiff3.po new file mode 100644 index 0000000..2922877 --- /dev/null +++ b/po/br/kdiff3.po @@ -0,0 +1,3357 @@ +# KDE breton translation +# Thierry Vignaud , 2004-2005 +msgid "" +msgstr "" +"Project-Id-Version: kdeextragear-1/kdiff3.po\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2004-09-20 15:44+0200\n" +"Last-Translator: Thierry Vignaud \n" +"Language-Team: br \n" +"Language: 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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Emaon o lenn ar restr : %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Emaon o skrivañ ar restr : %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Memor ebet" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Oc'h oberiañ ar renkell : %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Emaon o tilemel ar restr : %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Emaon o tilemel ar restr : %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Emaon oc'h adenvel ar restr : %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Emaon oc'h eilañ ar restr : %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Emaon o lenn ar restr : %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Fazi diabarzh grevus" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Fazi diabarzh grevus" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Fazi diabarzh grevus" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "n'eo ket da gaout" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "G" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Dibenn" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Emaon o tigeriñ ar restroù ..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Eilañ A da B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Eilañ B da A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Lemel A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Lemel B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Lemel A & B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Dastum" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Graet." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +#| msgid "Error." +msgid "Error" +msgstr "Fazi." + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Tremenet." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "N'eo ket enrollet." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Ober a ran ..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Traoù d'ober." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Anv" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Ober" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stad" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Gwenn" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Sac'het eo digeriñ ar renkelloù :" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Fazi en ur zigeriñ ar restr" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Emaon o tielfennañ ar renkelloù ..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Emaon o lenn ar restr : %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Emaon o lenn ar restr : %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Emaon o lenn ar restr : %1" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Prest." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of subdirectories:" +msgid "Number of manual merges: %1" +msgstr "Niver a is-renkelloù :" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "O treterez " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Degouezhet ez eus ar fazi en ur eilañ.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Fazi en ur dastum" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Tremen an dra" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "Degouezhet ez eus ar fazi. Gwaskit OK da welet an titouroù munut.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "dilemel( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "Error: delete operation failed." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Fazi : sac'het eo lemel." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Fazi : sac'het eo lemel." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "eilañ( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "adenvel( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Fazi en ur c'hrouiñ ur renkell." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dehaez." + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Seurt" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Ment" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Kemm diwezhañ" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Liamm dehaezadur" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "File..." +msgid "File" +msgstr "Restr ..." + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Liamm : " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "n'eo ket da gaout" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dehaez. : " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "" +"Merge\n" +"File" +msgstr "Dastum" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Diskouez restroù a zo e A hepken" + +#: directorymergewindow.cpp:2975 +#, fuzzy, kde-format +#| msgid "Show Files only in A" +msgid "" +"Files\n" +"only in A" +msgstr "Diskouez restroù a zo e A hepken" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Diskouez restroù a zo e B hepken" + +#: directorymergewindow.cpp:2976 +#, fuzzy, kde-format +#| msgid "Show Files only in B" +msgid "" +"Files\n" +"only in B" +msgstr "Diskouez restroù a zo e B hepken" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Diskouez restroù a zo e C hepken" + +#: directorymergewindow.cpp:2977 +#, fuzzy, kde-format +#| msgid "Show Files only in C" +msgid "" +"Files\n" +"only in C" +msgstr "Diskouez restroù a zo e C hepken" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ober netra" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Lemel A && B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Emaon o lenn ar restr : %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Sac'het eo digeiñ ar restr %1." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Fazi en ur less eus %1." + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Fazi er dibarzh kefluniañ :" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Fazi en ur enrollañ." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of these files failed:" +msgstr "Sac'het eo digeriñ ar renkelloù :" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fazi en ur zigeriñ ar restr" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +#| msgid "Ready." +msgid "Reload" +msgstr "Prest." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Enrollañ a ra an teul red e ..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Kuitaat a ra ar meziant" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Eilañ a ra an dachenn dibabet er golver" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Kuzhat/Diskouez ar varenn stad" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Kefluniañ KDiff3 ..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgid "" +"Auto\n" +"Next" +msgstr "Dibab ent emgefreek" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Diskouez niverennoù linenn" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +#| msgid "Show Line Numbers" +msgid "" +"Line\n" +"Numbers" +msgstr "Diskouez niverennoù linenn" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Diskouez ar prenestr A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Diskouez ar prenestr B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Diskouez ar prenestr C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokuz ouzh ar brenestr a-heul" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokuz ouzh ar brenestr diaraok" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Enrollañ && kuitaat" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Kuitaat hep enrollañ" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Emaon oc'h enrollañ ar restr ..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Oc'h enrollañ ar restr gant un anv restr nevez ..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +#| msgid "Printing completed." +msgid "Printing not implemented." +msgstr "Echu eo moulañ." + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +#| msgid "Printing..." +msgid "Printing..." +msgstr "Emaon o voulañ ..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Diuzadenn" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Echu eo moulañ." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Nullet eo ar voulañ." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Emaon o kuitaat ..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Emaon o kuzhat/diskouez ar varenn ostilh ..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Diskouez/Kuzhat ar varenn stad ..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Kefluniañ KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +#| msgid "File..." +msgid "&File" +msgstr "Restr ..." + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Dastum" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Prenestr" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "restr2 da zigeriñ" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "restr3 da zigeriñ" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Liamm : " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Ment. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Deiziad ha ment : " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Fazi en ur skrivañ." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Ezkas" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Kemmet]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "G" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Restr ..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +#| msgid "Configure..." +msgid "Configure" +msgstr "Kefluniañ ..." + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Liv" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Kefluniadur al livioù" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Liv war-c'horre :" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Liv an drekleur :" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Liv A :" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Liv B :" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Liv C :" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Aozer" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Emzalc'h an aozer" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Ment ar bevennig :" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Emgeflosk" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Prenestr" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Dibab ent emgefreek" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, fuzzy, kde-format +msgid "Diff Settings" +msgstr "Kefluniadur rann-vro" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Dastum" + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "Kefluniadur rann-vro" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, fuzzy, kde-format +#| msgid "Show Window A" +msgid "Show info dialogs" +msgstr "Diskouez ar prenestr A" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Choazh diwar zorn" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "Niver a is-renkelloù :" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Sil(où) restr :" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Sil(où) restr :" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "Implijit .cvsignore" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Heuliañ liammoù ar retroù" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Heuliañ liammoù ar retroù" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Kefluniadur rann-vro" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Dibab ent emgefreek" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Emaon o kargañ A" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Emaon o kargañ A" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Emaon o kargañ B" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "Emaon o kargañ A" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Emaon o kargañ C" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "Emaon o kargañ A" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Paouez" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Emaon o tigeriñ ar restroù ..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "O troc'hañ an dibab ..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Oc'h eilañ an dibab d'ar golver ..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Enrollañ && Kenderc'hel" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Echu eo ar glask." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Kefluniañ ..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Emaon o tigeriñ ar restroù ..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Skrid klasket :" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Evezhiek ouzh ar c'hef" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Klask A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Klask B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Klask C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Klask" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Eus ar golver" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/bs/kdiff3.po b/po/bs/kdiff3.po new file mode 100644 index 0000000..2c49fe1 --- /dev/null +++ b/po/bs/kdiff3.po @@ -0,0 +1,3725 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2014-10-20 20:22+0000\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: Bosnian\n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17341)\n" +"X-Launchpad-Export-Date: 2015-02-15 06:24+0000\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Samir Ribić,Mirhat Babić" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "Samir.ribic@etf.unsa.ba,mbabic1@etf.unsa.ba" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Dobavljam status datoteke: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Čitam datoteku: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Pišem datoteku: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Nema memorije" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Pravim direktorij: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Uklanjam datoteku: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Uklanjam datoteku: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Stvaram simboličku vezu: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Mijenjam naziv datoteke: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopiram datoteku: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Čitam datoteku: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listam direktorij: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Gubitak podataka greška:\n" +"Ako se ponavlja kontaktirajte autora.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Ozbiljna unutrašnja greška" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Ozbiljna unutrašnja greška" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Ozbiljna unutrašnja greška" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "Linija nije na raspolaganju" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodiranje:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Stil završetka linije:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (baza):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Kodiranje:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Stil završetka linije:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Gornja linija" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Kraj" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Otvaram datoteke..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8-bitni" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopiraj A u B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopiraj B u A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Obriši A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Obriši B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Obriši A i B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Stopi u A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Stopi u B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Stopi A i B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Obriši (ako postoji)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Stopi" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Stopi (ručno)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Greška: Sukobljeni tipovi datoteka" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Greška: Promijenjeno i obrisano" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Greška: Datumi su jednaki ali datoteke nisu." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Gotovo." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Greška" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Preskočeno." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Nije snimljeno." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "U toku..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Uraditi." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Naziv" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operacija" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Neriješen" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Riješen" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Ne-bijelo" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Bijelo" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Trenutno stapate direktorije. Da li ste sigurni da želite prekinuti stapanje " +"i ponovo skenirati direktorij?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Upozorenje" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Ponovo skeniraj" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Nastavi stapanje" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Otvaranje direktorija nije uspjelo:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Direktorij A \"%1\" ne postoji ili nije direktorij.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Direktorij B \"%1\" ne postoji ili nije direktorij.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Direktorij C \"%1\" ne postoji ili nije direktorij.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Greška pri otvaranju datoteke" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Odredišni direktorij ne smije biti isti kao A ili B kada se stapaju tri " +"direktorija.\n" +"Provjerite ponovo prije nego nastavite." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Upozorenje o parametrima" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Skeniram direktorije..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Čitam datoteku: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Čitam datoteku: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Čitam datoteku: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Neki poddirektoriji nisu bili čitljivi u" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Provjerite dozvole poddirektorija." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Spreman." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Broj ručnih stapanja:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ovo utiče na sve operacije stapanja." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Mijenjam sve operacije stapanja" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Obrađujem " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Ova operacija trenutno nije moguća." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operacija nije moguća" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Došlo je do greške u toku kopiranja.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Greška stapanja" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Nepoznata operacija stapanja. (Ovo nikad ne smije da se desi!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Nepoznata operacija stapanja." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Stapanje će upravo početi.\n" +"\n" +"Izaberite \"Uradi\" ako ste pročitali instrukcije i znate šta radite.\n" +"Izaberite \"Simuliraj\" ako želite da vidite šta bi se desilo.\n" +"\n" +"Znajte da ovaj program još uvijek ima beta status i nema NIKAKVIH GARANCIJA " +"uopšte! Napravite rezervu svojih najvažnijih podataka!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Počinjem stapanje" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Uradi" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuliraj" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Istaknuta stavka različitog je tipa u različitim direktorijima. Odaberite " +"šta činiti." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Datumi izmjene datoteke su jednaki ali datoteke nisu. Odaberite šta činiti." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Označena stavka je promijenjena u jednom folderu i obrisana u drugom. " +"Odaberite šta učiniti." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Ova operacija trenutno nije moguća zato što je stapanje direktorija u toku." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Došlo je do greške u posljednjem koraku.\n" +"Želite li da nastavite sa stavkom koja je izazvala grešku ili želite da je " +"preskočite?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Nastavi stapanje poslije greške" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Nastavi sa posljednjom stavkom" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Preskoči stavku" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operacija stapanja je završena." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Stapanje je završeno" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulirano stapanje je završeno: Provjerite da li se slažete sa predloženim " +"operacijama." + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Došlo je do greške. Pritisnite \"U redu\" da biste vidjeli detaljne " +"informacije.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Greška: U toku brisanja %1: Stvaranje rezerve nije uspjelo." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "obriši direktorij rekurzivno( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "obriši( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Greška: Operacija brisanja direktorija nije uspjela u toku pokušaja da se " +"direktorij pročita." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Greška: Operacija rmdir( %1 ) nije uspjela." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Greška: Operacija brisanja nije uspjela." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ručno stapanje( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Napomena: Poslije ručnog stapanja korisnik bi trebalo da nastavi pomoću " +"F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Greška: Kopiranje( %1 -> %2 ) nije uspjelo. Brisanje postojećeg odredišta " +"nije uspjelo." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "kopiranje veze( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Greška: Kopiranje veze nije uspjelo: Udaljene veze još uvijek nisu podržane." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Greška: Kopiranje veze nije uspjelo." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopiraj( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Greška u toku preimenovanja( %1 -> %2 ): Ne mogu da obrišem postojeće " +"odredište." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "preimenuj( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Greška: Preimenovanje nije uspjelo." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Greška u toku pravljenja direktorija %1. Ne mogu da obrišem postojeću " +"datoteku." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "napravi direktorij( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Greška u toku stvaranja direktorija." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Odr." + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tip" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Veličina" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atr." + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Posljednja izmjena" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Veza-odredište" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Datoteka" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Veza: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "nije dostupno" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (odr.): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (baza): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (odr.): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (odr.): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Odr.: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Snimi stanje stapanja direktorija kao..." + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Pokreni/nastavi stapanje direktorija" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Pokreni operaciju za trenutnu stavku" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Uporedi odabranu datoteku" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Stopi trenutnu datoteku" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Spoji\n" +"Datoteku" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Sažmi sve poddirektorije" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Raširi sve poddirektorije" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Izaberi A za sve stavke" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Izaberi B za sve stavke" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Izaberi C za sve stavke" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Automatski izaberi operaciju za sve stavke" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Nema operacije za sve stavke" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Prikaži identične datoteke" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Iste\n" +"Datoteke" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Prikaži različite datoteke" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Prikaži datoteke samo u A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Datoteke\n" +"samo u A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Prikaži datoteke samo u B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Datoteke\n" +"samo u B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Prikaži datoteke samo u C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Datoteke\n" +"samo u C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Uporedi eksplicitno odabrane datoteke" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Stopi eksplicitno odabrane datoteke" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ne čini ništa" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Obriši A i B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Stopi u A i B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Čitam datoteku: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Stvaranje privremene kopije datoteke %1 nije uspjelo." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Otvaranje datoteke %1 nije uspjelo." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Greška pri čitanju iz %1" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"U toku pokušaja da se napravi rezerva, brisanje starije rezerve nije " +"uspjelo.\n" +"Naziv datoteke: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"U toku pokušaja da se napravi rezerva, preimenovanje nije uspjelo.\n" +"Nazivi datoteka: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Trenutna konfiguracija:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Greška konfiguracione opcije:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Opcija --auto je upotrijebljena, ali nije navedena izlazna datoteka." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "Opcija --auto se ignoriše za poređenje direktorija." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Snimanje nije uspjelo." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Otvaranje ovih datoteka nije uspjelo:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Greška pri otvaranju datoteke" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Otvara dokumente za poređenje..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Osvježi" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Snima rezultat stapanja. Svi sukobi moraju biti riješeni!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Snima trenutne dokumente kao..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Štampaj razlike" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Izlazi iz aplikacije" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Isjeca odabrani odjeljak i stavlja ga u clipboard" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopira odabrani odjeljak u clipboard" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Zalijepi clipboard sadržaj na trenutnu poziciju" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Odaberi sve u trenutnom prozoru" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Potraži znakovni niz" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Ponovo potraži znakovni niz" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Uključuje/isključuje statusnu traku" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Podesi KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Idi na trenutnu deltu" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Trenutni\n" +"Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Idi na prvu deltu" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Prva\n" +"Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Idi na posljednju deltu" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Posljednja\n" +"Delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Preskače razlike u blanko znacima kada je \"Prikaži blanko znake\" " +"isključeno.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Ne preskače razlike u blanko znacima čak i kada je \"Prikaži blanko znake\" " +"isključeno.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Idi na prethodnu deltu" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Prethodno\n" +"Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Idi na slijedeću deltu" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Sljedeća\n" +"Delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Idi na prethodni sukob" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Prethodni\n" +"Konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Idi na slijedeći sukob" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Sljedeći\n" +"Konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Idi na prethodni neriješeni sukob" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Prethodni\n" +"Neriješen" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Idi na slijedeći neriješeni sukob" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Sljedeći\n" +"Neriješen" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Odaberite liniju/linije iz A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Odaberi\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Odaberite liniju/linije iz B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Odaberi\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Odaberite liniju/linije iz C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Odaberi\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Automatski idi na slijedeći neriješeni sukob nakon izbora izvora" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automatski\n" +"Sljedeći" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Prikaži znakove razmaka i tabulatora za razlike" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Bijeli\n" +"Karakteri" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Prikaži blanko znak" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Bijele\n" +"Delte" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Prikaži brojeve linija" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Linijski\n" +"Brojevi" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automatski riješi jednostavne sukobe" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Postavi delte na sukobe" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Pokreni auto-stapanje regularnih izraza" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automatski riješi sukobe historije" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Razdvoji razlike pri odabiru" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Sjedini odabrane razlike" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Prikaži prozor A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Prikaži prozor B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Prikaži prozor C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normalan pregled" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Pregled A prema B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Pregled A prema C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Pregled B prema C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Prozori razlika omota riječi" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Dodaj ručno poravnanje razlika" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Izbriši sva ručna poravnanja razlika" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokusiraj slijedeći prozor" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokusiraj prethodni prozor" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Prebaci orijentaciju razdvajanja" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Podijeljeni prikaz ekrana za dir. i tekst" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Prebaci između dir. i tekst. prikaza" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Rezultat stapanja nije snimljen." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Snimi i izađi" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Izađi bez snimanja" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Snimanje rezultata stapanja nije uspjelo." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Trenutno stapate direktorije. Da li ste sigurni da želite prekinuti?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Snimam datoteku..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Snimam datoteku pod novim nazivom..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Snimi kao..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Printanje nije izvršeno." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Štampam..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Odabir" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Štampanje završeno." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Štampanje prekinuto." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Izlazim..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Prebacujem traku sa alatom..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Prebaci statusnu traku..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Dio" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Podesi KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Nije moguće izvršiti KDiff3 dio.\n" +"Ovo se obićno dešava tokom problema instalacije. Molimo pročitajte README-" +"dokument u izvoru paketa za detalje." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Datoteka" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operacija stapanja trenutne stavke" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operacija sinh. trenutne stavke" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Kretanje" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iff prikaz" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Stopi" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "P&rozor" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Glavna alatna traka" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorisano. (Korisnički definisano)." + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Alat za upoređivanje i stapanje datoteka i direktorija" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Stopi ulaz." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Eksplicitna bazna datoteka. Za kompatibilnost sa određenim alatima." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Izlazna datoteka. Implicira -m. Npr.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Izlazna datoteka, ponovo. (Za kompatibilnost sa određenim alatima.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "Bez GUI-ja ako su svi sukobi automatski rješivi. (Zahtjeva -o file)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Ignoriši" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Vidljiva zamjena naziva za ulaznu datoteku 1 (bazna)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Vidljiva zamjena naziva za ulaznu datoteku 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Vidljiva zamjena naziva za ulaznu datoteku 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Alternativa vidljivoj zamijeni naziva. Dobavite ovo jednom za svaki ulaz." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Prespoji postavku konfiguracije. Koristi jednom za svaku postavku. Npr.: --" +"cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Prikaži listu postavki konfiguracije i trenutnih vrijednosti." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Koristi drugačiju konfiguracionu datoteku." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "datoteka 1 za otvaranje (bazna, ako nije naveden preko --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "datoteka 2 za otvaranje" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "datoteka 3 za otvaranje" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mješavina veza i normalnih datoteka." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Veza: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Veličina. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Datum i veličina: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Upoređujem datoteku..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Svuda izaberi A" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Svuda izaberi B" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Svuda izaberi C" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Izaberi A za sve neriješene sukobe" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Izaberi B za sve neriješene sukobe" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Izaberi C za sve neriješene sukobe" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Izaberi A za sve neriješene sukobe blanko znakova" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Izaberi B za sve neriješene sukobe blanko znakova" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Izaberi C za sve neriješene sukobe blanko znakova" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Broj preostalih neriješenih sukoba: %1 (od kojih su %2 blanko znaci)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Izlaz je izmijenjen.\n" +"Ako nastavite, vaše izmjene će biti izgubljene." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Sve ulazne datoteke su binarno jednake." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Sve ulazne datoteke sadrže isti tekst." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Datoteke %1 i %2 su binarno jednake.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Dokumenti %1 i %2 imaju isti tekst.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Sukobi" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Još uvijek nisu riješeni svi sukobi.\n" +"Datoteka nije snimljena.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Preostali sukobi" + +#: mergeresultwindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Postoji konflikt sa stilom kraja linije. Molimo odaberite stil kraja linije " +"ručno.\n" +"Dokument nije sačuvan.\n" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Stvaranje rezerve nije uspjelo. Datoteka nije snimljena." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Greška u snimanju datoteke" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Greška prilikom pisanja." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Izlaz" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Izmijenjen]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Kodiranje za snimanje" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Codec od" + +#: mergeresultwindow.cpp:3249 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Codec od" + +#: mergeresultwindow.cpp:3251 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Codec od" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (baza):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Izlaz (opcionalno):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Datoteka..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Razmijeni/Kopiraj nazive ..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (opcionalno):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Zapis historije kontrola verzije sastoji se od nekoliko linija.\n" +"Navedite regularni izraz da bi ustanovili prvu liniju (bez glavnog " +"komentara).\n" +"Koristite okrugle zagrade da bi grupisali tipke koje želite koristiti za " +"sortiranje.\n" +"U slučaju da ostane prazno, tada KDiff3 smatra da prazne linije razdvajaju " +"zapise historije.\n" +"Pogledati dokumentaciju radi detalja." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Svaki par zagrada korištenih u regularnom izrazu za početak zapisa " +"historije\n" +"grupiše ključ koji se može koristiti za sortiranje.\n" +"Odredite popis tipki (koje su numerirane po redoslijedu pojavljivanja\n" +"počevši od 1) koristeći ',' kao razmak (npr. \"4,5,6,1,2,3,7\").\n" +"Ako je lijevo prazno, onda neće biti sortiranja.\n" +"Pogledajte dokumentaciju za detalje." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regularni izraz za linije gdje bi KDiff3 automatski trebao odabrati jedan " +"izvor.\n" +"Kada linija sa sukobom odgovara regularnom izrazu onda\n" +"- ako je dostupan - C, u protivnom će B biti izabran." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regularni izraz za početak historije kontrole ulaza.\n" +"Obično ova linija sadrži \"$Log$\" ključnu riječ.\n" +"Zadana vrijednost: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Izmijenite ovo ako se znakovi koji nisu ASCII ne prikazuju ispravno." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Podesi" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Font" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Font editora i raz. izlaza" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Greška u snimanju datoteke" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Boja" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Postavke boja" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Prikazi editora i razlika:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Boja iscrtavanja:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Boja pozadine:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Boja pozadine razlika:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Boja A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Boja B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Boja C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Boja sukoba:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Pozadinska boja trenutnog opsega:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Pozadinska boja trenutnog opsega razlika:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Boja za ručno poravnate opsege razlika:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "Prikaz poređenja direktorija:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Boja najnovije datoteke:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Izmjena ove boje će biti djelotvorna samo kod pokretanja slijedeće usporedbe " +"direktorija." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Boja najstarije datoteke:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Boja srednjovječne datoteke:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Boja za nestale datoteke:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Ponašanje editora" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabulator ubacuje razmake" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"On: Pritiskom na tab generiše se odgovarajući broj razmaka.\n" +"Off: Tab karakter će biti umetnut." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Veličina tabulatora:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automatsko uvlačenje" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Uključeno: Uvlačenje prethodne linije koristi se za novu liniju.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Automatsko kopiranje izbora" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Uključeno: Svaki izbor se odmah upisuje u clipboard.\n" +"Isključeno: Morate eksplicitno kopirati, nrp. preko Ctrl+C." + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "P&rozor" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Automatski izbor" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Postavlja završetke linija kada se izmijenjena datoteka snima.\n" +"DOS/Windows: CR+LF; Unix: LF; sa CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Podešavanja proframa Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Tretirajte kao bijeli prostor." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignoriši brojevne znakove tokom faze usklađivanja linija. (Slično " +"ignorisanju blanko znakova.)\n" +"Može pomoći pri uspoređivanju datoteka sa numeričkim podacima." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Tretiraj C/C++ komentare kao blanko znake." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tretiraj C/C++ komentare kao blanko znake." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Tretirajte kao bijeli prostor." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Tretira razliku u veličini slova kao promjene blanko znakova. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Predobradna naredba:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Korisnički definisana predobrada. (Pogledajte dokumentaciju radi detalja.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Predobradna naredba za usklađivanje linija:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Ova predobrada se koristi samo tokom usklađivanja linija.\n" +"(Pogledajte dokumentaciju radi detalja.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Potrudi se (sporije)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Uključuje opciju --minimal za spoljašnje razlikovanje.\n" +"Analiza velikih datoteka će biti mnogo sporija." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Poravnaj B i C za 3 ulazna dokumenta" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Pokušaj poravnati B i C kada porediš ili spajaš tri ulazna dokumenta.\n" +"Nije preporučeno za spajanje zato što spajanje može biti još " +"komplikovanije.\n" +"(Zadano je isključeno.)" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Stopi" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Postavke spajanja" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Zastoj automatskog napredovanja (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"U režimu automatskog napredovanja rezultat trenutnog izbora prikazuje se \n" +"za navedeno vrijeme, prije skoka na slijedeći sukob. Opseg: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Prikaži informacijske dijaloge" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Prikaži dijalog sa informacijama o broju konflikata." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Podrazumjevano stapanje blanko znakova dvije datoteke:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Ručni izbor" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Dozvoljava algoritmu stapanja da automatski odabere ulaz za izmjene samo u " +"blanko znakovima." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Podrazumjevano stapanje blanko znakova tri datoteke:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Regularni izraz automatskog stapanja" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regularni izraz auto-stapanja:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Pokreni auto-stapanje regularnih izraza na početku stapanja" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Pokreni stapanje za regularne izraze auto-stapanja\n" +"odmah kada stapanje počne.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Stapanje historije kontrola verzije" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Regularni izraz početka historije:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regularni izraz početka zapisa historije:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Sortiranje stapanja historije" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Sortiraj historiju kontrola verzije pomoću tipke." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Poredak tipki za sortiranje početka zapisa historije:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Stopi historiju kontrola verzije na početku stapanja" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Pokreni auto-stapanje historije kontrola verzije na početku stapanja." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Najveći broj zapisa historije:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Odrežite nakon određenog broja. Koristite -1 za beskonačan broj prijava." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Testirajte svoje regularne izraze" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Nevažna naredba stapanja:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"U slučaju da je naznačeno ova skripta se pokreće nakon auto-stapanja\n" +"kada nisu ustanovljene nikakve druge važne promjene.\n" +"Pozvana parametrima: filename1 filename2 filename3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automatsko snimanje i izlazak na spajanju bez konflikta" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Ako je KDiff3 pokrenut za spajanje dokumenta iz komandne linije i svi\n" +"konflikti su riješeni bez korisničke interakcije onda automatski snimi i " +"izađi.\n" +"(Slično opciji komandne linije \"--auto\".)" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Rekurzivni direktoriji" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "Bilo da se analiziraju poddirektoriji ili ne." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Uzorak/uzorci datoteka:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Uzorak/uzorci datoteka koje treba analizirati.\n" +"Zamjenski znaci: '*' i '?'\n" +"Više uzoraka može biti navedeno upotrebom razdjelnika: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Anti-uzorak/uzorci datoteka:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Uzorak/uzorci datoteka koje treba isključiti iz analize.\n" +"Zamjenski znaci: '*' i '?'\n" +"Više uzoraka može biti navedeno upotrebom razdjelnika: ';'" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Anti-uzorak/uzorci datoteka:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Uzorak/uzorci datoteka koje treba isključiti iz analize.\n" +"Zamjenski znaci: '*' i '?'\n" +"Više uzoraka može biti navedeno upotrebom razdjelnika: ';'" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "Koristi datoteku .cvsignore" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Proširuje antipatern na sve što će biti ignorisano od CVS.\n" +"Preko lokal \".cvsignore\" dokumenata ovo može biti direktorijski specifično." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "Pronađi skrivene datoteke i direktorije" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "Pronađi skrivene datoteke i direktorije" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Prati veze datoteka" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Uključeno: Uporedi datoteku na koju pokazuje veza.\n" +"Isključeno: Uporedi veze." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Prati veze datoteka" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Uključeno: Uporedi datoteku na koju pokazuje veza.\n" +"Isključeno: Uporedi veze." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Poređenje datoteka po nazivu koje razlikuje veličinu slova" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Poređenje direktorija će porediti datoteke ili direktorije kada se " +"podudaraju po nazivu.\n" +"Postavi ovu opciju ako se veličine slova za nazive moraju podudarati. " +"(Podrazumjevano za Windows je isključeno, u protivnom uključeno.)" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "Raširi sve poddirektorije" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Režim poređenja datoteka" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binarno poređenje" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binarno poređenje za svaku datoteku. (Podrazumjevano)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Puna analiza" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Obavi punu analizu i prikaži statističke podatke u dodatnim kolonama.\n" +"(Sporije nego binarno poređenje, mnogo sporije za binarne datoteke.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Čuvaj veličinu i datum promjene (nesigurno)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Pretpostavimo da su datoteke jednake ako izmjena datuma i dužina su " +"jednake.\n" +"Datoteke s jednakim sadržajem ali različitih promjena datuma će se pojaviti " +"kao drugačije.\n" +"Korisno za velike direktorije ili na sporim mrežama." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Čuvaj veličinu i datum, ali koristi binarno poređenje ako datum ne odgovara " +"(nesigurno)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Pretpostavimo da su datoteke jednake ako izmjena datuma i dužina dokumenta " +"su jednake.\n" +"Ako datumi nisu jednaki, ali su veličine, koristite binarno poređenje\n" +"Korisno za velike direktorije ili na sporim mrežama." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Čuvaj veličinu (nesigurno)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Pretpostavi da su datoteke jednake ako su njihove dužine jednake.\n" +"Korisno za velike direktorije ili spore mreže kada je datum izmijenjen u " +"toku preuzimanja." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Sinhronizuj direktorije" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Nudi da skladišti datoteke u oba direktorija tako\n" +"da su oba direktorija nakon toga ista.\n" +"Radi samo kada se porede dva direktorija bez navođenja odredišta." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Razlike blanko znakova smatraju se jednakim" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Ako se datoteke razlikuju samo po blanko znacima, smatraj ih jednakim.\n" +"Ovo je aktivno samo kada je odabrana puna analiza." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopiraj noviji umjesto stapanja (nesigurno)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Ne gledaj unutra, samo uzmi noviju datoteku.\n" +"(Koristite ovo samo ako znate šta radite!)\n" +"Djelotvorno samo kada se porede dva direktorija." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Napravi rezerve datoteka (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Ako dokument bude snimljen preko starog dokumenta, onda stari dokument\n" +"će biti preimenovan sa '.orig' ekstenzijom umjesto da bude izbrisan." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regionalne postavke" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Koristi isto kodiranje za sve:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Uključivanjem ovog možete promijeniti sva kodiranja promjenom samo prvog.\n" +"Isključite ovo ako su potrebne različite zasebne postavke." + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Napomna: Lokalno kodiranje je " + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Kodiranje datoteke za A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ako je omogućeno onda Unicode (UTF-16 i UTF-8) kodiranje će biti otkriveno.\n" +"Ako datoteka nije Unicode onda odabrano kodiranje će se koristiti kao " +"rezervno.\n" +"(Unicode detekcija ovisi o prvim bajtovima u datoteci.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Automatsko nalaženje Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Kodiranje datoteke za B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Kodiranje datoteke za C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kodiranje datoteke za stapanje izlaza i snimanje:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automatski izbor" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ako je uključeno onda je kodiranje iz ulaznih dokumenata korišteno.\n" +"U nesigurnim slučajevima dijalog će pitati korisnika za odabir kodiranja za " +"snimanje." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Kodiranje datoteke za preprocesorke datoteke:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Jezik s desna na lijevo" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Neki jezici se čitaju s desna na lijevo.\n" +"Ova postavka će prilagoditi tome prikazivač i editor." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Uklapanje" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Postavke uklapanja" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opcije komandne linije koje treba ignorisati:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Popis opcija naredbenog retka koje bi trebale biti zanemarene kada se KDiff3 " +"koristi za druge alate.\n" +"Nekoliko vrijednosti se mogu navesti ukoliko je odvojeno putem ';'\n" +"To će suzbiti \"Nepoznati opciju\" pogrešku." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Izađi i sa Escape tipkom" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Brzi način za izlazak.\n" +"Za one koji koriste Escape tipku za izlazak." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Ovo poništava sve opcije. Ne samo one na trenutnoj temi." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Preprocesorka naredba: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Slijedeće opcije koje ste izabrali mogu izmijeniti podatke:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Po svoj prilici ovo nije poželjno prilikom stapanja.\n" +"Želite li da isključite ove postavke ili da nastavite dalje sa njima?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opcija nije sigurna za stapanje" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Koristi ove opcije prilikom stapanja" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Isključi nesigurne opcije" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Učitavam A" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Učitavam A" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Učitavam B" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "Učitavam A" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Raz.: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Raz.lin.: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Učitavam C" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "Učitavam A" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Raz.: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Raz.: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Raz.lin.: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Raz.lin.: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Sve ulazne datoteke sadrže isti tekst, ali nisu binarno jednake." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Datoteke %1 i %2 imaju jednak tekst, ali nisu binarno jednake. \n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Izgleda da neke ulazne datoteke nisu čisto tekstualne.\n" +"Imajte na umu da KDiff3-stapanje nije namijenjeno binarnim podacima.\n" +"Nastavite na sopstveni rizik." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Neki ulazni karakteri ne mogu biti pretvoreni u ispravan unicode.\n" +"Možda koristite pogrešan codec. (e.g. UTF-8 za ne UTF-8 dokumente).\n" +"Ne snimajte rezltat ako niste sigurni. Nastavite na svoj rizik.\n" +"Zahvaćeni ulazni dokumenti su u %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Prekini" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Otvaram datoteke..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Isjecam odabrano..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopiram odabrano u clipboard..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Ubacujem sadržaje clipboarda..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Snimi i nastavi" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Nastavi bez snimanja" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Pretraga je završena." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Pretraga je gotova" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ništa nije odabrano niti u jednom ulaznom prozoru razlika." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Greška u toku dodavanja ručnog opsega razlika" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Odustani" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Razmijeni %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopiraj %1->Izlaz" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Razmijeni %1<->Izlaz" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Podesi..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Otvaram datoteke..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Tekst za pretragu:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Razlikuje veličinu slova" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Pretraži A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Pretraži B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Pretraži C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Izlaz pretrage" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Traži" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Ispitivač regularnih izraza" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Primjer linije auto-stapanja:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Za test automatskog spajanja, kopirajte liniju kako je korištena u dokumentu." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Rezultat usklađivanja:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Primjer početne linije historije (sa glavnim komentarom):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopirajte početnu liniju historije kao što je to korišteno u Vašim " +"datotekama,\n" +"uključujući glavni komentar." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Poredak tipki za sortiranje historije:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Primjer početne linije zapisa historije (bez glavnog komentara):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopirajte početnu liniju zapisa historije kao što je to korišteno u Vašim " +"datotekama,\n" +"ali izostavite glavni komentar." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Rezultat tipki za sortiranje:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Usklađivanje uspjelo." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Usklađivanje nije uspjelo." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Otvarajuća i zatvarajuća zagrada se ne podudaraju u regularnom izrazu." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Upisivanje podataka iz clipboarda u privremenu datoteku nije uspjelo." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Iz clipboarda" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Mješavina veza i normalnih datoteka." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Predobrada vjerovatno nije uspjela. Provjerite ovu naredbu:\n" +"\n" +" %1\n" +"\n" +"Naredba predobrade će sada biti isključena." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Predobrada usklađivanja linija vjerovatno nije uspjela. Provjerite ovu " +"naredbu:\n" +"\n" +" %1\n" +"\n" +"Predobrada usklađivanja linija će sada biti isključena." + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Očekivan razmak poslije zatvaranje apostrofa." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Neočekivan apostrof unutar argumenata." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Nijedan program nije naveden." \ No newline at end of file diff --git a/po/bs/kdiff3fileitemactionplugin.po b/po/bs/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..f46fdca --- /dev/null +++ b/po/bs/kdiff3fileitemactionplugin.po @@ -0,0 +1,124 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin.po\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2015-02-15 22:44+0000\n" +"Last-Translator: Samir Ribić \n" +"Language-Team: bs \n" +"Language: bs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2015-02-16 06:45+0000\n" +"X-Generator: Launchpad (build 17341)\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" + +#: kdiff3fileitemaction.cpp:81 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3 ..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Poredi sa %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Spoji sa %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Snimi '%1' za kasnije" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "trostrano spajanje s osnovom" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Poredi sa..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Očisti spisak" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Uporedi" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Trostrano poređenje" + +#: kdiff3fileitemaction.cpp:162 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "O KDiff3 meni priključku ..." + +#: kdiff3fileitemaction.cpp:270 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"KDiff3 Priključak za datotečne akcije: Copyright (C) 2011 Joachim Eibl\n" +"KDiff3 homepage: http://kdiff3.sourceforge.net\n" +"\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Korišćenje ekstenzije kontekst menija:\n" +"Za jednostavno upoređivanje dvije izabrane datoteke izabrati \"Uporedi\".\n" +"Ako je druga datoteka negdje drugo \"Snimi\" prvu datoteku za kasnije. Ona " +"će se pojaviti u \"uporedi sa ...\" podmeniju. Zatim koristite \"Uporedi sa" +"\" na drugom fajlu.\n" +"Za 3-vai spoji prvi \"Save\" baznu fajl, a zatim granu za spajanje i izabere " +"\"3-vai spojiti sa bazom\" na drugoj grani koja će se koristiti kao " +"odredište.\n" +"Isto se odnosi i na direktorijum poređenja i stapanja." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "O KDiff3 priključku za datotečne akcije" \ No newline at end of file diff --git a/po/ca/diff_ext.po b/po/ca/diff_ext.po new file mode 100644 index 0000000..9641c9b --- /dev/null +++ b/po/ca/diff_ext.po @@ -0,0 +1,134 @@ +# Translation of diff_ext.po to Catalan +# Copyright (C) 2018-2021 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Josep M. Ferrer , 2018, 2020, 2021. +# Antoni Bella Pérez , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-10-30 21:52+0200\n" +"Last-Translator: Josep M. Ferrer \n" +"Language-Team: Catalan \n" +"Language: ca\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 20.12.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Compara amb %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Fusiona amb %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusió a tres bandes amb la base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Desa «%1» per a després" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Compara amb..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Neteja la llista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Compara" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparació a 3 bandes" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Quant al Diff-Ext..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Tots els drets reservats.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" +"Aquest programari es pot distribuir segons la llicència Clàusula 2 de BSD.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Diverses extensions del KDiff3 (c) 2006-2013 per en Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Adaptació a les Qt5/Kf5 per en Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Pàgina web del Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Quant al Diff-Ext per al KDiff3 (64 bits)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Compara els fitxers seleccionats" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Compara «%1» amb «%2»" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Desa «%1» per a una operació posterior" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" +"No s'ha pogut iniciar el KDiff3. Torneu a executar la seva instal·lació." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Ordre" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Línia_d'ordres" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext per al KDiff3" \ No newline at end of file diff --git a/po/ca/docs/kdiff3/index.docbook b/po/ca/docs/kdiff3/index.docbook new file mode 100644 index 0000000..1730fea --- /dev/null +++ b/po/ca/docs/kdiff3/index.docbook @@ -0,0 +1,4008 @@ + +KDiff3"> + + + + ASCII"> +]> + + + + + + +El manual del &kdiff3; + + + Michael Reeves

reeves.87@gmail.com +
+ + Joachim Eibl
joachim.eibl at gmx.de +
+
+&traductor.Antoni.Bella; + + + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +22 de febrer de 2019 +1.08.70 + + + +El &kdiff3; és una eina per a la comparació i fusió de fitxers i carpetes +compara i fusiona dos o tres fitxers o carpetes des de l'entrada, +mostra les diferències línia per línia i caràcter per caràcter (!), +proporciona la facilitat de la fusió automàtica, +té un editor per a la solució còmoda dels conflictes de fusió, +proporciona transparència de xarxa a través del KIO, +té opcions per a ressaltar o ocultar els canvis en els espais en blanc o els comentaris, +admet Unicode, UTF-8 i altres codificacions de fitxer, +imprimeix les diferències, +admet la paraula clau per al control de versions i un historial de les fusions. + +Aquest document descriu la versió 1.9 del &kdiff3;. + + + + + +KDE +kdiff3 +diff +fusiona +CVS +diff triple +compara +fitxers +carpetes +carpetes +control de versions +fusió a tres bandes +diferències a la línia +sincronitza +kpart +kio +transparent a la xarxa +editor +espai en blanc +comentaris + + + + +Introducció +Un altre frontal de diferències? +Hi ha diverses eines gràfiques de diferències. Perquè triar el &kdiff3;? Deixeu-me dir perquè el vaig escriure. El &kdiff3; va començar perquè vaig haver de fer una fusió difícil. La fusió és necessària quan diverses persones treballen en els mateixos fitxers en un projecte. Una fusió pot ser una cosa automatitzada, quan l'eina de fusió no només té fitxers nous (anomenats «branques»), sinó també el fitxer original (anomenat «base»). L'eina de fusió prendrà qualsevol modificació que només s'hagi realitzat en una branca. Quan diversos col·laboradors canvien les mateixes línies, l'eina de fusió detectarà els conflictes que s'han de resoldre manualment. Llavors la fusió serà difícil perquè un col·laborador ha canviat moltes coses i ha corregit el sagnat en molts llocs. Un altre col·laborador també ha canviat molt text en el mateix fitxer, el qual ha resultat en diversos conflictes de fusió. L'eina que vaig emprar llavors, només mostrava les línies canviades, però no el que s'havia canviat dins d'aquestes línies. I no hi havia informació només sobre on s'havia canviat el sagnat. La fusió va ser un petit malson. De manera que aquest va ser el començament. La primera versió podia mostrar les diferències dins d'una línia i mostrava les diferències dels espais en blanc. Més tard es van anar afegint moltes altres característiques per a fer augmentar la utilitat. Per exemple, si voleu comparar un text amb rapidesa, podreu copiar-lo al porta-retalls i enganxar-lo a qualsevol de les finestres de diferències. Una característica que va requerir un gran esforç va ser la facilitat de comparació i fusió de les carpetes, la qual va convertir el programa gairebé en tot un navegador de fitxers. Espero que el &kdiff3; també funcioni per a vosaltres. Gaudiu-ne! Joachim Eibl (2003) + + +Captures de pantalla i característiques +Aquesta captura de pantalla mostra la diferència entre dos fitxers de text (emprant una versió inicial del &kdiff3;): + + + + +La fusió a 3 bandes està totalment admesa. Aquesta és útil si dues persones canvien el codi de forma independent. El fitxer original (la base) s'utilitzarà per a ajudar al &kdiff3; a seleccionar automàticament els canvis correctes. L'editor de la fusió que hi ha a sota les finestres de diferències permet resoldre els conflictes, mentre mostra el resultat que obtindreu. Fins i tot podreu editar la sortida. Aquesta captura de pantalla mostra els tres fitxers fusionats des de l'entrada: + + + + + +El &kdiff3; també ajuda a comparar i fusionar carpetes senceres. Aquesta captura de pantalla mostra el &kdiff3; durant una fusió de carpetes: + + + + + + +Més característiques +Visor de diferències línia per línia i caràcter per caràcter +En utilitzar les possibilitats d'una pantalla gràfica en color, el &kdiff3; mostrarà amb exactitud quina és la diferència. Us agradarà quan hàgiu de fer moltes revisions de codi. + + + + + +Vegeu d'una mirada les diferències en els espais en blanc +Els espais i les tabulacions que difereixen apareixeran visibles. Quan les línies només difereixin en la quantitat d'espais en blanc, això es veurà d'una ullada a la columna del resum al costat esquerre. (No més preocupacions quan algú canviï el sagnat). + + + + + +Diferències triples +Analitzeu tres fitxers i vegeu en què difereixen. Les finestres esquerra/mig/dreta s'anomenen A/B/C i tenen el color blau/verd/magenta respectivament. Si un fitxer és el mateix i un fitxer és diferent en una línia, el color mostrarà quin fitxer difereix. El color vermell indicarà que els altres dos fitxers són diferents. + + + + + +Fusió còmoda de dos o tres fitxers des de l'entrada +Es pot emprar el &kdiff3; per a fusionar dos o tres fitxers des de l'entrada i els fusionarà automàticament tant com sigui possible. El resultat es presentarà en una finestra editable on la majoria dels conflictes es podran resoldre amb un sol clic del ratolí: Seleccioneu els respectius botons ... a les finestres A/B/C per a seleccionar la font que s'emprarà. També podreu seleccionar més d'una font. Atès que aquesta finestra de sortida és un editor, fins i tot els conflictes que necessiten correccions addicionals es podran resoldre aquí sense requerir cap altra eina. + + +I... + + Navegació ràpida mitjançant botons. + Un clic del ratolí en una columna del resum sincronitzarà totes les finestres per a mostrar la mateixa posició. + Seleccioneu i copieu des de qualsevol finestra i enganxeu-ho a la finestra de resultats de la fusió. + Columna de la visió de conjunt que mostra on es troben els canvis i els conflictes. + Els colors es poden ajustar a les vostres preferències específiques. + Mida ajustable de la pestanya. + Opció per a inserir espais en lloc de tabulacions. + Obriu fitxers amb comoditat mitjançant el diàleg o especifiqueu els fitxers a la línia d'ordres. + Cerqueu cadenes en totes les finestres de text amb els elements de menú EditaCerca (&Ctrl;F) i EditaCerca la següent (F3). + Mostra els números de línia per a cada línia. + Enganxeu des del porta-retalls o arrossegueu el text a una finestra d'entrada de diferències. + Transparència de xarxa a través del KIO. + Es pot emprar com a visor de diferències des del &kdevelop; 3. + Ajust de les paraules per a les línies llargues. + Admet Unicode, UTF-8 i altres còdecs. + Admet els idiomes de dreta a esquerra. + ... + + + + + +Comparar i fusionar fitxers + +Opcions de la línia d'ordres + +Comparar 2 fitxers: +kdiff3 fitxer_1 fitxer_2 + + + +Fusionar 2 fitxers: +kdiff3 fitxer_1 fitxer_2 -m + kdiff3 fitxer_1 fitxer_2 -o fitxer_de_sortida + + + +Comparar 3 fitxers: +kdiff3 fitxer_1 fitxer_2 fitxer_3 + + + +Fusionar 3 fitxers: +kdiff3 fitxer_1 fitxer_2 fitxer_3 -m +kdiff3 fitxer_1 fitxer_2 fitxer_3 -o fitxer_de_sortida + +Cal tenir en compte que el fitxer_1 es tractarà com la base del fitxer_2 i el fitxer_3. + + +Cas especial: fitxers amb el mateix nom +Si tots els fitxers tenen el mateix nom però estan en carpetes diferents, podreu reduir el treball de tipografia especificant el nom de fitxer només per al primer fitxer, &pex;: +kdiff3 carpeta_1/nom_fitxer carpeta_2 carpeta_3 + + + +Línia d'ordres per a iniciar una comparació o fusió de carpetes: +Això és molt similar, però ara es tracta de carpetes. +kdiff3 carpeta_1 carpeta_2 + kdiff3 carpeta_1 carpeta_2 -o carpeta_de_destinació + kdiff3 carpeta_1 carpeta_2 carpeta_3 + kdiff3 carpeta_1 carpeta_2 carpeta_3 -o carpeta_de_destinació + +Per a comparar i fusionar carpetes, encara podeu continuar llegint aquí. + + +D'altres opcions a la línia d'ordres +Per a veure tots els tipus d'opcions disponibles de la línia d'ordres, escriviu +kdiff3 --help + +Sortida d'exemple: +Opcions: + -m, --merge Fusiona l'entrada. + -b, --base fitxer Fitxer base explícit. Per compatibilitat amb certes eines. + -o, --output fitxer Fitxer de sortida. Implica -m. P. ex.: -o fitxer_nou.txt + --out fitxer Fitxer de sortida, de nou. (Per compatibilitat amb certes eines). + --noauto Ignora --auto i mostra sempre la IGU. + --auto Sense IGU si tots els conflictes es poden resoldre automàticament. (Necessita -o fitxer) + --L1 àlies_1 Substitueix el nom visible per al fitxer d'entrada 1 (base). + --L2 àlies_2 Substitueix el nom visible per al fitxer d'entrada 2. + --L3 àlies_3 Substitueix el nom visible per al fitxer d'entrada 3. + -L, --fname àlies El nom visible alternatiu per a la substitució. Proporcioneu-lo una vegada per a cada entrada. + --cs cadena Substitueix una opció de la configuració. Useu-lo un cop per a cada opció. P. ex.: --cs "AutoAdvance=1" + --confighelp Mostra una llista de les opcions de configuració amb els valors actuals. + --config fitxer Usa un fitxer de configuració diferent. + +L'opció permet ajustar un valor de configuració que d'una altra manera només es podrà ajustar a través dels diàlegs de configuració. Fixeu-vos, que quan finalitzi el &kdiff3;, el valor modificat s'emmagatzemarà juntament amb les altres opcions. Amb trobareu els noms dels elements disponibles amb el seu valor actual. +Mitjançant podreu especificar un fitxer de configuració diferent. Quan empreu sovint el &kdiff3; amb configuracions completament diferents, això permetrà canviar amb facilitat entre elles. + +Opcions a ignorar de la línia d'ordres +Molta gent vol emprar el &kdiff3; amb algun sistema per al control de versions. Però quan aquest sistema per al control de versions crida al &kdiff3; utilitzant paràmetres de la línia d'ordres que el &kdiff3; no reconeix, llavors el &kdiff3; finalitzarà amb un error. L'element Integració en el diàleg de configuració permet especificar paràmetres de la línia d'ordres que el &kdiff3; haurà d'ignorar. Apareixeran en l'ús de l'ajuda com en aquest exemple: +--foo Ignorada. (Definida per l'usuari). + + + Opcions a ignorar de la línia d'ordres:Una llista d'opcions, separades per punt i coma «;». Quan aparegui una d'aquestes opcions a la línia d'ordres, el &kdiff3; la ignorarà i s'executarà sense informar d'un error. (De manera predeterminada és «u;query;html;abort»). + +Quan això no és suficient, es recomana escriure un script d'intèrpret d'ordres que faci la traducció de l'opció. + + + + +Diàleg d'obertura +Atès que la majoria dels fitxers d'entrada hauran de ser seleccionables, el programa té un diàleg d'obertura especial: + + + +El diàleg d'obertura permet editar els noms dels fitxers, seleccionant un fitxer mitjançant l'explorador de fitxers mitjançant botó Fitxer... o permet escollir fitxers recents des de les llistes desplegables. Si torneu a obrir el diàleg, els noms actuals encara hi romandran. El tercer fitxer d'entrada no és obligatori. Si l'entrada per a C roman buida, només es realitzarà una anàlisi de diferències entre dos fitxers. També podreu seleccionar una carpeta mitjançant el botó Carpeta.... Si s'especifica una carpeta per a A, s'iniciarà una comparació/fusió de carpetes. Si A especifica un fitxer però B, C o la sortida especifiquen una carpeta, llavors el &kdiff3; utilitzarà el nom de fitxer d'A en les carpetes especificades. Si se selecciona la casella de selecció Fusiona, llavors la línia Sortida esdevindrà editable. Però no caldrà especificar immediatament el nom del fitxer de sortida. També ho podreu posposar fins al desament. El botó Configura... obrirà el diàleg de configuració, de manera que podreu establir les opcions abans d'executar l'anàlisi. + + +Enganxar i arrossegar a l'entrada +De vegades voldreu comparar parts d'un text que no prové d'un fitxer. El &kdiff3; també permet enganxar text des del porta-retalls a la finestra d'entrada de diferències que té el focus. L'anàlisi de les diferències ocorrerà immediatament. En el diàleg d'obertura no necessitareu especificar cap fitxer, simplement tanqueu-lo mitjançant el botó Cancel·la. També podreu utilitzar l'acció arrossegar i deixar anar: arrossegueu un fitxer des d'un gestor de fitxers o el text seleccionat des d'un editor i deixeu-lo anar en una finestra d'entrada de diferències. Quina és la idea? De vegades, un fitxer contindrà dues funcions similars, però comprovar com són de similars en realitat és un gran esforç si primer heu de crear dos fitxers i després carregar-los. Ara podreu simplement copiar, enganxar i comparar les seccions rellevants. Actualment no es pot arrossegar res des del &kdiff3;. Només s'admet deixar anar a la finestra d'entrada de diferències. Alguns editors encara interpreten l'arrossegament i deixat anar en un altre programa com un retallat (en lloc de copiat) i enganxat. Llavors podríeu perdre les vostres dades originals. + + +Comparar fitxers i interpretar la informació a les finestres d'entrada + + + +Línia d'informacióA la part superior de cada finestra de text es troba la seva «línia d'informació». Les línies d'informació de les finestres d'entrada contenen una lletra A, B o C, el nom editable del fitxer, un botó per a examinar i el número de línia de la primera línia visible a la finestra. (Cal tenir en compte que la finestra C és opcional). Cada línia d'informació apareix en un color diferent. Quan seleccioneu un altre fitxer mitjançant l'exploració o acabeu d'editar el nom del fitxer prement &Intro;, el fitxer nou es carregarà i es compararà amb el/s fitxer/s ja carregat/s. Donar colorLes tres finestres d'entrada tenen assignades les lletres A, B i C. A té color blau, B té verd i C té magenta. (Aquests són els valors predeterminats, però es poden canviar a l'element Color en el diàleg de configuració). Quan es detecta una diferència, el color mostrarà quin fitxer d'entrada difereix. Quan difereixen els altres dos fitxers d'entrada, el color utilitzat per a expressar-ho serà el vermell de manera predeterminada (l'opció Color del conflicte a l'element Color en el diàleg de configuració). Aquest esquema de colors és especialment útil en el cas de tres fitxers d'entrada, els quals es veuran a la següent secció (Fusionar). Columna del resumA l'esquerra de cada text hi ha la columna del «resum». Si ocorre cap diferència en una línia, la columna del resum mostrarà el color respectiu. Per a una diferència de només espais en blanc, el resum estarà marcat. Per als llenguatges de programació on l'espai en blanc no és tan important, això és útil per a veure d'una ullada si s'ha modificat quelcom important. (En C/C++, l'espai en blanc només és interessant dins de les cadenes, comentaris, per al preprocessador i en algunes situacions molt esotèriques). La línia vertical que separa la columna del resum i el text s'interromprà si el fitxer d'entrada no hi tenia línies. Quan estigui habilitat l'ajust de paraules, aquesta línia vertical apareixerà puntejada per a les línies ajustades. Columna de la visió de conjuntA la part dreta, es veu una columna «visió de conjunt» a l'esquerra de la barra de desplaçament vertical. Mostra la columna del resum comprimida de l'entrada A. Totes les diferències i els conflictes seran visibles d'una ullada. Quan només s'emprin dues finestres d'entrada, totes les diferències apareixeran aquí en vermell perquè cada diferència també és un conflicte. Un rectangle negre emmarcarà la part visible de les entrades. Per als fitxers d'entrada molt llargs, quan el nombre de línies d'entrada sigui més gran que l'alçada de la columna del resum en píxels, diverses línies d'entrada compartiran una línia del resum. Llavors, un conflicte tindrà la màxima prioritat sobre les diferències senzilles, les quals tindran prioritat sobre sense canvis, de manera que aquí no es perdrà cap diferència o conflicte. En fer clic a dins d'aquesta columna del resum, es mostrarà el text corresponent. Alinear les línies manualmentDe vegades, l'algoritme col·loca línies incorrectes una al costat de l'altra. O voldreu comparar una part del text amb el text en una posició completament diferent en l'altre fitxer. Per a aquestes situacions, podreu indicar manualment al &kdiff3; que s'alineï amb certes línies. Seleccioneu amb el ratolí el text per al qual voleu millorar l'alineació com ho faríeu per a copiar i enganxar a la primera vista de diferències i després escolliu l'element de menú Vista de les diferènciesAfegeix alineació manual de les diferències (&Ctrl;Y). Apareixerà una barra taronja a la columna de la visió de conjunt al costat del text triat. Repetiu-ho per a la segona i (si està disponible) per a la tercera vista de diferències. El &kdiff3; tornarà immediatament a calcular les diferències cada vegada que ho feu, i alinearà les línies triades. Per descomptat, algunes de les línies intermèdies prèviament coincidents podrien no coincidir més. Actualment, la fusió no admet l'ús de l'ajuda del manual de «diff». Unir i dividir manualment seccions del «diff»En alguns casos, el &kdiff3; veurà massa o molt poques seccions de diferències a fusionar. En aquest cas, podreu unir o dividir les seccions existents. Afegiu seccions noves seleccionant primer el text en les línies que estan juntes en qualsevol finestra d'entrada (com per a copiar al porta-retalls). Després trieu l'element de menú FusionaDivideix les diferències a la selecció. Les divisions s'afegiran a sobre de la primera línia i a sota de l'última línia del text seleccionat. Si només voleu afegir una secció, seleccioneu el text que comença en una altra secció dividida. Per a unir seccions en qualsevol finestra d'entrada, seleccioneu quelcom en les línies de les seccions a unir. (També podreu unir diverses seccions en un sol pas). Després, trieu l'element de menú FusionaUneix les diferències seleccionades. + + + +Fusionar i la finestra de l'editor per a la sortida de la fusió + + + +La finestra de l'editor per a la sortida de la fusió (a sota de les finestres d'entrada de diferències) també té una línia d'informació a la part superior que mostra Sortida:, el nom del fitxer i l'etiqueta [Modificat] si heu editat quelcom. En general, contindrà una mica de text mitjançant les instal·lacions de fusió automàtica, però sovint també contindrà conflictes. El desament estarà inhabilitat fins que es resolguin tots els conflictes! (Utilitzeu els botons Ves al conflicte no resolt anterior/següent per a trobar els conflictes restants). Amb només dos fitxers d'entrada, cada diferència també és un conflicte que s'haurà de resoldre manualment. Amb tres fitxers d'entrada, el primer fitxer es tractarà com a base, mentre que el segon i el tercer contindran les modificacions. Quan en qualsevol línia només hagin canviat l'entrada B o C però no totes dues, llavors se seleccionarà automàticament la font canviada. Només quan B i C hagin canviat en les mateixes línies, l'eina detectarà un conflicte que s'haurà de resoldre manualment. Quan B i C siguin iguals, però no iguals que A, llavors se seleccionarà C. La columna del resumLa finestra de l'editor per a la sortida de la fusió també té una columna del resum a l'esquerra. Mostra la lletra de l'entrada des de la qual s'ha seleccionat una línia o res si les tres fonts són iguals en una línia. Per als conflictes, mostrarà un signe d'interrogació «?» i la línia mostrarà «<Conflicte de fusió>», tot en vermell. Com resoldre els conflictes línia per línia triga molt temps, les línies s'agruparan en grups que tenen la mateixa diferència i característiques del conflicte. Però només els conflictes d'espai en blanc se separaran dels conflictes que no són d'espai en blanc per a facilitar la fusió dels fitxers si el sagnat s'ha canviat en moltes línies. Establir el grup actual, sincronitzar la fusió i la posició de la vista de les diferènciesEn fer clic a dins de la columna del resum amb el &BER; a qualsevol finestra, el començament del grup que pertanyi a aquesta línia es mostrarà en totes les finestres. Aquest grup es convertirà en el «grup actual». Es ressaltarà amb l'opció Color de fons de les diferències de l'interval actual de l'element Integració en el diàleg de configuració i apareixerà una barra negra a la banda esquerra del text. Triar les entrades A, B o C per als conflictes actuals i editarLa barra de botons que hi ha a sota de la barra de menús conté tres botons selectors d'entrada que contenen les lletres A, B i C. Feu clic al botó selector d'entrada per a inserir (o eliminar si ja està inserit) les línies des de la respectiva font. Per a triar les línies des de diverses entrades, feu clic als botons respectius en l'ordre necessari. Per exemple, si voleu que les línies de B apareguin a la sortida abans que les línies d'A, primer feu clic a B i després a A. Si utilitzeu el botó Ves automàticament al conflicte no resolt següent després de seleccionar una font (vegeu la secció Avanç automàtic), haureu d'inhabilitar això abans d'escollir línies des de diverses entrades o si voleu editar les línies després de la vostra elecció. Altrament, el &kdiff3; saltarà al següent conflicte després de triar la primera entrada. Sovint és útil editar directament la sortida de la fusió. La columna del resum mostrarà «m» per a cada línia que s'ha modificat manualment. Quan, per exemple, les diferències estiguin alineades de manera que simplement triar les entrades no serà satisfactori, podreu marcar el text necessari i utilitzar copia i enganxa normalment per a col·locar-ho a la sortida de la fusió. De vegades, quan s'elimina una línia, sigui per fusió automàtica o per edició, i no queden altres línies en aquest grup, llavors apareixerà el text «<La línia no és codi>» en aquesta línia. Només es tracta d'un marcador de posició per al grup per a quan pugueu canviar d'opinió i seleccionar de nou alguna font. Aquest text no apareixerà al fitxer desat ni en cap selecció que vulgueu copiar i enganxar. El text «<Conflicte de fusió>» apareixerà en el porta-retalls si copieu i enganxeu algun text que contingui aquesta línia. Però així i tot aneu amb compte en fer-ho. Triar l'entrada A, B o C per a tots els conflictesLa fusió normal començarà resolent automàticament els conflictes senzills. Però el menú Fusiona proporciona algunes accions per a altres necessitats habituals. Si heu de seleccionar la mateixa font per a la majoria dels conflictes, podreu triar A, B o C a tot arreu, o només per als conflictes restants sense resoldre, o per als conflictes d'espais en blanc sense resoldre. Si voleu decidir cada diferència d'espai, podreu fer Estableix les diferències d'espais com a conflictes. O si voleu tornar a les opcions automàtiques del &kdiff3;, seleccioneu Resol automàticament els conflictes senzills. Després, el &kdiff3; tornarà a iniciar la fusió. Per a accions que canviïn les vostres modificacions anteriors, el &kdiff3; demanarà la vostra confirmació abans de continuar. En triar una font per als conflictes dels espais en blanc sense resoldre i s'emprin les opcions Ignora els números (tracta'ls com a espais en blanc) o Ignora els comentaris de C/C++ (tracta'ls com a espais en blanc) a l'element Diff en el diàleg de configuració són emprades de manera que els canvis en els números o comentaris també es tractaran com a espais en blanc. Fusió automàtica de les paraules clau i l'historial en el control de versions (registre)Molts sistemes per al control de versions admeten paraules clau especials al fitxer. (P. ex., «$Date$», «$Header$», «$Author$», «$Log$», &etc;) Durant el registre, el sistema per al control de versions (VCS) canvia aquestes línies. Per exemple, «$Date$» es convertirà en «$Date: 2005/03/22 18:45:01 $». Atès que aquesta línia serà diferent en cada versió del fitxer, requerirà la interacció manual durant la fusió. El &kdiff3; ofereix la fusió automàtica per a aquests elements a l'element Fusiona en el diàleg de configuració. Per a les línies senzilles que coincideixen amb l'opció Fusiona automàticament amb l'expressió regular en tots els fitxers d'entrada, el &kdiff3; triarà la línia des de B o, si està disponible, des de C. (A més, cal que les línies en qüestió s'alineïn en la comparació i la línia anterior no contingui cap conflicte). Aquesta fusió automàtica pot executar-se immediatament després que comenci una fusió (activeu l'opció Executa la fusió automàtica amb l'expressió regular a l'inici de la fusió) o més tard mitjançant l'element de menú FusionaExecuta la fusió automàtica amb l'expressió regular. També s'admet la fusió automàtica per a l'historial del control de versions (també anomenat «registre»). La fusió automàtica de l'historial pot executar-se immediatament quan comença la fusió activant l'opció Fusiona l'historial del control de versions quan es comenci a fusionar a l'element Fusiona en el diàleg de configuració o més tard mitjançant l'element de menú FusionaResol automàticament els conflictes cronològics. En general, l'historial del control de versions comença amb una línia que conté la paraula clau «$Log$». Aquesta haurà de coincidir amb l'opció Expressió regular per a l'inici de l'historial: a l'element Fusiona en el diàleg de configuració. El &kdiff3; detectarà quines línies posteriors hi ha a l'historial mitjançant l'anàlisi dels caràcters principals que precedeixen a la paraula clau «$Log$». Si també apareixen els mateixos caràcters de «comentari principal» en les següents línies, també s'inclouran a l'historial. Durant cada registre, el VCS escriu una línia única que especifica la informació de la versió, data i hora seguida de les línies amb els comentaris de l'usuari. Aquestes línies formen una entrada a l'historial. Aquesta secció de l'historial creixerà amb cada registre i les entrades més recents apareixeran a la part superior (després de la línia d'inici de l'historial). Quan per al desenvolupament en paral·lel dos o més desenvolupadors registrin en una branca del fitxer, l'historial de fusió contindrà diverses entrades que apareixeran com a conflictes durant la fusió de les branques. Atès que fusionar-les pot tornar-se molt tediós, el &kdiff3; ofereix suport amb dues estratègies possibles: simplement inserir a la part superior la informació de l'historial d'ambdós col·laboradors o ordenar la informació de l'historial amb una clau definida per l'usuari. El mètode de simplement inserir totes les entrades és més fàcil de configurar. El &kdiff3; només necessita un mètode per a detectar quines línies pertanyen a una entrada de l'historial. La majoria dels VCS insereixen una línia buida després de cada entrada de l'historial. Si no hi ha altres línies buides, aquest és un criteri suficient per al &kdiff3;. Simplement establiu una Expressió regular per a l'inici d'entrada de l'historial buida a l'element Fusiona en el diàleg de configuració. Si el criteri de línia buida no és suficient, podreu especificar una expressió regular per a detectar el començament de l'entrada de l'historial. Cal tenir present que el &kdiff3; eliminarà les entrades duplicades de l'historial. Si una entrada de l'historial aparèixer diverses vegades en l'historial d'un fitxer d'entrada, només quedarà una entrada a la sortida. Si voleu ordenar l'historial, haureu d'especificar com s'haurà de construir la clau d'ordenació. Utilitzeu parèntesis a l'Expressió regular per a l'inici d'entrada de l'historial a l'element Fusiona en el diàleg de configuració per a agrupar parts de l'expressió regular que després s'utilitzaran per a la clau d'ordenació. Després, especifiqueu el Criteri d'ordenació de les claus per a l'inici de l'entrada de l'historial, especificant una llista separada per comes «,» dels números que es refereixen a la posició del grup en l'expressió regular. A causa que això no és tan fàcil de fer immediatament, podreu provar i millorar les expressions regulars i la generació de les claus en un diàleg dedicat prement el botó Comprova les expressions regulars. Exemple: suposem un historial similar a aquest: +/************************************************************************** +** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ +** +** \main\integration_branch_12 2 Apr 2001 10:45:41 tom +** Merged branch simon_branch_15. +** +** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry +** Improved the speed for subroutine convertToMesh(). +** Fixed crash. +**************************************************************************/ + +La línia d'inici de l'historial coincideix amb l'expressió regular «.*\$Log.*\$.*». Després segueixen les entrades de l'historial. La línia amb la paraula clau «$Log$» comença amb dos «*», després dels quals segueix un espai. El &kdiff3; utilitzarà la primera cadena que no sigui un espai en blanc com a «comentari principal» i suposarà que l'historial acaba en la primera línia sense aquest comentari principal. En aquest exemple, l'última línia acaba amb una cadena que també comença amb dos «*», però en lloc d'un caràcter d'espai més segueix «*». Per tant, aquesta línia acaba l'historial. Si no es requereix l'ordenació de l'historial, l'expressió regular de la línia d'inici per a l'entrada de l'historial podria tenir aquest aspecte. (Aquesta línia es divideix en dos perquè d'una altra manera no hi cabria). +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + +Per a obtenir detalls sobre les expressions regulars, consulteu la documentació sobre expressions regulars. Recordeu que «\s» (amb «s» en minúscula) coincidirà amb qualsevol espai en blanc i «\S» (amb «S» en majúscula) coincidirà amb qualsevol espai que no sigui en blanc. En el nostre exemple, l'inici de l'entrada de l'historial conté primer la informació de la versió amb l'expressió regular «\\main\\\S+», la data que consisteix en el dia «[0-9]+», el mes «(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)» i l'any «[0-9][0-9][0-9][0-9]», l'hora «[0-9][0-9]:[0-9][0-9]:[0-9][0-9]» i finalment el nom d'inici de la sessió dels desenvolupadors «.*». Recordeu que els caràcters en el «comentari principal» (a l'exemple «**») ja seran eliminats pel &kdiff3; abans d'intentar fer coincidir, per tant, l'expressió regular començarà amb una coincidència per a cap o més caràcters d'espai en blanc «\s*». A causa que els caràcters de comentari poden diferir en cada fitxer (&pex;, a C/C++ s'utilitzen altres caràcters de comentari que en un script en Perl) el &kdiff3; s'ocuparà dels caràcters de comentari principals i no haureu d'especificar-los a l'expressió regular. Si necessiteu un historial ordenat. Llavors s'haurà de calcular la clau d'ordenació. Per això, les parts rellevants de l'expressió regular s'hauran d'agrupar entre parèntesis. (Els parèntesis addicionals també poden romandre si l'ordenació de l'historial està inhabilitada). +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + +Els parèntesis ara contenen 1. informació de la versió, 2. dia, 3. mes, 4. any, 5. hora i 6. nom. Però si volem ordenar per data i hora, ens caldrà construir una clau amb els elements en un ordre diferent d'aparició: Primer l'any, seguit del mes, dia, hora, informació de la versió i nom. Per tant, l'ordre d'ordenació a especificar serà «4,3,2,5,1,6». A causa que els noms dels mesos no són bons per a l'ordenació («Abr» seria el primer) el &kdiff3; detectarà en quin ordre s'han donat els noms dels mesos i utilitzarà aquest nombre en el seu lloc («Abr» -> «04»). I si es troba un nombre pur, es transformarà en un valor de 4 dígits amb zeros a l'esquerra per a l'ordenació. Finalment, la clau d'ordenació resultant per a la primera línia d'inici de l'entrada de l'historial serà: +2001 04 0002 10:45:41 integration_branch_12 tom + +Per a més informació, vegeu la secció Configuració de la fusió. + + + +Navegar i editar +Es realitza molta navegació amb les barres de desplaçament i el ratolí, però també es pot navegar amb les tecles. Si feu clic a qualsevol de les finestres, podreu utilitzar les dreceres &Left;, &Right;, &Up;, &Down;, &PgUp;, &PgDn;, &Home;, &End;, &Ctrl;&Home; i &Ctrl;&End; com ho faríeu en altres programes. La columna de la visió de conjunt que hi ha al costat de la barra de desplaçament vertical dels fitxers d'entrada també es pot utilitzar per a navegar fent-hi clic. També podreu utilitzar la roda del ratolí per a desplaçar-vos cap amunt i cap avall. A l'editor de la sortida de la fusió també podreu utilitzar les altres tecles per a editar. Podeu alternar entre el mode d'inserció i sobreescriptura amb la tecla &Ins;. (De manera predeterminada és el mode inserció). Un clic amb el &BER; dins de qualsevol columna del resum, se sincronitzaran totes les finestres per a mostrar el començament del mateix grup de línies (com s'explica a la secció Establir el grup actual, sincronitzar la fusió i la posició de la vista de les diferències). La barra de botons també conté nou botons de navegació amb els quals podreu saltar a la diferència actual/primera/última, a la diferència següent/anterior (&Ctrl;&Down;/&Ctrl;&Up;), al conflicte anterior/següent (&Ctrl;&PgDn;/&Ctrl;&PgUp;), o al conflicte sense resoldre anterior/següent. Recordeu que per al &kdiff3; un «conflicte» que no s'ha resolt automàticament a l'inici de la fusió seguirà sent un «conflicte» fins i tot si es resol. D'aquí la necessitat de distingir els «conflictes no resolts». +Avanç automàtic +També hi ha un botó Ves automàticament al conflicte no resolt següent després de seleccionar una font (avanç automàtic). Si l'habiliteu, llavors, quan se selecciona una font, el &kdiff3; saltarà i seleccionarà el següent conflicte no resolt automàticament. Això ajudarà sempre que vulgueu triar una única font. Quan necessiteu les dues fonts, o vulgueu editar després de seleccionar, llavors probablement ho voldreu desactivar. Abans de continuar amb el següent conflicte no resolt, el &kdiff3; mostrarà l'efecte de la vostra elecció durant un curt temps. Aquest retard es pot ajustar a l'element Fusiona en el diàleg de configuració: podeu especificar el Retard de l'avanç automàtic (ms): en mil·lisegons entre 0 i 2000. Consell: Cansat de molts clics? Utilitzeu un petit retard i les dreceres &Ctrl;1/2/3 per a seleccionar A/B/C per a molts conflictes. + + + +Seleccionar, copiar i enganxar +Les finestres d'entrada no mostren un cursor, de manera que les seleccions s'han de fer amb el ratolí; fent clic amb el &BER; a l'inici, mantenint premut el botó del ratolí i movent-se fins al final, on el deixareu anar de nou. També podeu seleccionar una paraula fent-hi doble clic. A l'editor de sortida de la fusió també podreu seleccionar mitjançant el teclat mantenint premuda la tecla &Maj; i navegant amb les tecles de cursor. Si la selecció excedeix l'interval visible, podreu moure el ratolí sobre les vores de la finestra, el qual farà que el &kdiff3; es desplaci en aquesta direcció. Per a seleccions molt grans també podreu utilitzar les tecles de navegació mentre manteniu premut el ratolí. Per exemple, empreu &PgUp; i &PgDn; per a anar ràpidament a una determinada posició. A la posició final deixeu anar el botó del ratolí. Per a seleccionar tot el que hi ha a la finestra actual, utilitzeu l'element de menú Edita Selecciona-ho tot (&Ctrl;A). Per a copiar al porta-retalls, haureu de prémer el botó Copia (&Ctrl;C o &Ctrl;&Ins;). Però hi ha una opció Copia la selecció automàticament a l'element Editor en el diàleg de configuració. Si està habilitada, el que seleccioneu es copiarà immediatament i no caldrà copiar explícitament. Però aneu amb compte en emprar-ho, perquè el contingut del porta-retalls podria destruir-se de manera accidental. Retalla (&Ctrl;X o &Maj;∇) copia al porta-retalls i suprimeix el text seleccionat. Enganxa (&Ctrl;V o &Maj;&Ins;) insereix el text en el porta-retalls a la posició del cursor o sobre la selecció actual. Si enganxeu a qualsevol de les finestres d'entrada de diferències, el contingut del porta-retalls es mostrarà en aquesta finestra i la comparació es reiniciarà immediatament. Això és útil per a obtenir ràpidament un fragment de text d'algun lloc i comparar-lo amb una altra cosa sense crear primer els fitxers. + + +Desar +El desament només es permetrà quan es resolguin tots els conflictes. Si el fitxer ja existeix i l'opció Fitxers per a còpia de seguretat està habilitada a l'element Carpeta en el diàleg de configuració, el fitxer existent serà reanomenat amb una extensió .orig, però si aquest fitxer existeix, s'eliminarà. Quan sortiu o comenceu una altra anàlisi de diferències i les dades encara no s'hagin desat, el &kdiff3; demanarà si les voleu desar, cancel·lar o continuar sense desar. (El &kdiff3; no capta cap senyal. Per tant, si «mateu» una instància del &kdiff3;, es perdran les vostres dades). Els finals de línia es desen d'acord amb el mètode normal en el sistema operatiu subjacent. Per als Unices, cada línia acaba amb un caràcter de salt de línia «\n», mentre que per als sistemes basats en Win32 cada línia acaba amb un retorn de carro + un salt de línia «\r\n». El &kdiff3; no conservarà els finals de línia dels fitxers d'entrada, el qual també voldrà dir que no heu d'emprar el &kdiff3; amb els fitxers binaris. + + +Cercar les cadenes +Podeu cercar una cadena en qualsevol finestra de text del &kdiff3;. L'element de menú EditaCerca... (&Ctrl;F) obre un diàleg que permetrà especificar la cadena a cercar. També podreu seleccionar les finestres on s'ha de cercar. Sempre es començarà a cercar per la part superior. Utilitzeu l'element de menú EditaCerca la següent... (F3) per a passar a la següent ocurrència. Si seleccioneu cercar a diverses finestres, se cercarà des de la primera finestra de dalt a baix abans que es comenci la cerca de nou a la següent finestra a la part superior, &etc; + + +Imprimir +El &kdiff3; admet la impressió de diferències en fitxers de text. L'element de menú FitxerImprimeix... (&Ctrl;P) obre un diàleg que permetrà seleccionar la impressora i ajustar altres opcions. Hi ha diverses possibilitats per a ajustar l'interval. A causa dels diferents diàlegs d'impressió en els diferents sistemes operatius, varia el mètode per a aconseguir certes seleccions de l'interval. + + Tot:Ho imprimeix tot. + Actual:Imprimeix una pàgina que comença en la primera línia visible de la finestra. (En els sistemes sense aquesta opció, això es pot aconseguir especificant el número de pàgina 10.000 per a imprimir). + Selecció:Abans de triar imprimir, seleccioneu el text amb el ratolí (com per a copiar i enganxar) en una de les finestres d'entrada de diferències per a definir l'inici i final de la línia. Si no s'ha seleccionat cap text en una de les finestres d'entrada de diferències, llavors aquesta no serà una opció disponible. (En els sistemes sense aquesta opció, això es pot aconseguir especificant el número de pàgina 9.999 per a imprimir). + Interval:Especifica la primera i la darrera pàgina. + +Altres opcions importants per a imprimir es prenen de les opcions normals: + Tipus de lletra i mida + Mostra els números de les línies + Ajust de les paraules + Colors + &etc; + +El format apaïsat també es recomana per a la impressió. + + +Opcions +Les opcions i la llista de fitxers recents es desaran quan sortiu del programa i es tornaran a carregar quan l'inicieu. (Element de menú Arranjament Configura el &kdiff3;...). +Tipus de lletra +Seleccioneu un tipus de lletra d'amplada fixa. (En alguns sistemes, aquest diàleg també presentarà tipus de lletra d'amplada variable, però no les hauríeu d'emprar). + + +Colors + + Vistes de l'editor i les diferències: + + Color de primer pla:En general negre. + Color de fons:En general blanc. + Color de fons de les diferències:En general gris clar. + Color A:En general blau fosc. + Color B:En general verd fosc. + Color C:En general magenta fosc. + Color del conflicte:En general vermell. + Color de fons de l'interval actual:En general groc clar. + Color de fons de les diferències de l'interval actual:En general groc fosc. + Color per als intervals de diferències alineades manualment:En general taronja. + + Vista en la comparació de carpetes: + + Color del fitxer més nou:En general verd. + Color del fitxer més antic:En general vermell. + Color del fitxer d'edat intermèdia:En general groc fosc. + Color dels fitxers no disponibles:En general negre. + + +Canviar els colors per a la comparació de carpetes serà efectiu només quan inicieu la propera comparació de carpetes. +En els sistemes amb només 16 o 256 colors, alguns colors no estaran disponibles en forma pura. En aquests sistemes, el botó Omissió triarà un color pur. + + +Arranjament de l'editor + + El tabulador insereix espaisSi està inhabilitada i premeu la tecla , s'inserirà un caràcter de tabulació. En cas contrari, s'inseriran la quantitat adequada de caràcters. + Mida de la tabulació:Es pot ajustar a les vostres necessitats específiques. El valor predeterminat és 8. + Sagnat automàticQuan es prem &Intro; o Entra, s'utilitzarà el sagnat de la línia anterior per a la línia nova. + Copia la selecció automàticamentCada selecció es copiarà immediatament al porta-retalls quan està activa i no necessitareu copiar explícitament. + Estil del salt de línia:Quan deseu, podreu seleccionar l'estil del final de línia que preferiu. L'opció predeterminada és l'opció comuna per al sistema operatiu emprat. + + + +Arranjament del «diff» +Quan es comparen fitxers, el &kdiff3; primer intentarà fer coincidir les línies que són iguals en tots els fitxers d'entrada. Només durant aquest pas podreu ignorar els espais en blanc. El segon pas compararà cada línia. En aquest pas no s'ignoraran els espais en blanc. A més, durant la fusió, no s'ignoraran els espais en blanc. + + + Ignora els números (tracta'ls com a espais en blanc)El valor predeterminat és desactivat. Els caràcters numèrics («0»-«9», «.», «-») s'ignoraran en la primera part de l'anàlisi en la qual es realitza la coincidència de les línies. No obstant això, en el resultat es mostraran les diferències, però es tractaran com a espais en blanc. + Ignora els comentaris de C/C++ (tracta'ls com a espais en blanc)El valor predeterminat és desactivat. Els canvis en els comentaris es tractaran com a canvis en els espais en blanc. + Ignora les majúscules/minúscules (tracta-les com a espais en blanc)El valor predeterminat és desactivat. Les diferències entre majúscules i minúscules dels caràcters (com «A» front «a») es tractaran com a canvis en els espais en blanc. + Ordre del preprocessador:Vegeu la següent secció. + Ordre del preprocessador de coincidència de les línies:Vegeu la següent secció. + Esforça't (més lent)Intenta trobar una diferència d'espai encara més petita. (El valor predeterminat és activada). Això probablement serà efectiu per a fitxers complicats i grans. I lent per a fitxers molt grans. + Alinea B i C per a 3 fitxers d'entradaIntenta alinear B i C quan es comparin o fusionin tres fitxers d'entrada. No recomanat per a fusionar, ja que pot ser més complicat. (De manera predeterminada està desactivat). + + + +Arranjament de la fusió + + Retard de l'avanç automàtic (ms):Quan està en el mode d'avanç automàtic, aquesta opció especificarà quant de temps mostrar el resultat de la selecció abans de saltar al següent conflicte sense resoldre. + Mostra els diàlegs informatiusMostra un diàleg amb informació sobre el nombre de conflictes. + Opció predeterminada dels espais en blanc en la fusió de 2/3 fitxers:Resoldrà automàticament tots els conflictes en els espais en blanc triant el fitxer especificat. (El valor predeterminat és elecció manual). Útil si els espais en blanc en realitat no són importants en molts fitxers. Si ho necessiteu ocasionalment, millor utilitzeu Escull A/B/C a tots els conflictes dels espais en blanc no resolts al menú Fusiona. Recordeu que si s'habilita Ignora els números (tracta'ls com a espais en blanc) o Ignora els comentaris de C/C++ (tracta'ls com a espais en blanc), aquesta opció automàtica també s'aplicarà als conflictes en els nombres o comentaris. + Fusiona automàticament amb l'expressió regular:Expressió regular per a les línies on el &kdiff3; haurà de triar automàticament una font. Vegeu també Fusió automàtica.... + Executa la fusió automàtica amb l'expressió regular a l'inici de la fusióSi està activada, el &kdiff3; executarà la fusió automàtica utilitzant l'opció Fusiona automàticament amb l'expressió regular quan s'inicia una fusió. + Expressió regular per a l'inici d'entrada de l'historial:Expressió regular per a l'inici de les entrades de l'historial de fusió. Normalment aquesta línia conté la paraula clau «$Log$». Valor predeterminat «.*\$Log.*\$.» + Expressió regular per a l'inici d'entrada de l'historial:Una entrada de l'historial per al control de versions consisteix en diverses línies. Especifiqueu l'expressió regular per a detectar la primera línia (sense el comentari inicial). Empreu els parèntesis per a agrupar les claus que vulgueu utilitzar per a ordenar-les. Si es deixa en blanc, llavors el &kdiff3; assumirà que les línies en blanc separen les entrades de l'historial. Per a més detalls, vegeu també el Fusió automàtica.... + Ordena la fusió de l'historialHabilita l'ordenació de l'historial en el control de versions. + Criteri d'ordenació de les claus per a l'inici de l'entrada de l'historial:Cada parell de parèntesis emprats a l'expressió regular per a l'inici de l'entrada de l'historial agruparà una clau que es pot emprar per a ordenar. Especifiqueu la llista de claus (que estan numerades en ordre d'ocurrència començant per 1) utilitzant «,» com a separador (&pex;, «4,5,6,1,2,3,7»). Si es deixa en blanc, no s'ordenarà. Per a més detalls, vegeu també el Fusió automàtic.... + Fusiona l'historial del control de versions quan es comenci a fusionarSi està activada, el &kdiff3; executarà la fusió automàtica de l'historial utilitzant les opcions abans esmentades quan s'inicia una fusió. + Nombre màxim d'entrades de l'historial:El &kdiff3; truncarà la llista de l'historial després del nombre especificat d'entrades. Utilitzeu -1 per a evitar el truncament. (De manera predeterminada és -1). + Comprova les expressions regularsAquest botó mostra un diàleg que permet millorar i provar les expressions regulars anteriors. Simplement copieu les dades respectives dels vostres fitxers a les línies d'exemple. L'opció Resultat coincident: mostrarà immediatament si coincideixen. L'opció Resultat de la clau d'ordenació: mostrarà la clau utilitzada per a l'ordenació en la fusió de l'historial. + Ordre de fusió irrellevant:Especifiqueu una ordre que s'haurà de cridar quan el &kdiff3; detecti que per a una fusió de tres fitxers, el fitxer B no aporta cap dada rellevant que no es trobi en el contingut del fitxer C. L'ordre es cridarà amb els tres noms de fitxer com a paràmetres. Les dades que coincideixin amb Fusiona automàticament amb l'expressió regular o en l'historial no es consideraran rellevants. + En les fusions sense conflictes desa i surt automàticamentSi el &kdiff3; s'inicia des de la línia d'ordres per a fusionar fitxers i tots els conflictes es poden resoldre sense la interacció de l'usuari, desa i surt. (Similar a l'opció de la línia d'ordres ). + + + + +Fusionar les carpetes +Aquestes opcions estan relacionades amb l'exploració de les carpetes i el maneig de la fusió: Per als detalls, vegeu Comparar/Fusionar carpetes. No obstant això, aquí hi ha una opció que també és rellevant per al desament de fitxers individuals: + + Fitxers de còpia de seguretat (.orig)Quan es desa un fitxer i ja hi ha una versió anterior, la versió original canviarà de nom amb l'extensió .orig. Si ja existeix un fitxer de còpia de seguretat antic amb l'extensió .orig, s'eliminarà per fer-ho sense còpia de seguretat. + + + +Opcions regional i d'idioma + + Usa la mateixa codificació a tot arreuLes següents opcions de codificació es poden ajustar per separat per a cada element o si aquesta opció és certa, tots els valors prendran el primer valor. + Nota: la codificació local és «...»A sobre dels selectors del còdec apareixerà aquesta nota indicant quina és la codificació local. (Això no és ajustable, però per a la vostra informació en el cas que no la conegueu, però necessiteu seleccionar-la). + Codificació per al fitxer A/B/C:Ajusta la codificació del fitxer per als fitxers d'entrada. Això té un efecte sobre com s'interpretaran els caràcters especials. Podreu ajustar cada còdec per separat, fins i tot podreu comparar i fusionar fitxers que s'han desat amb còdecs diferents. + Codificació dels fitxers de sortida en la fusió i desament:Quan hàgiu editat un fitxer, podreu ajustar quina codificació es farà servir en fer el desament al disc. + Codificació dels fitxers del preprocessador:Quan definiu els preprocessadors, és possible que no puguin operar amb el vostre còdec. (&pex;: els fitxers tenen unicode de 16 bits i el preprocessador només pot prendre &ASCII; de 8 bits). Amb aquesta opció podreu definir la codificació per a la sortida del preprocessador. + Idioma de dreta a esquerra:Alguns idiomes s'escriuen de dreta a esquerra. Quan aquesta opció està habilitada, el &kdiff3; dibuixarà el text de dreta a esquerra en les finestres d'entrada de les diferències i en la finestra de sortida de la fusió. Recordeu que si inicieu el &kdiff3; amb l'opció de línia d'ordres , llavors tota la disposició també es mostrarà de dreta a esquerra. (Aquesta és una característica proporcionada per les &Qt;). Aquesta documentació es va escriure assumint que aquesta opció o la disposició inversa estan inhabilitades. Per tant, algunes referències a «esquerra» o «dreta» s'hauran de substituir per les seves respectives contraparts si empreu aquestes opcions. + + + + +Miscel·lània +(Aquestes opcions i accions estan disponibles en els menús o a la barra de botons). + + Opcions de la visió de conjunt:Aquestes opcions només estaran disponibles quan es comparin tres fitxers. En el mode normal, totes les diferències es mostraran en una columna de la visió de conjunt codificada per colors. Però de vegades és especialment interessant en les diferències entre només dos d'aquests tres fitxers. En seleccionar «A front B», «A front C» o «B front C», es mostrarà una segona columna de la visió de conjunt amb la informació requerida al costat de la visió de conjunt normal. + Ajusta les línies a les finestres de diferènciesAjusta les línies quan la seva longitud excedeix l'amplada d'una finestra. + Mostra la finestra A/B/C:De vegades es vol utilitzar millor l'espai a la pantalla per a les línies llargues. Oculta les finestres que no són importants. (Al menú Finestra). + Commuta l'orientació de les divisionsCanvia entre les finestres de diferències que es mostren una al costat de l'altra (A a l'esquerra de B, i B a l'esquerra de C) o una damunt de l'altra (A a sobre de B, i B a sobre de C). Això també hauria d'ajudar per a línies llargues. (Al menú Finestres). + Fusiona el fitxer actualDe vegades esteu veient les diferències d'espais i decidiu fusionar. Un sol clic inicia la fusió i utilitza el nom del fitxer de l'últim fitxer d'entrada com el nom predeterminat del fitxer de sortida. (Quan s'utilitza per a tornar a iniciar una fusió, es mantindrà el nom del fitxer de sortida). + Mostra els espais en blancDesactiveu-la per a suprimir qualsevol ressaltat dels canvis només dels espais en blanc en el text o en les columnes de la visió de conjunt. (Cal tenir en compte que això també s'aplicarà als canvis en els números o comentaris si estan actives les opcions Ignora els números (tracta'ls com a espais en blanc) o Ignora els comentaris de C/C++ (tracta'ls com a espais en blanc)). + Mostra els caràcters d'espai en blanc i els de tabulacióDe vegades, els espais visibles i les tabulacions molesten. Ho podeu desactivar. + Mostra els números de les líniesPodeu seleccionar si s'han de mostrar els números de línia per als fitxers d'entrada. + + + +Configurar les dreceres del teclat +Actualment, només la versió dels &frameworks; admet dreceres de teclat configurables per l'usuari. (Menú ArranjamentConfigura les dreceres...). + + + +Ordres del preprocessador +El &kdiff3; admet dues opcions del preprocessador. + + Ordre del preprocessador:Quan es llegeix qualsevol fitxer, es canalitzarà a través d'aquesta ordre externa. La sortida d'aquesta ordre serà visible en lloc del fitxer original. Podeu escriure el vostre propi preprocessador que satisfaci les vostres necessitats específiques. Empreu-la per a retallar parts pertorbadores del fitxer, o per a corregir automàticament el sagnat, &etc; + Ordre del preprocessador de coincidència de les línies:Quan es llegeix qualsevol fitxer, es canalitzarà a través d'aquesta ordre externa. Si també s'especifica una ordre del preprocessador (vegeu a dalt), llavors la sortida del preprocessador serà l'entrada del preprocessador de coincidència de les línies. La sortida només s'utilitzarà en l'anàlisi durant la fase de coincidència de les línies. Podeu escriure el vostre propi preprocessador que satisfaci les vostres necessitats específiques. Cada línia d'entrada haurà de tenir una línia de sortida corresponent. + + +La idea és permetre a l'usuari una major flexibilitat mentre configura el resultat de les diferències. Però això requereix un programa extern, i molts usuaris no volen escriure'n un ells mateixos. La bona notícia és que molt sovint sed o perl faran la feina. +Exemple: un cas senzill de prova: es considera el fitxer a.txt (6 línies): +aa + ba + ca + da + ea + fa + +I el fitxer b.txt (3 línies): +cg + dg + eg + +Sense un preprocessador, les següents línies es col·locarien una a una al costat de l'altra: +aa - cg + ba - dg + ca - eg + da + ea + fa + +Probablement això no sigui desitjable perquè la primera lletra conté la informació realment interessant. Per a ajudar a l'algoritme de coincidència a ignorar la segona lletra, podem utilitzar una ordre de preprocessador per a la coincidència de les línies, que substitueixi «g» amb «a»: +sed 's/g/a/' + +Amb aquesta ordre, el resultat de la comparació serà: +aa + ba + ca - cg + da - dg + ea - eg + fa + +Internament, l'algoritme de coincidència veu els fitxers després d'executar el preprocessador de coincidència de les línies, però a la pantalla el fitxer no canviarà. (El preprocessador normal també canviarà les dades a la pantalla). + +Bàsics al <command +>sed</command +> +Aquesta secció només presenta algunes característiques molt bàsiques de sed. Per a més informació, vegeu info:/sed o https://www.gnu.org/software/sed/manual/html_mono/sed.html. Trobareu una versió precompilada per a &Windows; a http://unxutils.sourceforge.net. Recordeu que els següents exemples suposen que l'ordre sed es troba en alguna carpeta a la variable d'entorn PATH. Si aquest no és el cas, haureu d'especificar el camí absolut per a l'ordre. +En aquest context, només s'utilitza l'ordre sed com a ordre de substitució: +sed 's/EXPRESSIÓ_REGULAR/SUBSTITUCIÓ/ETIQUETES' + +Abans d'utilitzar una ordre nova dins del &kdiff3;, primer haureu de provar-ho a la consola. Aquí l'ordre echo és d'utilitat. Exemple: +echo abrakadabra | sed 's/a/o/' + -> obrakadabra + +Aquest exemple mostra una ordre de sed molt senzilla que substitueix la primera ocurrència de «a» amb «o». Si voleu substituir-les totes, llavors necessitareu l'etiqueta «g»: +echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + +El símbol «|» és l'ordre de canonada que transfereix la sortida de l'ordre anterior a l'entrada de la següent ordre. Si voleu provar amb un fitxer més llarg, podreu utilitzar l'ordre cat en els sistemes similars a &UNIX; o type en els sistemes similars a &Windows;. L'ordre sed farà la substitució de cada línia. cat nom_fitxer | sed opcions + + + +Exemples per a <command +>sed</command +> emprats al &kdiff3; +Ignorar els altres tipus de comentaris +Actualment, el &kdiff3; només comprèn els comentaris a C/C++. Utilitzant l'opció Ordre del preprocessador de coincidència de les línies: també podreu ignorar altres tipus de comentaris, convertint-los en comentaris a C/C++. +Exemple: per a ignorar els comentaris que comencen amb «#», us agradarà convertir-los a «//». Recordeu que també haureu d'habilitar l'opció Ignora els comentaris de C/C++ (tracta'ls com a espais en blanc) perquè tingui efecte. Una ordre apropiada per a l'Ordre del preprocessador per a la coincidència de les línies: seria: +sed 's/#/\/\//' + +Com que per a sed, el caràcter «/» té un significat especial, cal col·locar el caràcter «\» abans de cada «/» a la cadena de substitució. De vegades es requereix «\» per a afegir o eliminar un significat especial de certs caràcters. Les cometes simples «'» només són importants quan es prova a l'intèrpret d'ordres, ja que en cas contrari intentarà processar alguns caràcters. El &kdiff3; no fa això excepte per a les seqüències d'escapament «\"» i «\\». + +Diferències sense distingir majúscules i minúscules +Utilitzeu la següent Ordre del preprocessador per a la coincidència de les línies: per a convertir tota l'entrada a majúscules: +sed 's/\(.*\)/\U\1/' + +Aquí el «.*» és una expressió regular que coincideix amb qualsevol cadena i en aquest context coincideix amb tots els caràcters de la línia. El «\1» a la cadena de substitució es refereix al text coincident dins el primer parell de «\(» i «\)». La «\U» converteix el text inserit en majúscules. + + +Ignorar les paraules clau del control de versions +El CVS i altres sistemes per al control de versions utilitzen diverses paraules clau per a inserir cadenes generades automàticament (info:/cvs/Keyword substitution). Tots segueixen el patró «$PARAULA_CLAU text generat$». Ara necessitem una ordre del preprocessador per a la coincidència de les línies que només elimini el text generat: +sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + +Aquí el «.*» és una expressió regular que coincideix amb qualsevol cadena i en aquest context coincideix amb tots els caràcters de la línia. El «\1» a la cadena de substitució es refereix al text coincident dins el primer parell de «\(» i «\)». La «\U» converteix el text inserit en majúscules. +Mentre experimenteu amb sed, podríeu arribar a comprendre fins i tot aquestes expressions regulars. Són útils perquè hi ha molts altres programes que també admeten coses similars. + + +Ignorar els números +Ignorar els números en realitat és una opció incorporada. Però com un altre exemple, així és com es veuria com a ordre del preprocessador de coincidència de les línies. +sed 's/[0123456789.-]//g' + +Qualsevol caràcter dins de «[» i «]» serà una coincidència i serà substituït per res. + + +Ignorar certes columnes +De vegades, un text té un format molt estricte i conté columnes que sempre voleu ignorar, mentre que hi ha altres columnes que voldreu conservar per a la seva anàlisi. En el següent exemple, s'ignoren les primeres cinc columnes (caràcters), es conserven les següents deu columnes, després de nou s'ignoren cinc columnes i es conserva la resta de la línia. +sed 's/.....\(..........\).....\(.*\)/\1\2/' + +Cada punt «.» coincidirà amb qualsevol caràcter individual. El «\1» i «\2» a la cadena de substitució es refereixen al text coincident dins del primer i segon parell de «\(» i «\)» denotant el text a conservar. + + +Combinar diverses substitucions +De vegades voldreu aplicar diverses substitucions alhora. Després podreu utilitzar el punt i coma «;» per a separar les unes de les altres. Exemple: +echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + +Emprar <command +>perl</command +> en comptes de <command +>sed</command +> +En comptes de sed, possiblement voldreu utilitzar una mica més com perl. +perl -p -e 's/EXPRESSIÓ_REGULAR/SUBSTITUCIÓ/ETIQUETES + +Però alguns detalls són diferents en perl. Recordeu que on sed necessitava «\(» i «\)» el perl requereix el més simple «(» i «)» sense precedir «\». Exemple: +sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + +Ordre d'execució del preprocessador +En la següent ordre, les dades es canalitzen a través de tots els preprocessadors interns i externs: + +Prepocessador normal, +Preprocessador de coincidència de les línies, +Ignora les majúscules/minúscules (tracta-les com a espais en blanc) (conversió a majúscules), +Detecció dels comentaris a C/C++, +Ignora els números (tracta'ls com a espais en blanc), +Ignora els espais en blanc + +Les dades després del preprocessador normal es conservaran per a la seva visualització i fusió. Les altres operacions només modificaran les dades que vegi l'algoritme de coincidència de les línies. En els rars casos en què utilitzeu un preprocessador normal, cal tenir en compte que el preprocessador de coincidència de les línies veurà la sortida del preprocessador normal com a una entrada. + + +Avís +Les ordres del preprocessador solen ser molt útils, però com amb qualsevol opció que modifiqui els textos o oculti certes diferències automàticament, pot passar per alt certes diferències accidentalment i, en el pitjor dels casos, destruir dades importants. Per aquesta raó, durant una fusió, si s'empra una ordre del preprocessador normal, el &kdiff3; dirà i us demanarà si s'ha d'inhabilitar o no. Però no us avisarà si està activada una opció Ordre del preprocessador per a la coincidència de les línies:. La fusió no es completarà fins que es resolguin tots els conflictes. Si inhabiliteu l'element de menú Vista de les diferènciesMostra els espais en blanc, també seran visibles les diferències que es van eliminar amb l'opció Ordre del preprocessador de coincidència de les línies:. Si el botó Desa roman inhabilitat durant una fusió (a causa que romanen conflictes), podreu habilitar l'element de menú Vista de les diferènciesMostra els espais en blanc. Si no voleu fusionar manualment aquestes diferències menys importants, podreu seleccionar l'element de menú FusionaEscull [A|B|C] a tots els conflictes dels espais en blanc no resolts. + + + + + +Comparació i fusió de carpetes amb el &kdiff3; +Introducció a la comparació i fusió de carpetes +Sovint, els programadors han de modificar molts fitxers en una carpeta per a aconseguir la seva intenció. Per això, el &kdiff3; també permet comparar i fusionar carpetes completes de forma recursiva! Encara que comparar i fusionar carpetes sembla força obvi, hi ha diversos detalls que haureu de conèixer. Per descomptat, el més important és el fet que ara es podran veure afectats molts fitxers per cada operació. Si no teniu còpies de seguretat de totes les dades originals, podria ser molt difícil o fins i tot impossible tornar a l'estat original. De manera que abans de començar una fusió, assegureu-vos que les vostres dades estan segures i que serà possible tornar a l'estat inicial. Si creeu un arxiu o utilitzeu algun sistema per al control de versions -aquesta és la vostra decisió-, fins i tot els programadors i integradors experimentats necessiten de tant en tant les fonts antigues. I teniu en compte que encara que jo (l'autor del &kdiff3;) intento fer-ho el millor possible, no puc garantir que no hi hagi errors. Segons la GPL de &GNU;, NO HI HA CAP GARANTIA per a aquest programa. Així que sigueu humil i teniu-ho sempre present: +
+ Errar és humà, però per a arruïnar realment les coses, necessitareu un ordinador. +
+De manera que això és el que aquest programa pot fer: el &kdiff3;... + + ...llegeix i compara dues o tres carpetes de forma recursiva, + ...té una cura especial en els enllaços simbòlics, + ...permet explorar fitxers amb doble clic del ratolí, + ...per a cada element proposa una operació de fusió, el qual podreu canviar abans d'iniciar la fusió de la carpeta, + ...permet simular la fusió i llista les accions que tindran lloc, sense fer-les realment, + ...permet realment fer la fusió, i permet interactuar quan sigui necessària la interacció manual, + ...permet executar l'operació seleccionada per a tots els elements (tecla F7) o l'element seleccionat (tecla F6), + ...permet continuar la fusió després de la interacció manual amb la tecla F7, + ...de manera opcional crea còpies de seguretat, amb l'extensió .orig, + ... + +
+ +Començar amb la comparació o fusió de les carpetes +Això és molt similar a la fusió i comparació de fitxers individuals. Només haureu d'especificar les carpetes a la línia d'ordres o en el diàleg per a obrir fitxers. +Comparar/Fusionar dues carpetes: +kdiff3 carpeta_1 carpeta_2 + kdiff3 carpeta_1 carpeta_2 -o carpeta_de_destinació + +Si no s'especifica una carpeta de destinació, el &kdiff3; emprarà carpeta_2. + + +Comparar/Fusionar l'arbre de carpetes: +kdiff3 carpeta_1 carpeta_2 carpeta_3 + kdiff3 carpeta_1 carpeta_2 carpeta_3 -o carpeta_de_destinació + +Quan es fusionen 3 carpetes, s'utilitza carpeta_1 com a base per a la fusió. Si no s'especifica cap carpeta de destinació, el &kdiff3; utilitzarà carpeta_3 com la carpeta de destinació per a la fusió. + +Recordeu que només la comparació començarà automàticament, no la fusió. Per això, primer haureu de seleccionar una entrada de menú o la tecla F7. (Més detalls més endavant). + + + +Informació visible en fusionar carpetes +Mentre es llegeixen les carpetes, apareixerà un quadre de missatge informant sobre el progrés. Si interrompeu l'exploració de la carpeta, només es llistaran els fitxers que s'hagin comparat fins llavors. Quan es completa l'exploració de la carpeta, el &kdiff3; mostrarà un quadre de llista amb els resultats restants... + + + +...i els detalls sobre l'element actualment seleccionat a la dreta: + + + + + +La columna Nom +Cada fitxer i carpeta que s'ha trobat durant l'exploració es mostrarà aquí en un arbre. Podreu seleccionar un element fent-hi clic amb el ratolí. Les carpetes estaran plegades de manera predeterminada. Les podreu desplegar i plegar fent clic al signe «+»/«-» o fent doble clic sobre l'element o amb les tecles de cursor &Left;/&Right;. El menú Carpeta també conté dues accions Plega totes les subcarpetes i Desplega totes les subcarpetes amb les quals podreu contraure o expandir totes les carpetes alhora. Si feu doble clic a un element de fitxer, s'iniciarà la comparació dels fitxers i apareixerà la finestra de diferències. +La imatge a la columna Nom reflectirà el tipus de fitxer en la primera carpeta (A). Pot ser una d'aquestes: + + Fitxer normal + Carpeta normal (imatge de carpeta) + Enllaç amb un fitxer (imatge de fitxer amb una fletxa d'enllaç) + Enllaç amb una carpeta (imatge de carpeta amb una fletxa d'enllaç) + +Si el tipus de fitxer és diferent en les altres carpetes, això serà visible en les columnes A/B/C i en la finestra que mostra els detalls sobre l'element seleccionat. Cal tenir en compte que, en aquest cas, no es podrà seleccionar automàticament cap operació de fusió. En iniciar la fusió, l'usuari serà informat dels problemes d'aquest tipus. + + +Les columnes A/B/C i l'esquema de colors +Com es pot veure a la imatge de dalt, els colors vermell, verd, groc i negre s'utilitzen en les columnes A/B/C. + + Negre: aquest element no existeix en aquesta carpeta. + Verd: element més nou. + Groc: més antic que el verd, més nou que el vermell. + Vermell: element més antic. + +Però per als elements que eren idèntics en la comparació, el seu color també serà idèntic fins i tot si l'antiguitat no ho és. Les carpetes es consideraran iguals si tots els elements que contenen són idèntics. Llavors també tindran el mateix color. Però l'antiguitat d'una carpeta no es considerarà pel seu color. La idea d'aquest esquema de coloració el vaig trobar a dirdiff. Els colors s'assemblen als colors d'una fulla que és verda quan és nova, més tard es torna groga i vermella quan és vella. + +La columna Operació +Després de comparar les carpetes, el &kdiff3; també avaluarà una proposta per a una operació de fusió. Això es mostra a la columna Operació. Podreu modificar l'operació fent clic sobre l'operació que voleu canviar. Apareixerà un petit menú emergent que us permetrà seleccionar una operació per a aquest element. (També podreu seleccionar les operacions més necessàries mitjançant el teclat. &Ctrl;1/2/3/4/∇ seleccionarà A/B/C/Fusiona/Suprimeix respectivament, si està disponible). Aquesta operació s'executarà durant la fusió. Quines operacions hi haurà disponibles, dependrà de l'element i del mode de fusió en què esteu. El mode de fusió serà un de + + Fusionar tres carpetes (A es tracta com la base més antiga d'ambdues). + Fusionar dues carpetes. + Mode sincronitza dues carpetes (s'activa mitjançant l'opció Sincronitza les carpetes). + +En la fusió de tres carpetes, la proposta d'operació serà: Si per a un element... + + ...les tres carpetes són iguals: copiar des de C + ...A i C són iguals però B no ho és: copiar des de B (o si B no existeix, suprimir la destinació si existeix) + ...A i B són iguals però C no ho és: copiar des de C (o si C no existeix, suprimir la destinació si existeix) + ...B i C són iguals però A no ho és: copiar des de C (o si C no existeix, suprimir la destinació si existeix) + ...només existeix A: suprimir la destinació (si existeix) + ...només existeix B: copiar des de B + ...només existeix C: copiar des de C + ...A, B i C no són iguals: fusionar + ...A, B i C no tenen el mateix tipus de fitxer (&pex;, A és una carpeta, B és un fitxer): «Error: Tipus de fitxer en conflicte». Si bé aquests elements existeixen, la fusió de carpetes no pot començar. + +En la fusió de dues carpetes, la proposta d'operació serà: Si per a un element... + + ...ambdues carpetes són iguals: copiar des de B + ...A existeix, però no B: copiar des d'A + ...B existeix, però no A: copiar des de B + ...A i B existeixen però no són iguals: fusionar + ...A i B no tenen el mateix tipus de fitxer (&pex;, A és una carpeta, B és un fitxer): «Error: Tipus de fitxer en conflicte». Si bé aquests elements existeixen, la fusió de carpetes no podrà començar. + +El mode de sincronització estarà actiu si només s'han especificat dues carpetes i cap destinació explícita, i si l'opció Sincronitza les carpetes està activa. Després, el &kdiff3; seleccionarà una operació predeterminada perquè les dues carpetes siguin iguals després. Si per a un element... + + ...ambdues carpetes són iguals: no es farà res. + ...A existeix, però no B: copiar A a B + ...B existeix, però no A: copiar B a A + ...A i B existeixen, però no són iguals: fusionar i emmagatzemar el resultat en ambdues carpetes. (Per a l'usuari, el nom visible del fitxer desat és B, però després el &kdiff3; també copiarà B a A). + ...A i B no tenen el mateix tipus de fitxer (&pex;, A és una carpeta, B és un fitxer): «Error: Tipus de fitxer en conflicte». Si bé aquests elements existeixen, la fusió de carpetes no podrà començar. + +Quan es fusionen dues carpetes i se selecciona l'opció Copia el més nou en comptes de fusionar-los, el &kdiff3; examinarà les dates i proposarà triar el fitxer més nou. Si els fitxers no són iguals però tenen dates iguals, llavors l'operació contindrà «Error: les dates són iguals però els fitxers no». Si bé aquests elements existeixen, la fusió de carpetes no podrà començar. + + +La columna Estat +Durant la fusió, es processarà un fitxer rere l'altre. La columna d'estat mostrarà Fet per als elements on l'operació de fusió ha tingut èxit i altres textos si succeeix alguna cosa inesperada. Quan es completa una fusió, haureu de realitzar una última comprovació per a veure si l'estat de tots els elements és acceptable. + + +Columnes d'estadístiques +Quan el mode de comparació de fitxers Anàlisi completa està habilitat en les opcions, el &kdiff3; mostrarà columnes addicionals que contenen el nombre de conflictes no resolts, resolts, no blanc i espai en blanc. (La columna Resolt només es mostrarà en comparar o fusionar tres carpetes). + + +Seleccionar els fitxers llistats +Diverses opcions influeixen en els fitxers que es llisten aquí. Alguns són accessibles en el diàleg de configuració. El menú Carpeta conté les entrades: + Mostra els fitxers idèntics: els fitxers que s'han detectat com a iguals en totes les carpetes de l'entrada. + Mostra els fitxers diferents: els fitxers que existeixen a dues o més carpetes però que no són iguals. + Mostra els fitxers que només són a A: els fitxers que només existeixen a A, però no a B o C. + Mostra els fitxers que només són a B: els fitxers que només existeixen a B, però no a A o C. + Mostra els fitxers que només són a C: els fitxers que només existeixen a C, però no a A o B. + +Activeu només les opcions Mostra per als elements que voleu llistar. Si, per exemple, només voleu llistar tots els elements que hi ha a A o a B però no en ambdós, haureu d'activar Mostra els fitxers que només són a A i Mostra els fitxers que només són a B i desactivar totes les altres (Mostra els fitxers idèntics, Mostra els fitxers diferents, Mostra els fitxers que només són a C). La llista s'actualitzarà immediatament per a reflectir el canvi. Aquestes opcions també s'apliquen a les carpetes amb una excepció: inhabilitant Mostra els fitxers diferents no ocultarà cap carpeta sencera. Això només funcionarà per a dins dels fitxers. Cal tenir en compte que d'aquestes, només l'opció Mostra els fitxers idèntics és persistent. Les altres estaran habilitades en iniciar el &kdiff3;. + + + + + +Fer una fusió de la carpeta A +Podreu fusionar l'element seleccionat (fitxer o carpeta) o tots els elements. Quan hàgiu realitzat totes les vostres eleccions d'operació (també en totes les subcarpetes), llavors podreu iniciar la fusió. Recordeu que si no heu especificat explícitament una carpeta de destinació, llavors la destinació serà C en el mode de tres carpetes, B en el mode de fusió de dues carpetes, i en el mode de sincronització serà A o/i B. Si heu especificat una carpeta de destinació, comproveu també que tots els elements que haurien d'estar a la sortida estiguin a l'arbre. Hi ha algunes opcions que fan que certs elements siguin omesos en la comparació i fusió de carpetes. Marqueu aquestes opcions per a evitar sorpreses desagradables: + + Carpetes recursives: si està desactivada, no es trobaran els elements a les subcarpetes. + Patró/Negatiu del patró: inclou/exclou els elements que coincideixen + Excloure els fitxers ocults + Les opcions «Mostra» (Mostra els fitxers idèntics/diferents, Mostra els fitxers que només són a A/B/C) + +Si canvieu la configuració per a llistar més fitxers, haureu de tornar a escanejar a través de l'element de menú CarpetaTorna a explorar. (La raó d'això és que per a una velocitat de comparació més ràpida, el &kdiff3; ometrà la comparació dels fitxers suprimits seguint aquest criteri). Si heu canviat els vostres patrons de fitxers i carpetes per a excloure fitxers, la llista de fitxers s'actualitzarà immediatament en tancar el diàleg d'opcions. Recordeu que quan escriviu en una carpeta completament nova, generalment també voldreu copiar els fitxers idèntics. En aquest cas, habiliteu l'opció Mostra els fitxers idèntics. Si la carpeta de destinació és una de les entrades, llavors això no caldrà perquè el fitxer ja hi és. Si fins ara esteu satisfet, la resta serà fàcil. Per a fusionar tots els elements: Seleccioneu Comença/Continua la fusió de les carpetes al menú Carpeta o premeu F7 (la qual és la drecera predeterminada). Per a només fusionar l'element actual: seleccioneu Executa l'operació per a l'element actual o premeu F6. Si a causa de tipus de fitxer en conflicte encara hi ha alguns elements amb operacions no vàlides, apareixerà un quadre de missatge i s'indicaran aquests elements, de manera que pugueu seleccionar una operació vàlida per a l'element. Si fusioneu tots els elements, apareixerà un diàleg que us donarà les opcions Fes-ho, Simula-ho i Cancel·la. + + Seleccioneu Simula-ho si voleu veure el que es faria sense fer-ho en realitat. Es mostrarà una llista detallada de totes les operacions. + En cas contrari, seleccioneu Fes-ho per a començar en realitat a fusionar. + +Llavors el &kdiff3; executarà l'operació especificada per a tots els elements. Si es requereix interacció manual (fusió d'un sol fitxer), s'obrirà una finestra de fusió (vegeu la captura de pantalla gran). En acabar de fusionar manualment un fitxer, torneu a seleccionar Comença/Continua la fusió de les carpetes o la tecla F7. Si encara no l'heu desat, un diàleg us demanarà que ho feu. Llavors el &kdiff3; continuarà amb el següent element. Quan el &kdiff3; troba un error, us ho indicarà i mostrarà la informació detallada sobre l'estat. A la part inferior d'aquesta llista, hi haurà alguns missatges d'error que us ajudaran a comprendre la causa del problema. Quan continueu fusionant (tecla F7), el &kdiff3; us donarà l'opció de tornar a intentar o ometre l'element que ha causat el problema. Això vol dir que abans de continuar podreu triar una altra operació o resoldre el problema per altres mitjans. Quan es completi la fusió, el &kdiff3; us informarà mitjançant un quadre de missatge. Si alguns elements s'han fusionat individualment abans d'executar la fusió de carpetes, el &kdiff3; us ho recordarà (mentre continueu amb aquesta sessió de fusió), i no els tornarà a fusionar més tard quan s'executi la fusió de tots els elements. Fins i tot quan s'ha omès la fusió o no s'ha desat res, aquests elements comptaran com a completats. Només quan canvieu l'operació de fusió, l'estat Fet de l'element serà eliminat i podreu fusionar de nou. + + +Opcions per a comparar i fusionar carpetes +Les preferències del &kdiff3; (menú ArranjamentConfigura el &kdiff3;...) té una secció anomenada Fusió de carpetes amb aquestes opcions: + + + Carpetes recursivesSeleccioneu si voleu cercar a les carpetes de forma recursiva. + Patró/ons de fitxer:Només es col·locaran a l'arbre els fitxers que coincideixin aquí amb qualsevol patró. Podreu especificar més d'un patró utilitzant el punt i coma «;» com a separador. Els comodins vàlids: «*» i «?». (&pex;, «*.cpp;*.h»). El valor predeterminat és «*». Aquest patró no s'utilitzarà en les carpetes. + Negatiu del/s patró/ons dels fitxers:Els fitxers que coincideixin amb aquest patró s'exclouran de l'arbre. Podreu especificar més d'un patró utilitzant el punt i coma «;» com a separador. Els comodins vàlids: «*» i «?». El valor predeterminat és «*.orig;*.o;*.obj». + Negatiu del/s patró/ons de les carpetes:Les carpetes que coincideixin amb aquest patró s'exclouran de l'arbre. Podreu especificar més d'un patró utilitzant el punt i coma «;» com a separador. Els comodins vàlids: «*» i «?» El valor predeterminat és «CVS;deps;.svn». + Usa el fitxer «Ignore»S'ignoraran els fitxers i carpetes que també serien ignorats pel vostre control del codi font. Molts fitxers generats automàticament són ignorants emprar la llista per a ignorar. El gran avantatge és que pot ser una carpeta específica a través d'un fitxer local. (Per a més detalls, vegeu la documentació per al control del codi font). + Cerca als fitxers i carpetes ocultsEn alguns sistemes de fitxers, els fitxers tenen un atribut «Ocult». En altres sistemes, un nom de fitxer que comença amb un punt «.» fa que resti ocult. Aquesta opció permet decidir si voleu incloure o no aquests fitxers en l'arbre. El valor predeterminat és activat. + Segueix els enllaços de fitxerPer als enllaços a fitxers: quan està inhabilitada, es compararan els enllaços simbòlics. Quan està habilitada, es compararan els fitxers que hi ha al darrere dels enllaços. El valor predeterminat és desactivat. + Segueix els enllaços de carpetaPer als enllaços a carpetes: quan està inhabilitada, es compararan els enllaços simbòlics. Quan està habilitada, l'enllaç es tractarà com una carpeta i s'explorarà de forma recursiva. (Recordeu que el programa no comprovarà si l'enllaç és «recursiu». Llavors, per exemple, una carpeta que conté un enllaç a una carpeta causaria un bucle infinit, i després d'un temps quan la pila es desbordi o s'esgoti tota la memòria, es bloquejarà el programa). El valor predeterminat és desactivat. + La comparació dels noms de fitxer distingeix majúscules i minúsculesDe manera predeterminada és fals al &Windows;, cert per als altres sistemes operatius. + Mode de comparació dels fitxers: + + Comparació binàriaAquest és el mode de comparació de fitxers predeterminat. + Anàlisi completaFa una anàlisi completa de cada fitxer i mostra les columnes d'informació estadística. (Nombre de conflictes Resolt, No resolt, No blanc i Blanc). L'anàlisi completa és més lenta que una anàlisi binària senzilla, i molt més lenta quan s'utilitza en fitxers que no contenen text. (Especifiqueu el negatiu dels patrons apropiats de fitxer). + Confia en la mida i la data de modificació (insegur)Si compareu carpetes grans en una xarxa lenta, podria ser més ràpid comparar només les dates de modificació i la longitud del fitxer. Però aquesta millora en la velocitat ve amb el preu d'una petita incertesa. Utilitzeu aquesta opció amb cura. El valor predeterminat és desactivat. + Confia en la mida (insegur)Similar a confiar en la data de modificació. No succeeix una comparació real. Dos fitxers es consideraran iguals si les seves mides de fitxer són iguals. Això és útil quan l'operació de còpia de fitxers no conserva la data de modificació. Utilitzeu aquesta opció amb cura. El valor predeterminat és desactivat. + + + Sincronitza les carpetesActiva el mode de sincronització quan es comparen dues carpetes i no s'ha especificat cap carpeta de destinació explícita. En aquest mode, les operacions proposades s'escolliran de manera que ambdues carpetes font siguin iguals després. A més, el resultat de la fusió s'escriurà en ambdues carpetes. El valor predeterminat és desactivat. + Copia el més nou en comptes de fusionar-los (insegur)En lloc de fusionar l'operació proposada, es copiarà la font més nova si han succeït canvis. (Considerat insegur, perquè implica que sabeu que l'altre fitxer no ha estat també editat. Comproveu-ho per a assegurar-vos en tots els casos). El valor predeterminat és desactivat. + Fitxers de còpia de seguretat (.orig)Si se substitueix un fitxer o carpeta completa per una altra o se suprimeix, la versió original canviarà de nom amb l'extensió .orig. Si ja existeix un fitxer antic de còpia de seguretat amb aquesta extensió, se suprimirà sense còpia de seguretat. Això també afectarà la fusió normal de fitxers individuals, no només en el mode fusió de carpetes. El valor predeterminat és activat. + + + +Altres funcions a la finestra de fusió de carpetes +Mode de pantalla dividida/completa +En general, la vista de llista per a la fusió de carpetes romandrà visible mentre es compara o fusiona un sol fitxer. Amb el ratolí, podreu moure la barra divisòria que separa la llista de fitxers de les finestres de diferències de text. Si no voleu això, podreu inhabilitar l'element de menú CarpetaVista de pantalla dividida en text i carpetes. Després podreu utilitzar l'element de menú CarpetaCommuta la vista per a canviar entre la llista de fitxers i la vista de diferències de text que després ocuparan la pantalla completa. + +Comparar o fusionar un sol fitxer +Probablement preferireu un doble clic del ratolí en un fitxer per a comparar-lo. No obstant això, també hi ha una entrada al menú Carpeta. També podreu fusionar directament un sol fitxer seleccionant-lo i triant l'element de menú FusionaFusiona el fitxer actual. En desar el resultat, l'estat s'establirà com a fet i el fitxer no es fusionarà de nou si s'inicia una fusió de carpeta. Fixeu-vos, que aquesta informació d'estat es perdrà quan torneu a executar una exploració de la carpeta: CarpetaTorna a explorar + +Comparar o fusionar fitxers amb noms diferents +A vegades necessitareu comparar o fusionar fitxers amb noms diferents (&pex;, el fitxer actual i la còpia de seguretat a la mateixa carpeta). Seleccioneu el fitxer exacte fent clic a la icona a la columna A, B o C. El primer fitxer seleccionat s'haurà de marcar amb una A, el segon i el tercer amb B i C, independentment de la columna en què es trobin. D'aquesta manera només es podran triar fins a tres fitxers. Continueu triant l'element de menú CarpetaCompara els fitxers seleccionats explícitament o CarpetaFusiona els fitxers seleccionats explícitament. Per a la vostra comoditat, aquestes entrades de menú també apareixeran com un menú contextual quan feu clic dret en l'últim fitxer seleccionat. La comparació o fusió d'un fitxer succeirà a la mateixa finestra. Si s'utilitza aquest mètode per a les carpetes, s'obrirà una finestra nova. + +
+ + +Temes diversos + +Transparència de xarxa a través del KIO +Esclaus KIO +La biblioteca KIO dels &frameworks; admet la transparència de xarxa mitjançant els esclaus KIO. El &kdiff3; la farà servir per a llegir els fitxers d'entrada i per a explorar les carpetes. Això vol dir que podreu especificar fitxers i carpetes en recursos locals i remots mitjançant els &URL;. Exemple: +kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp + kdiff3 tar:/home/hacker/arxiu.tar.gz/carpeta ./carpeta + + +La primera línia compara un fitxer local amb un fitxer en un servidor &FTP;. La segona línia compara una carpeta dins d'un arxiu comprimit amb una carpeta local. Altres esclaus KIO que també són interessants: + +Fitxers des del WWW (http:), +Fitxers des de l'&FTP; (ftp:), +Transferència de fitxers encriptats (fish:, sftp:), +Recursos de &Windows; (smb:), +Fitxers locals (file:), + +Altres coses que també són possibles, però probablement menys útils: + +Pàgines «man» (man:), +Pàgines «info» (info:), + + + +Com escriure els &URL; +Un &URL; té una sintaxi diferent en comparació amb els camins dels fitxers i carpetes locals. S'han de considerar algunes coses: + +Un camí pot ser relatiu i pot contenir «.» o «..». Això no és possible per als &URL; que sempre són absoluts. Els caràcters especials s'han d'escriure amb «escapament». («#» -> «%23», espai -> «%20», &etc;) Per exemple, un fitxer amb el nom «/#foo#» tindria l'&URL; «file:/%23foo%23». Quan els &URL; no funcionin com s'espera, primer intenteu obrir-los al &konqueror;. + + + + +Capacitats dels esclaus KIO +La transparència de xarxa té un inconvenient: no tots els recursos tenen les mateixes capacitats. De vegades això es deu al sistema de fitxers del servidor, de vegades a causa del protocol. Aquí hi ha una breu llista de les restriccions: + +De vegades no s'admeten els enllaços. O no hi ha forma de distingir si un enllaç apunta a un fitxer o carpeta. Sempre assumint un fitxer. (ftp:, sftp:). No sempre es pot determinar la mida del fitxer. Suport limitat per als permisos. No hi ha possibilitat de modificar els permisos o el temps de modificació, de manera que els permisos o el temps d'una còpia diferiran de l'original. (Vegeu l'opció Confia en la mida (insegur)). (Per a modificar els permisos o el temps de modificació només és possible per als fitxers locals). + + + + + +Emprar el &kdiff3; com a una KPart +El &kdiff3; és una KPart. Actualment implementa la interfície «KParts::ReadOnlyPart». El seu ús principal és com a visor de diferències en el &kdevelop;. El &kdevelop; sempre inicia primer el visor de diferències intern. Per a invocar el &kdiff3;, premeu el &BDR; a la finestra de la vista de diferències i seleccioneu Mostra a la part del &kdiff3; des del menú contextual. El &kdiff3; normalment requereix dos fitxers complets com a entrada. Quan s'utilitza com a part, el &kdiff3; assumirà que el fitxer d'entrada és un fitxer de pedaç en el format unificat. Llavors el &kdiff3; recuperarà els noms de fitxer originals des del fitxer de pedaç. Almenys un dels dos fitxers haurà d'estar disponible. Llavors el &kdiff3; invocarà l'ordre patch per a recrear el segon fitxer. En el &dolphin; podreu seleccionar un fitxer de pedaç i seleccionar l'element Vista prèvia aPart del &kdiff3; des del menú contextual. Cal tenir en compte que això no funcionarà si cap dels fitxers originals està disponible, i no és fiable si els fitxers originals han canviat des que es va generar el fitxer de pedaç. Quan s'executa com a part, el &kdiff3; només proporciona una diferència de dos fitxers amb una barra d'eines i un menú molt petits. De manera que la fusió o la comparació de carpetes no s'admeten. + + + +Usar el &kdiff3; com a una eina de «diff» i fusió de &git; +Es pot emprar el &kdiff3; com a una eina de «diff» i fusió de &git;. +Simplement afegiu les següents línies al vostre fitxer gitconfig. +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <camí cap al binari kdiff3 al vostre sistema> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <camí cap al binari kdiff3 al vostre sistema> + +Després, per a veure les diferències entre dos «commits», utilitzeu git difftool primera_suma segona_suma --tool=kdiff3 --cc algun_fitxer_a_larbre_de_Git +Per a fusionar una branca amb el &kdiff3;, utilitzeu git merge nom_branca && git mergetool --tool=kdiff3 +Una vegada resolts els conflictes de fusió de la forma habitual, n'hi haurà prou amb confirmar els canvis per a fer la tasca. + + + + +Preguntes i respostes&reporting.bugs; &updating.documentation; + +Per què s'anomena «&kdiff3;»? Les eines anomenades KDiff i KDiff2 (ara s'anomenen &kompare;) ja existeixen. A més, el &kdiff3; hauria de suggerir que pot fusionar com l'eina diff3 a la col·lecció «Diff-Tool». + +Per què el vaig alliberar sota la GPL? Estic emprant programes GPL des de fa molt de temps i vaig aprendre molt en donar una ullada a moltes de les fonts. Per tant, aquest és el meu «Gràcies» a tots els programadors que també ho van fer o que faran el mateix. + +Manquen alguns botons i funcions. Què passa? Heu compilat des del codi font però probablement no heu especificat el prefix correcte per a la instal·lació. De manera predeterminada, el cmake vol instal·lar a /usr/local però després no pot trobar el fitxer de recursos de la interfície d'usuari (&ead;, kdiff3ui.rc). El fitxer README conté més informació sobre el prefix correcte. + +Sovint, les línies que són similars però no idèntiques apareixen una al costat de l'altra, però de vegades no. Per què? Les línies on només la quantitat de caràcters d'espai en blanc és diferent, es tractaran com a «iguals» al començament, mentre que només un caràcter no blanc diferent farà que les línies siguin «diferents». Si apareixen línies similars una al costat de l'altra, això en realitat és una coincidència, però afortunadament sovint és així. Vegeu també l'ajuda del manual de «diff». + +Per què s'han de resoldre tots els conflictes abans que es pugui desar el resultat de la fusió? Per a cada secció igual o diferent, l'editor a la finestra de resultats de la fusió recordarà on comença o on acaba. Això és necessari perquè els conflictes es puguin resoldre manualment simplement seleccionant el botó de la font (A, B o C). Aquesta informació es perdrà mentre es desa com a text i és massa esforç crear un format de fitxer especial que admeti desar i restaurar tota la informació necessària. + +Com puc sincronitzar les vistes de les diferències i la fusió, de manera que totes les vistes mostrin la mateixa posició al text? Feu clic a la columna del resum a l'esquerra del text. (Vegeu també aquí). + +Per què l'editor a la finestra de resultats de la fusió no té l'opció «Desfés»? Això seria massa esforç fins ara. Sempre podreu restaurar una versió des d'una font (A, B o C) fent clic al botó corresponent. De totes maneres, per a una gran edició, es recomana emprar un altre editor. + +Quan elimino una mica de text, de sobte apareix «<La línia no és codi>» i no es pot suprimir. Què vol dir i com es pot treure? Per a cada secció igual o diferent, l'editor a la finestra de resultats de la fusió recordarà on comença o on acaba. «<La línia no és codi>» vol dir que no queda res en una secció, ni tan sols un caràcter de línia nova. Això pot succeir mentre es fusiona automàticament o s'edita. Això no és cap problema, ja que aquest suggeriment no apareixerà en el fitxer desat. Si voleu recuperar la font original, només haureu de seleccionar la secció (feu clic a la columna del resum a l'esquerra) i després feu clic al botó de la font amb el contingut necessari (A/B o C). + +Per què el &kdiff3; no admet el ressaltat de la sintaxi? El &kdiff3; ja utilitza molts colors per a ressaltar les diferències. Més ressaltat seria confús. Per a això, empreu un altre editor. + +Puc emprar el &kdiff3; per a comparar fitxers OpenOffice.org, &Microsoft; Word, &Microsoft; Excel, &PDF;, &etc;? Encara que el &kdiff3; analitzarà qualsevol classe de fitxer, el resultat probablement no serà molt satisfactori. El &kdiff3; es va crear per a comparar fitxers de text pur. L'OpenOffice.org, el &Microsoft; Word, el &Microsoft; Excel, &etc; emmagatzemen molta més informació en els fitxers (sobre els tipus de lletra, imatges, pàgines, colors, &etc;) que el &kdiff3; no coneix. Per tant, el &kdiff3; mostrarà el contingut del fitxer interpretat com a text pur, però això podria ser il·legible o almenys es veurà molt estrany. Com la majoria dels programes avui en dia emmagatzemen el seu contingut en el format &XML;, és possible que pugueu llegir-lo com a text pur. Llavors, si el canvi només ha estat petit, el &kdiff3; encara podria ajudar-vos. La millor solució si només voleu comparar el text (sense objectes incrustats com les imatges) és utilitzar els elements de menú EditaSelecciona-ho tot i EditaCopia en el vostre programa per a copiar el text interessant en el porta-retalls i després en el &kdiff3; enganxar el text en qualsevol finestra d'entrada de les diferències. (Vegeu també Seleccionar, copiar i enganxar). + +On està l'opció de carpetes Llista només les diferències en els espais? Ara hi ha diverses opcions «Mostra» al menú Carpeta. Inhabilitant Mostra els fitxers idèntics aconseguireu el que solíeu fer habilitant Llista només les diferències en els espais. + +Com puc fer una gran selecció a la finestra d'entrada de les diferències? El desplaçament triga tant temps? Inicieu la selecció com de costum (feu clic i manteniu premut el &BER;). Llavors empreu les tecles de navegació (&pex;, &PgUp;, &PgDn;) mentre manteniu premut el &BER;. (Vegeu també Seleccionar, copiar i enganxar). + +Aquí hi ha molta informació, però la meva pregunta encara no s'ha respost. Si us plau, envieu-me la vostra pregunta. Agraeixo cada comentari. + + + + + + +Crèdits i llicència + +&kdiff3;: Eina per a la comparació i fusió de fitxers i carpetes +Copyright del programa 2002-2007 Joachim Eibl joachim.eibl at gmx.de +Diverses idees genials i informes d'errors han vingut de col·legues i molta gent a la Wild Wild Web. Gràcies a vosaltres! + +Copyright de la documentació © 2002-2007 Joachim Eibl joachim.eibl at gmx.de + +Copyright de la documentació © 2017-2019 Michael Reeves reeves.87 at gmail.com + +Traductor de la documentació: &credits.Antoni.Bella; &underFDL; &underGPL; + +&documentation.index; + + + diff --git a/po/ca/docs/kdiff3/man-kdiff3.1.docbook b/po/ca/docs/kdiff3/man-kdiff3.1.docbook new file mode 100644 index 0000000..743db29 --- /dev/null +++ b/po/ca/docs/kdiff3/man-kdiff3.1.docbook @@ -0,0 +1,451 @@ + + +]> + + + +Manual d'usuari del KDiff3 +BurkhardLueck Pàgina de manual del KDiff3. &Burkhard.Lueck.mail; +22 de febrer de 2019 +kdiff3 1.9 + + + +kdiff3 +1 + + + +kdiff3 +Eina per a comparar i fusionar fitxers i carpetes + + + +kdiff3 file fitxer fitxer àlies_1 àlies_2 àlies_3 àlies cadena fitxer + + + +Descripció +Compara dos o tres fitxers o carpetes des de l'entrada. + + + + +Opcions + + + +Ignorat. (Definit per l'usuari). + + + + +Ignorat. (Definit per l'usuari). + + + + +Ignorat. (Definit per l'usuari). + + + + +Ignorat. (Definit per l'usuari). + + + + +Fusiona l'entrada. + + + + fitxer +Fitxer base explícit. Per compatibilitat amb certes eines. + + + + fitxer +Fitxer de sortida. Implica -m. &pex;: -o fitxernou.txt + + + + fitxer +Fitxer de sortida, un altre cop. (Per compatibilitat amb certes eines). + + + + +Sense IGU si tots els conflictes es poden resoldre automàticament. (Cal fitxer). + + + + +Ignora --auto i mostra sempre la IGU. + + + + àlies_1 +Reemplaçament del nom visible pel fitxer de sortida 1 (base). + + + + àlies_2 +Reemplaçament del nom visible pel fitxer de sortida 2. + + + + àlies_3 +Reemplaçament del nom visible pel fitxer de sortida 3. + + + + àlies +Reemplaçament del nom visible alternatiu. Proporcioneu-lo per a cada sortida. + + + + cadena +Sobreescriu l'opció de la configuració. Useu-ho per a cada opció. &pex;: AutoAdvance=1. + + + + +Mostra una llista de les opcions de configuració i els valors actuals. + + + + fitxer +Usa un fitxer de configuració diferent. + + + + +Fitxer 1 a obrir (base, si no s'especifica via ). + + + + +Fitxer 2 a obrir. + + + + +Fitxer 3 a obrir. + + + + + + + +Vegeu també + +Hi ha disponible documentació d'usuari més detallada des de help:/kdiff3 (podeu emprar aquest &URL; al &konqueror; o bé executar khelpcenter help:/kdiff3). +kf5options(7) +qt5options(7) + + + + +Autors +Aquesta pàgina de manual ha estat preparada per en &Burkhard.Lueck; &Burkhard.Lueck.mail;. + + + diff --git a/po/ca/docs/kdiff3/open_dialog.png b/po/ca/docs/kdiff3/open_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..10a8c6cb6ebbab5606bd2a6eafb7d4216d81558d GIT binary patch literal 27189 zcmdRV^;cA1^eBp;w2}%^A~`e+DS~tf3d{flh)B)Q-6ahYBHazbFyzoBLw64)-3;9+ zkI!4{t@q3KANbz0?z-#lz0W;6&%Jk_eZoGeDG=dP<6~iA5h*FkYG7euBe1X@Wj@1x zfCPX$zCB#<>=bn!v9L%&|2rR1_T&dYP+@&i)sj=NQ+>eyuRG!rl7Pa(vLCg`$;l56 zk8W>o4-XF|N_P&9jubv=Z|`6*yL&sB-NU2fqvMk{REL(K`ToJ7x~|dQ{sDS=`m>&~ z!Y3Ui4c+kxw3@b|3P@i`Q%@EAWp{6XeRJ#d?Ckpbx~jScQChaOz0==6p!vm2!@%^j zzRAMU^3Bb4Oe}l1W>ae`0#UlMw!XNuvb6jFz%a3}o}QkywxLc=Pb-ntIg7`m z;}eIwgO^uVw^vIS7Z?4zhvgNOm3x;fS2u%~w|{pJ?U377Yw)1Pt@mHj%DUH&I)b$l zCx4EgNF#QRkB>9HNxC$h&i$Q_{>;k@lxXpj7jv#bZXUj`#B_#y+CSJin9ubK2tKLz zyxeb*4?s<(e&ZH)l>M`BEaj*gFKR9WqX<|Jg#m0L|{OB<*)f-+M!slf46g0H>VjLPQ!mqew+1^U1NeL(bAz!pr zoE^-pjV#>1`-BEXq!}v-YJE%CKP}RslahFYg=H3{B>O?jZFV>9qwSnLU5I5Z%$12b z%0N5nbwBuRek6~?Ts=7;>m!-U=Qa7bII%B1YD_ZE2(^d<8G0n9vEH9B?aI|+-98xu zDt!NebDlH4-~{3PY26_3+CfC%t!cB464yQ5+Zxr`V3D=eMc*$y>hB-@PXU~JgoCw7 z!iJC45tNUWMsI1)fhB^C&N+J|g55`aTJ!J8pQ}}p0?yYsU#)Bx<6Bx zKk{haoU(xpcZobK~7vtN7SyFMQ*Lv=e4 zA4S4r1|9fIPyez)4ogGOjhn|KKUiUOm3NSYoWV`+4hX0?I*gU%;@@$GFV1cdU~u+( z=Zu{7d78N`$T%QKg4O`rltLe*b#`(Jz$&1ZG`|ZxJ313|+T($1gXFZ*B<&We<0IBl zYSL2-y3E?%pfkzPek@g{yY#bX7!0Pa;XD>(51iJzZ@+o%w~boVr#F@}RR26>q<_Xo zVdL+JK}1)yUy7+!;`S6b>`(v?{Wh>fFofA9(PgY17})gAsZKro3+V10k;q?NtO7qN zZ#iQMqvSH>17{OG@7PJ__6ctR!AsvcEd~HDW$nHJL~}l4>p@urC?rHKys8n`Qx;tKbBKhS^@6x@CG@@|5!G% zA}S8>Ha)YSd@%{q5~-oUD!`L;EUNNB@f+q_Oiwy@Ky)gABDynaM6U7C%rgZZr-azN zk#1|ICMA8?F=!{buS;QVBRUt;vmrCF82JSG*r+}gf&Er zipP8zDy~%tXq|>1IFpgI{tQ-7T=C3{*_3CTu za&VqF$839yB7$iR0vaDgnpFT#fsS1}@IkDftyORYn6Omo{ab3P)%qZ)QuY>Hj94YY zr}E2llXOSZbP{X+7pq5Z{?Bvsp3%@?A}}1@@`NA?M zrKR5%&!n?TWo9`h+I%V@66iHoU93M!UWsYuxgT2^u89OAzrkyXT}%!12|s|baL0gx zt!x--eS&B+KqNT2#8JDnyyB}yB&$6o*2_>+OS@^vkF7#DMQQuo&R+F#FAWI&$%Loz zDVE413(KBdxL{=Nxqb-kb1>$s9vYzkfTYLbeHQb4DxRu61L78HWYh_6Wn>X^t@?9a z;k-syXiOprSfrHJL7A>9coKAqMN_{AIN%xU;47GfhRVVhzdk z3fdaD!YQhg$^qo<{s@4qws~F{x5W<4gV$NidooS7RiW1+0hT%gXphbk^iI470y3=i z6=PyOZ)xICzc1rp56Y~a**NFB`UGFEX_Uwv_kQzx#(I;Vhp62vWe(2hhMikIS002R z{wIS-&{+GV0*vjmu$X|%R|7e>lu_~X?_Fmm&wf#q=1%WWqP&bc(r6K<#G>%=22$c~ z!6BEu%et>%jzQ(zv9~kD-|;?J4+_#-LN21@4ZJ2sA$qg>Kb*wIy?&`(^vH8vlw-U+ zF^T@!qt>`r^$T|vPr0_DORI+CYYxngC~W7P8kntr^QnKlkr6XkZ`3f#0bm+t$3--_ zO5#v5vtmrMeIZFYNJ!-`C{f|xi)1*ECQ>^8R}ne>;D!ycxv%ty)x5-zMFJuPjJByQ zLO{gTTZ*gTOmi)^Dn*+#4QA;Pl`U23=coHk1353e*%JFt$5$65whvyxg!FpQQ5Ke# zg_E-}P7;c94YQR6B$uT`7JyM8xdSSG3RQ{_$erUT6HTkmounfvsI)0f6s@<&hY1Oo zb(N%=nF?#;lI6sf<~v{Kc+Oon=yKK8^sT#OG?i-ihM?81N4~P=$4p(}^+{H}H}|~I zgLW`Pv>VGTNT+k^A&P}ktK}BFIvPsMDtb&l(jOUMQf=zE#g;kBB;RrAr5AxM;9MAG z5qFu&>JMy!p~XR7bTw*YXz7iw!`0Ol@adGjm(5I=lyMJNi}TJx5W(E(iOWUZ*Q^%- zvo3IiyU?```xant%N!GF;$|8Y1W4_yXm@tf>tsglpGLk$$fDUI(Q6yW9x=Hf0cX+@ zoT>!AL1_@cAMXRl@?8M6`)IQ@@V42dq8h|mbF%isBi`oClzhQZi+k&xV=jm#wfKtj zZe}66;KO+?#T_iwM^CpCZZ(n4l_$MHLo%s+`SYNmr71aYnY!93zCB)jWk6A4sx2df zWyXTXm^2qio$qYtAnK6bXfeS-^rPUcOhdqKhgBwQ8Y1|`$y%>}ev@_*?62$EA~7ZQ z56)z11E2jsa9<Ik)B{s5Ao>s>>B?MfZb-*;Pz1+jpW-zpGaxR%9c zZ;MB@*3Ndi+D**dzs_$pIyW;6PT?~eFNmf?9HdT=kc^L=Im7CsuhI$x0yMJ)L~c_{ z<$sqpQU3eIP1W+Il#;F+tx}0NZx(KvQpPMPrp-Zw@Z&DbmKSaB|DEs634fdxW2Dom zp%ieBERAx5Qm+xrpbL3ij=8oQW{uN-C)zoWjZD6vK+g{1y6*{HPP%oJ25n2lQj~TS ziO!%^m}dGmYy}Y%*L_4_Nc~9%8Gbm!BL!0LH)f+)Y$KGb7FHvz4^0Sr=W6)sU2C%6*M-@H;gCB zw)H;u+rL6-J~}Krv|GXg-2qh`;fJZloF}!U8g)bC>mkRp|3vRk%o?{dv3Ba96*fMqn|F*nrXc-R$3Z(~WJNLc ztjbx{YBU@4Onj8Oal0vA16+u7Qll)SOH)7HSsooV0ws2~zFJ+T&TqiCyy>h)Jp>|m zq|VRoBpc3HXr%XD0Jgh1^9I+Qx%cHGtffQeh(G|QUTjshiJVgWVWJevbLEYu?i^1O?yKH3O?g+1Faq-=x%r$OTug*OF49LL&|-}Mtu+Q9Du z6M==#qket?SmAvA)MB8XPa5`&Cn%k@MJNAo^Ed)iXgsZ)N!^BTG>85u)P=Oan`_0w z`Zv6A)g>6SVgJtDAvH!f@qL590mJ3hmi$wSC- zNY-!r&BR?7G4G7UcLM+3pWM739ys~=l0gxO8I;H3K_Q^Wf2x=(xbGb$>d+wkE_zi*Owo&XpZC%4L2ILpd&h;SjH03r$fF|`B9@-%r% zBgB&raYGKF(1aSiK-?&H$8-CH{=2Ol;2kfh9&Iqf&fuyII;eRAsl`SF;UmHk0*I&4 zbVG1j2~=tH>aGIz4YK?>biPH?Ettt&^4mw`@%Z|sE0fSkfGW=1rE6e+_>X=`?>%H? zbqKj9yd;5Q)dRWb>Rw%wtAOsdKhI@^^y9Fn*(WLKNPeS0hBqKmd&5;tCZA=XQNn)c z*;aw@X3)9m1HocM#90z&@y79R)+`|@4Q4C8ln zUwAm#)yC$N_00}I_E}&kdhFDwfUCDQ`B)X;J=;K}F3UO(4gzMb4f{g(<#|QH*$z$UUgG>Nrak` zdUm{8yAn5j3;>Z6#1y#g@C~9=OF^)FO#1)m-nR3Sc?X`@9Dg+GJ$?bmr)XxrZ6QSD z|EEb|#1-)ayV|7Xq!1N>k!!fuNCWWf5pjB0=}7T(!??#1qOh9b?!^!qIIevEMl6Fn zWQt`yB#>ZH5aJwwu#AeMtMUO()|pj(G5;vqr0-c*t7cx3(~$n_H!$EF9enxe@AP%skh?dh^N8@50`M1x4xfKia(5g;iO5*1+v$X7vwIw2b# z2JT{ZY=xW;Irh_BG{$uo&JQB2T>`=xU*^W<-bJh`VUL8jaCS0;Ji%@L z`F>X@6+v51`%-xW%*LJ#BD3GAh&Jkx{0aFvB)4}gcBY6YPWdMc5$~~0S3QHW$P3&I zSkQ^3tR<|*t(UVJV2yzM%-AsZBk+~}d7-}*_;__;D^K$`KKlSoY9Dxf;s(lS!>~Qf z_m9FKPEVl!`<3lj4&=u&B?}hh?K~bip_Jv*HzQt54gaE!z#RAAhvfVPT1e>}o{kYp zS8UW}o4vWS5fx^=ii_fBhUMEa_Z~BhblD6_T9oYmEA^>HqI?w+-qsyw>* zxwUPA{=B>6_(%`>OAEn(&%Tp<-qBOrnco+&nYxO5-6W=7*^Hri2N@*_C|cZ}2Wk2i ziz#nS(4Nq{et7rb@k)G%21PA(uL1fSg-Me}lJS&K>Q9G{5ot9A1)>F%?rrbHyXcXF zoYhkO1zyv%bvXJP-8a<@iaqysMt>O6e!}V>jpBo%h9ks+is!?MYU*t(Cj zxOi=369c|u{D-nV^R`9wAI~$SmDgsm{ovPBdnd_b1@^E;W!(Iw|^P#22 z9JR_)L$6_ zhR^1AW*Z4?oLT5gHX7_r6=aY;Z0}I)9DS?^8ey|spy*r9?CP79Y88tVh>?tAGkp>= z({k6N$!`3-sbVE$X|Q7YlibwmXvO7o4j*{G&()U}s57VV(wx|DLDk%+-Zi}XPjKdt zj|fDcS&_RnJTvK+C14t%4q5b2bfvUze_u)_G7?eikp2l5tCBYfe7WM5Bk$a){Bk9w zkRqOZboNO(f5+2=sD7d(@C5gBgh?FC?JwK8KP;$^(A;%JeL{K-J#nLu71YMMN&Q?+ zk&4eD6s$49u9g3EP=gGJO&_C6c(qh%Pv=GaQs3`qm7Y_Z`4F{dYZ@6lBE?=W>AdD> z#@OWZd*>Y>nzv2IxOztFGKsXJpk7fiGYUWgKOJn>=59PWnskh`3dcjT%paE@M=?6-g7fPad>)NO6??9AW(_K)S7yz1 zedA%cLhEWhAFVkM+xl)J^EqMANl@C-;gg6G=B5bwtMdz32@@Q_qo4>2GQlG%?MVH@ zR^WV3GQ|~tbAPpWL1O!|kwyBx+52L_XE>kU*0o`hq6+;!tNOh<(qWL1exKFf&Qg8} z$D_h6ASvJ(L`cw3?w3HxhFHueg6+>!fTF)x&ZsQ?<0*d`L$H<&tZy<@Ev^3~rbv8(u|N2EKKqtSyeD2wXL`4&R`&onA2xLy+ zgp@2DafL}TlDxHL>s{tBPxqR{2kdd1l`5rtud&8vpoNTlBpmuc)z+BCAQ7CnnJ~A+ z@@7?58Q|Jdw;&v5U%M3_OWH-uIEL`IFladY|?XrzU7E2XX za3t!{)mxU zSBt*YUrJe@j+KO>=h=}qZk@yU8s8Da`crAYV_BTl6HqB@u9C(Qj*6T*_gy zzU!9VNH&`jksb#YBaL`WvaayNeh8V8K=cjr%I4pU|BO_etyNEm5F6rm9$v^B@PJ|N z7j7jmcNP7iYA(e(dl;22By4U;syS5DK{}1Lio#L~Ta_PaR@ysa_Opq^wb}?OoD+`@ z1c;JNK2euqf5lp){LY4URfrMdGjAuU$2|<|yKMHVfZyV7vai zxTW(GJ3rkX7gMY+1v%*pj1|*Zy?|20m4|}KB1y>I6xnmiBz|6fx_=Sfajcwl7^8&> zMR)#Imj(o^5&;ZJ{(Q&PVMEltrMCTWOf|b224_dS$Q$z;;Q%)KS|0|6M z`}v(g+Vp*800;z1$M#u#Lyic`V_)V3R=n8{6FzJo6)-EI%37B#5F@?d`rF|>4Oo?p zLL)!3{57nO4NhW1h{5%3Op|sj%<_>rK9<&qdw(f_-}?Tgq~|8pING`UDA9sMZ?bq6 zSq-5=e6Fr>-?Gd<@1-)GF53BqcsFo_`k9c*rN~M0axO>el1xfj5$h4Y%ah8sK%GcN zqYj()K6>*&4Otn#EGud9F+SNuMVe%!vgh={MWe4**+Dhm5HNq}N~yQG<^87X5OC9R z_#n;k;Eqy}Yv6AVQNVc4M6t~3RJ*DZdsfc&*N?SnZpdCT(mQ42n!3OBDK5`i&xQ#zUL%XTVXr00ho z*E%F9HMwNz^#nPBGq#jRfM}k~=O07HIW^P8^O8-K<71)DM8qW1%3HVcG(i<^o7c)! z)}GJKv9;ZNv$_$RvPytfu*N${Mq+h$dz_Gq&cC;_cPo2}WP7U?QCx(%tC8zsdMkCH zD*xQ9N$wf;N!-EO>QI`jNkSxQVb;W?hnS17^lQyHEmvaMY&FZc#nff2i$cLyEGyv) zjki{~kiAOHtay#TMc)r3zppR`1>vLedR3SphALTS`Sehzch@tBFUQ!mLmHY2grxgY zSEZq^|JSEz@U5RREhmHfyi&mQi4>gO_PoUPyh%hQZF7#l)OI~aIt+b@ua*WLs*<2~ zlcao2l}K|9rE@&h=HnyXs0%tYF_9|(eQA3%rXQdNM3Cjyb$rjQ1P^y?lo51!5=bN!&PJ9l3A4Wh#GgyDFD7xdLQSiaL9$Q zx%|E@vcGyj^Rg>nP$Y?$wL}FDB8n$Q(E0!oW>Z)7N7wjMSKz#fG(N<1Eo#FM#ThFF zUn75P_?H3U5*oPY5*|2Sc-AR`;GzGir5{;%rl1Vj-bU9N`tA+7E$+-ot5NNr;;n)K z3C=v!~y%4R1|jx)8yG{GwgsjoZ)VOHd4b^*_Xy zrD2Pabu!8s{R7g;^Tb!OqLD6@jp8J+W6F=xYHT}`^EYz$^nMVyQV&WKSTcp$%{)@V zG~H#+pCSP3Cx-J27FGSoS-HZhRlR#INnGyDe^;#b2{1l2K-{-;Lwc07Gt@g4N|9j~ z56c%8FpUNu>7HtnLOa8lLqjTFoCUVo_ZEuU>Dq>z zOoIkb#85=}fChnOJJw_x&lvUNs3);7AnSFk%gOeBs4X2&3fIfc#|XPmP8MAhX`n*) zjq}1tO8r=`QxX9Rldil^;W!+AK`e2&E}>9wIWIa10_6Kbbxd0T1j1Ye={!R>y}NaL zLcElLTuN66IkX*h-}_s8N~kt9Rvc?w6P?-CCh7b=7%WI(K-tN?Ygnxl$mH_3;&<%K zU@sJuSK4;_5OxeWuJ;m~)o(9x*Jzj#$(j^^nRrGcOBA(v6w+ z?T}J^(M%e>;OFb-g8;qZ9}*NTT|S1OwV5Hl4h(b1_o>8)f~Lsz8rnKNoigL$T7DHZ z%<}8Pvl*+AYp=(MxAV%#mVZC;kocqfYHNIuDMnnsO&ZAcoV0 zNdA87$zuJ&GaPw9Ra#s8XbK|&#Uv5|Hj4loLqV)X>Cd1fq{oX4j2$u ztkJJ5So47txwM7ck)wT3Z+xi4%x!5l+UwZO<@NuEnF&gDTj@HaRX%W+8$a6M8GEL8 z5s2o0xI5dn4+8=P}1HDh(WmUD4CVefC8^fY4GO{ydw%7+9l!F)q$iPNtMGcxQA?~fU zmUqg<3ErRcC^R^#N2@c?J8Rxk0Tx^*#pHeXZ_P^`wc_YTa)G95TnK@N1Gy=&wm<`n zGfS=QB{Em&9d#02A2Gr-01LVjNft<6UzHhKP~M-hjM`+<4c*IT?)a zBb!+M&9DWP50=GgFu=){cnqkGQaStwYeG8i7OZu54!j-~*ylH#ge##b9j0_ftq!Ffsd zA*8^K9u?N!Lb%{YO_9(R<&2I_nZ3-GuDY`Q3f^7U0R?d5u_JY4y_TqDBRwYqyb9~~ zH!#*#^ao8O$>2#0RKI||8GVl+Qw+U!yJO4a?mIVqPnevkZB2oMyh4a70X}WL(nkOy zJOV0xFxQ94)n}f3dPv|FRN?BA?N7{3>098&IbE%)n%FGBhcaBRPwyRX@9H1hybQqM| zCot02NE;PwT8JVz;>6VAe*56?)aFrQP{sRNRGHGv!@D|nOdOUO_4w3W>TuMtHK zsA0`Vh0SBHso{(j{g4Ui_ubA5C4ivJKLXEKUvI4*X^)91Y3Xg4HwYZ)Z7ybNTZN+A zA533RjWJ^Gbr3%7t{$}&viBmVnG@X3Gj8t+-V8gB>8Mu)>;$OHZk3aCugq@!-W|LU z!oNlwW@9W1*`m1>P$Q+x5WakWw3uJ~s$8-IM<%q>d^|;Ki z*?lr80tMDhOrm-Z8G`W+%vdB(BO#}z0VtgIG!}U#NpnC&o{M9@CEt=iO15w=2Dv^> z`werBGzguL_^_*zrd-Ysam+*qFK6Y|{PkN3YG8K@5K^${CyIUPAfM*tNnbO>@!F%4 zX_-Syl2~~a{2u=WkSzXtoSp!U#fz_Sg$F7Ba z!E-9JH4;e0C-PK1j@X^?^rgGVefcZyH)3iN$m9H=x$z;^c2F=V3ltvIU-BzV%&xX1 ztfpet?Bk*dB;LlBS!q{nPUmNV;a%QM96HMWm!-rB*JwET&KQS9u5hS8+w@_%uWaZ; zCimQ^`WHCLaQaJe8ReVB^=yXyP~^8hNKX8l4H}U?3Ne7;9oAA&HpLBlJe2_ir*`=t zK8_;_?})1d?ZB+YyFHTfj+GTGvvsjt985Z)2u~vO=}i{Zt|Qdg7Ey`_6cyDAuJbu; zd-sqfexuK?i{tZTZ+w`FF0IDpeQ{45_|nx&GtBbQcC9=e4+KGLNVF|hQ9JRLZcM$w z7S^n<^Kbo1)r2lGYf@nP?Kp=53LnD0OQy#oAAWiC=G05XC(r#WJ1OO5r~*n6)207O z4uHELoXU25hW%Qk?ai1nyL}5zyW#I>-%0i{>Q1(1JsHbqfSf}OL{y+0WRz=-n!c3s z`HOZhq*v-7dO`B}U%$Ml-z=nRF|lvHQR6&geXps0^msx)$!H(aI@J@s7?3Nb7Eurn z;9PTp-F=d=e64+-e?#xBqx2z*=H;E@V8{{Q%_I6aB2QW zO7;gYZ03rw@yl@P#R7k3y8DS0p_CX>48%f(7;G1gZN6x^8+^HE|2jiK>if=lg}WL6 zlzc8eYPAAcndSv2|3tRA1*D>(>J8iHi52I7!Z(uQUYa)VMQz5FQ})``>4I#AyX@Z$ z77p9fw7Y(7)=$9mwO>_rbUb-9*VmEw%kGbX>B=y%AOWJ>%=xfywQ7`RGY#*vXj-vq z7&e(HsKA0N481k6?({okLsMzXz@G7HA+Z+!N;oyYR z)9xA6l~#Fv^c~JJm3&tQ&+3b`{WU~O%jnb(bJ?TQt&yJb8H_rok;$Q}`sOe|I!pvf zIWSx9(9Sd}nV#L6X&6dJ|6E<)Q{qfFjfUc|c9gy)cxg_Up(Uv!Q)QFZo2b~o9Biu> zgWifi>3f=8P0NmiaqTXVL#;(FS9dRmsfLD*_JRepy3_7D9}fr8Q17b`4Zm}NI=k5U zA-CeRR599Bb)BQUM_8_Q8FvmweFgD?u#mN7lrHsfTfIzc{^jfRw5!Ql(`4R#{}E#1 zDu?H|Uz!4Bav7_pImDcIc2C!;)S>jjAA1U_jaItUxfA!6v@CmFKG~aZll4rcmJR%l z07FG3PdqtUBm$=;J(1bJV!lCGH+#FxMt0t_k8otPa1gBYeuk}l(|_G~x`SE%3^TF2 z-H;q#p@BK$waOxM>KSv+R;q$p|NV*N9*k^hsMXGBp?O-p8q#vV(F00$CZGR;JU3{a zbhUXk?Ax%76dFd@){=lrPLo?LZONXopzmNE!qA%5+#9u~)o#YcLQ_Pf6&8XCX+uj} z38P4e(tm$kU+Huk$ELa{A;2%fftOPrH4XVD@&`)f69dh8f{P1N(CRiJ;$Ri z$=#~y52RUEsyb^8IOz;v)d*nKyAl`ShREq%hZ8d}v1UHF6Z8xlk+UWFPSQAR-1X_< z{XAG6ci8ZGe`hv`v)VlKnz1J5YCI0_<~w*)==vemPAvt0<}H1Z^&%_klk?s}jY&LA zZ)B(UJPUY<3+b#Nh2(Z04AB0nu#@I(1t3-gN3Z=s4_|~epY80%upn|hf!nAam%KAC zw$s6w&)e-2ff83D-vAT=eZ~NALKKil(y+zX^^c@b%g=us(K1g)dzL0mPkYFI+SD`}b(l80@Oy5aG6Gwy9EtKGk z2`xF;_#NPPU#%j))B~>*f8a@?Do;-z?U#J@-&yR0rDH`Ui6F20cV`O6FSkSQ@18~& zXAmG!K%0qZaS`>m_j{cf?C(^uwWaqro|4Y8#Ume)^_#Ffj z0uHQp&WG1pyH*Xyip6fsTQ?h={va>+vMvHja;0S^e9W%y%%wn=U|DLK>#?nkLZXqu z($)sD@bX+!?a0n-=P9#L1wat`5B{G9*4_V$z6hN4r$d~500g4{C{v+!Mj@HV;EPia zB$@#69Fpq6SLx!3L^C1g8{3g~L=Rvb1mdH0wq0Fgt`t1Z%T`!PF2dEOFu}zT_Rb7k zrGBQ9^NT$(SkI|GD_w&ly3%3%42hI8z)&Voe~{B8hBUl&v7nK%RB)~PXd<^9^$(q* z?E7@H5FHG^IJX~f7;`3+w(Ryv1+!OhL!4*aJRy#{TnQx`GsK8`tMFTD9xZD1A&$!$ z>avMOy>_7AM9RRn!`oIN#3Tf~)VzY7=l?=0f*CltD=287@uYLiLK*WfYW@xpfv$;4 zNKsY@z0a{g5NRLm85dAks!Cy6qUh8Bbt4VXK~R(=2pV+3ujHMM^fzOMoLxlh*32jm z6m6GsAibCnz6s-(?cz5qCrcj_I15f*G5bfweGUW#yygiRO4nEsRb9ra(0a>c&L`!^pYcPf zE+aOGQ_L6)8hb8B`do2Kt^;+^@oYLM+XVPYLDCr-$s7)yoV3cY`g+?|@#vFC>9YtN zej|zCSf%SE3WMM<=I8Zs9)%u~g1-ZpSZR;hBz|f_In#{3GBp znY@CK;=`KaQ?K-@rytTZTunzA6 zteFg+cxGQAITe96&3vSh$?>~{E=QKjs*eCDwE z^nQGpB0RVVi(ML$OCFaj2Z6qE_`{~E7{!F};3WEp|Is#8Uz=CN^C^K? zBoZe6f)8n_2_yc}5effDA&l``R%OFpeGDlofmC2fxIzs?;R;I5=b6qOXlM5(fh6-^>AR^QTRk$m40;>jn!r z4M9z%s7kVMiEv3>JOu|z{O7BBm!C`rI=n1vJT4*A*0fqb0a^Cikj$$~y(|dQN4@5E z3gA2I>5l5tB4iWRkhZjuK_ecf0cCjdIjAsx%8>a-jT%nV=Ovh$Na~RDE2dI)8U|K@+&zq^1kmV#ahafSAnbdq3qMN32J*{Aj5jk~ zSO%`__>G+8IhYz@a!Xv`m}Ogg$X+7nUHmU(O0JnAiIlFgWq8+mjYb^a$>`d2G5@$J zudKtP_T-;NOOI3G38tt?$e91MPk8hm`cJh;GbVFV| z+ZvLxSQQ82ovirA9O7Q%8>=xQz&^pA_JY2Q-~N3X2U$$QX+3NbRD#FschwX;pPVBD zfTes7H0o25Z?tY7*l@1qBty4#13$W!^x%EW<;Gy&zNjS1IIhq zSn({F+85o+WXx=fmu~wj+}_xcvppaut32%W(s)b`MoW^^*B9 zruMhC*uucBqWoF<0t@(5wUDIhfhvEzjvgbC+*)>M-h|&1Hk>ZbXTiL=SshYdvN0vU z`B+{#t6HG>saG2|DpI@iG_GL7^>GXpEXHJLFlw*P#DhxBi^Gq@&-ih4f|E@oB$3{3)6YqUXpKAXGr7OTmI zVr`tac2^72U6GQDp>g0XY8DLY`}j4H0;ac=hXm=AzLu#i0&UOtjD=Canjsst-hbO4 zR?V*f=L7ynwokuQRd!Rug*+LEy>mW$C!r5SAT%V@S@QpM|8((4D!}40-whO=g&aTL z83V;dQTaTl`^U}$=~ts!to?HN774aKmwJ6Io6C`ku6jBcefbYPEDgW4Ieo0Ip!F$b z82L|)JLKkm={cmHVsWMcoBIvIIWxBh>GK-l5Ce<f>j|+;vp25rbl&ZBiT|(nT5o$5NA}^t z_s0A_9&s9C(3M;s$l@Fv(`Th14l0;Ofk?OzJemR@YwBNSG+YmM{w$gC64xb{&!WJU zU?1lg_gK-BdyjahuUmQhY<6(2KRS}*g23RROkuIi)zQxM=nfGk4B(htaVg1qkvJdc zTVyxcu8cWuuC67alWCjxV{kak^fqGw0e7cz+#-htrR>`Ssi}F%^PH`gGG5-R>j1icd=p?Ms2eInZ;Axz48*bG6TJ_N zyzw2jBHd3U4_qR)$$2v0HHu@BJA#3C#$DmC$Rzbd8BFFaj%H$k2qHp$hIjtz5yaCC zl5NHac{SK=>cXoRCu)7XNs3Ic(DeyRB63Hbd*MP_0S}IrC!_+Hmn_JImZ{Ue5*qy% zEl=jqz|S=eLv$VB}2d37766CxX2C_UeQkX=?V9}(k2Om%X>k_I-_MI8K%cYP$V2cU}eLF_oV+Vg!MSZ%cVe#houJtr1yXk$UPZ5JnIqk|-_m)yxQ3Zua;fuxMOB+>(!94B9S^5^1Yf%xs{BTrIlm_=Ces z^t_3`gDonU7Dlc0o7|EM7Umtw&_Vr-yeGN)5qP#QAg=Ng z#4U3 z9x`?I2H{yA5^w#<&oBKr@=6g?R5Pxln8QuMX!P=29CU*J8wE7Kd75=%N$gv60x5C$ zje?>v41&;wR0#bx%T3aYIm3tTc`uYi;)YEy30@yTLHtr28=rHA8Or%Qs+D>Y^uYOw z7~H>@<%B9X;wgsFz_?xV4z`I$ezWm`;LDL4tw`&9WgVJkj*)O6GqUD!iSiKci?HET zJj51NDA*dx6KLFmZnql`#97lmGOhvLHIbC1E+36b!s=px_A8H2?DQY5b_aN^tt4 zfThr}N+A;=t^7bt{bG(w2Bos*(4!x&wm2lu<*J_>+SQ20hK`oAv@bSVJALpQz4@UC zXdce66B8pK_}WmD$+ip$HG&A@XRBEJ6==KT+oH30%}Q%DxzbF_4Z%=~cY!P2(J8rs zPbq%TYUA#?F{ImwVC-S*+`6kjp9i1hn-0_Q+2g+q`Ji6T)-OOBk@ZGOf@M5)0NRQXN!sZ} zt6i_3bDYxdxA`8zH?yw8t_U!9c@_vw5VettNVls-N6@I^K)FUWvf>ZY>Sj>meYG13 z;j#T9zO6x)T6lxN-t`D<3UM z+O9?-jKJSnA5o3n!+ASxoOU^%mO|1r`hnP+$t$2r%vMhULh<90Xh=NhK?{d7=ilb6 z)-D2_DfaO!bHOp-&v+_OxifZI9(=*uX&LFTTp(cc8NDuZ1ahA<$N?&6En>smH$}oX zBhEagY@xO+ESd#qqrVSMDFlXbG~3c6*d+47g!Rfvg%pF*@a?+qt6_;(IxSfC8?T>* zxMW$#IAoG?k7|5Ed2MPy+C1&MsTA;I32K>E5q~wlYomB4JN!hPt(+u~>UizLMM3o& zJ1`LY&=h_?`zF@9$Qt%(c8a;g@ zG&5$|Y=rkn{;{WKX}Fp0m$z|i`1N^mor09l{hRcq*c9_A4H^Bqp7pI;6Md|Tbz7c!bTmH@Yp;1wI9m4qboJfga6QrADO&U{dLltsomGP*g6Jf6 zakUU-*AhZRCn1O)WhGIf*LBrhy+n^1ZI_7NJ0VEacfY^)egAmhf9`$m+_~qRIp@rL z=9!suE~F(LZcJ?%yu&Zy@Rh`YkNwdzcI!gya7W?g>aQ(L zzlIr)XbPp}Bhidcytk-nb!eocvX+ikQm0)YLAD1H+F>$)!M~lLaoh_s$JvkZ>|Crq z)F8d$kVn~*|7rN(VLx+c{~Wb{fj$RPebvvrbiknKhEP#s@O2B5xW|~<7=k=f3GBw) z&4fCn@7+ey@CK&49qqN&YYe@xM_mMpDvpi32ESo;rt2o5!H4L5q;0dasKy$DfE(POfZp zV2r+YvUPtEcBLaVgA1LJ#*_sONALsBKEOTFShDc`jC?=@JR6PB(*Rt2e%=ic`q710 z{s4b5B&;p|<0{A=`zTyA#7^SpT!jNYNS1x*oILGRrNAA!%48HvzRF~+U~f;ylZ0Nr zYt>81t)DtjjD64D>9|;I8{TWsNVCgp?ldZFw``W>?y1Q5l=MbQsf)WJ6(uF3l#L;- z7(2YeAyiYT3qT-enTv&X2)(fR<`E8hhbuAC<4yV>Z+|LK7-f~Xp;yV=lxc5l8) z)~3}9Q7{gt^t;2;WowJm-Yi5TpzjCMWE%%fBc!wO^ujVKVCZAWuoFEnN+V8GBLDx^ z<^Q=&#}Jsm^9^fb89`#D6B;BmZh92C#ZN3rU`!(Xsc0)%L-!~MFc4o0J=`StnMp=8 ze5$b?`7|@eJ`bzz(6kNswE5P`x-kHo>d`)}nf!ub*vSxh!Q^G&)4yXgp%A`11X7grP3sS0rudd+Z)k!k6DRcixlm)`2$zyd8 zav9q}$1!&`Nqu%BPoF!pc`#cIUV0KmNzue?YK>D4TAdsy@J{eVu@9#_#aeNW(biH) z?}(l+=a71-JO0x3aFJf zFOt60p-DdpqxqBefbY4G@N#Yk)o~L&Wjfo$&h%Pg3c0yq*#rE z>2A`n$kw{4Ij}IMUYS-|8gKJ|bKUi$J@wPokb|%Ww&@3u8A_8!mcMFbL-C+(awv)- zxeq^nX6s#xkHc2}W#;w%$T6P(kx*cAmd&ay$s0BjT3_Filt*nTDd0`AUx!lA*kwPc5qMIBkjfvk28yhH*Q#VZd%s?h|i?}(Q2uwsZ8JnkO_A( z!nDO-b$z~OZOdCp)=Y2kW0F~l*(&YGS1^Sb#zCJyEDW`kuREbUOZ?1|$KT(3W4EUK zNy^5zpWKxF{_aB9;+2MsYq^N%JnEh<*Y6ri#+3^**Ph-fX9R_&8CRwZCY?-MaMy~B z2f>jPvfX5hX=o?X)7gDUSe*o`{q6nTt01EtS>a|c765roA)m+xza`ea*_N6OIL;<9 zOa5Heb#aUy_YomA_z`q=Mf^v!h!3wMW+(YVNXr&0d(clg73S_s_Zwevit3~9fv8eJ z>ux^YecEw|COQK69>WL+K3 zjJUJ%DoKd>@4e0;#g-E%#@gf8Z?1fQwxv{FLzF5Po#-dmw0Q?C9eQvv59S+|JFINBBu2okn9RAa>h9ei>b?F3%Jwhxlu1pRdxDXSPCjH5wvjrs#qQGb zT`k#%r!x9#8O8mRpNL<7Ued^kXWsdds&*{6-()Vv`Z9pMaH@@+i_KQ3aQXcON#o^m z;#+LB8pk*Cd$uz~ra6IMiEbR~d&nR{JgIAzhn_Wmj1nGps=OD3RZ-?X?wr#VVCt4E zczyKgXmrB*SNG+}=$?w>!bn0qe9d^{?qhM%LpQjgI7!W|tw*7`VQ!GyxeuF8Gq1o( zGk-qqN5FGGgkYm!$NF-t`a@g0DL1q6d)QcoLnP#8pY+A`dy59z(FE7q+4zsx6sxWa zTd`+%fklCL#PNUe6!lujpyrjmmGBvUO=>=u1e+52U(HNx{#X52f@_E{aro!ZR0y6& zs}X^LEDP`K{T~4QUzqqmXravqB$~!9RFRofgb>Nb+-|tjJ?CzUyo6`tZ!&JfbE1wk z1pk97BIv|_AObiMzy80cT+`oQI$y!^W%*fL+fTbSup0Ii4hhu!n4@IJ$*Kimzx;D= z>Rn#WVGi_RT7=!bbHhB9$p!E0#?HzD?WbMD`e?1Pn&BiZqL}}~2hi$%yje$_jk`*^ zSRk*w&8Vi+!_jGpJB`}?0D(;)3y*I3_J)~bDsR0(V7VL1=egd^7i9Y zYWaJ#K(MUvUDDgPZVTCScM8z|OupLPT1W5t-Zq&&nc3!vkh9l8`D$97xBs0mZl&j! zEisNO{rw6&JsFqMY|@h|#>5cF%PU|eG=sS6#uZ5zaV9~KfF??DQZKM=8zgO zpac%s8h3^Km62f5$}m7S5|+@BeaW05o=AAA|FB-Fc>`I%UwBppaWj)6vQk%$fBeLa zkH05%l#oR9s?#1F_)v-?z;9t>c2zFc>~i`^U65F1>r^C$CI3b3Nl4*jCw=j-{LGie zZsUd%Zs{Hgc!ZLdY z*#4mFZIAM(*-Ps1Yx$2mw6MLVspu&{(`q%^qI_^o)&JhwSG2I`YS-`{y?!%7KjN3N zoH+Durg}{@;eykVB3*3P&T(RNwty(S*)ioScNKIsjVHn_o1IUCu0ZVy^`i``tPdrqNKENxrSRew| z-jCY57L^URAO?|N$llWFPxyzRX89OaodgeKr=q3xcTs)QrsWTC3`!V*wiO|N-iQD4 zH-)(TPE%KreAy9)^US>Ov$XK==>t|4FTG)k9hS`@kuj#`kt5TQ6BDfLR?Q0V23DS* zgBCmm$#SysTbidS8t&2Gw`tkiJ^X!vMPXJCOocJQiO(m=7|?v*3%qjbPJX4fd;#XN z@al3X{ab?@qXMMB!W?I`JF2BXAcAnT1pF4!Y0op4?@lNd&4eCTZZ2fM3rvBd#VQ1& zar=)U+SO5}s3#9>R^*CdyRmQ^Rtjjy@2hYBO1mkvyW~INk*zuAgp_9xVu_QojC${imE}fq+G{rM z2SRdGdSw(;mt9@~_iq_}BGwOI3D-?D?(Nb1^5~i% zk9|tSTo}bGtNUG{bn5D|IQYs+W?8li`*L^DL+fAeP<|(TjJM^mwERvBG=_#oPV9am zE&(EFxM~t-Fd-sigazUEL)zzpbr#su82rf!!V^3o$_p-Oe|PD!33uFdUl7>~N1n3a#x@{JSpf})W#ZxuwEC1I#kT}X)d>*r>XBb(p(srU1!6_>9)W{%ds zWW$yujtH%qAFm;mJLg6flxtak)A6zp5-n{adoh|hM$V==wpAMpi^>iWxsXn+I2Td!zz{V|DO3J< z0e*&d{Kl&0OHtVZ_PZ7Fw*w2cVbA34R6C1`=a+@QJNciTF+++b=Zsx%dtsmYI#HF;G7js3 zsih5EknliZbA_L=B;2r9bi}ol4d0f{C02@mm9s)pI+X&z8tdf${T40iljrB{4p4O? z!q*BKuD@uAb^l30gfSv~k%IKZQil^(k84vn;qGkXp+}f+0fOi183x0`WeIiz*o;~J zYBC_FmC}u_bBgj|^BudIs{w0rCv&zJ-#1m30fF`u428v6%BC-x>~u~w>CuuA#dIfU zT!UoLU);^xmQ}Vszu!a04~li~f$!iS?o%X7BRKb`dzT}Ri>z>TwQ`D&n@K~;EX|Ll zk?Ow>h0E-|bqo&6Jb;jNz;6suUcE{blY|5j`t}O=E*A z?HL;2K$&){$AL@Y$w2bi!-IR0b~cGgG*5~>f5{F}#?6?HHmu1ufzUvyDV6h|=otwo}5se_5a3YqNOeruaKY`Atb@Pl@Ua$^Q8< zU|q?}4&)BLJ@xCz6TeYW#n}Vy3si)%@Ozt%S=?(e@$*}BN8GPnm?|W+3xlpq;1Y?x z@n$UdBr3paGFqF*ZDk_e!!qJ&mo3ot)bygggt0v!v2=sqKV4eDpwKl`+Wi_u_s+wEL=Twt`Ci6BOm~a3CU~iAgcHs)ItLh>kv#!s zqn!fOM@|}9fuQ)pLldGG6ic!MI7ywWeUTrL6%Ok9q}2X3nMbGnTcnL$ZJ2r;?t?lI zrB7F~^!Dj`YD*gD4Mf07;4|^bCTT%&uLKvmJ%2tOsmPL4m6fLylFAb;aVDvk^v#zuhw3QyDJ9f<8ZBn7JN1n{6 z5O^cUm;Aed4td+f=b+zBwd`)9LH>S4hjcHJ1UwWV3{$~4{A050cu~B7{#F>&1_fp2 zkEF$r;8H#CUHk&luPhrxiIH9ARTmYjJ}Rm$vr4~dY5NaVTo=!S7ymA)h|l~u_;){J z6}SjEYadl}QJ!v>z;1>Q;$EMh9Pz4#yt3HpxVnLzsh#%OUBb*G4v9wv`>3)GdwPab zN)VphU;0M0>1e=+ZIG7R{#kX_>YSmuTKkv8vg+5{yW~&fCV~mcVh{F#@E!2<%_~CO zAcQpsUWj=sJdhj_`U`Zmy5#Tn^6UQktu^b--;twIwLQ<;^T{=aKvzG_*|Ifc z7M9ja*3CjGTmfYJW4)1BL;K*`g;7XAdD%Jj?}_U*&+nfS*F5D-b6KF@%G3~t@<^Ea zc>=*s4KqwVm(awL@nTk4bwufi0;p5*zADB+ zxK?s?8T59XJJFwG<4vV6GtNpf~HM*j)_+dn4Ld%Lq{kZ4EI`Z`P5&nomBej z7-vdBkY^x0*{)mz}+y!Em~r$B2Zcq0#270DNyBL%$JKhmF)U1z>=9Rx)!HQy3wb6GN0^YQg# zOW_deFx93G-bv;C>QK40W95_NY!;1h>sgK8Q;rh{O<_<-iBCc1X*c z+M80DxVPGLO;&2C?2&r=zI;7fa?LCLueT0<5M0ktr$01zxh|z4tZ;{q6*u zU;jjht9ecB0eBr-9a^(*hpZ}>$A0y%Dezm%3HOE6ZYG=iUB5bQe#%iZEwAd$vdeXG z`tED{3(ae_LxN)#}`4X2bO)G-JwBC$W>a{>{5LZZGL9 zW=AhO?PCb<`pRalT5#tbYrB`#+g+R-;PaYo(Sq>y;f=%nw)V3Ud&%6x8*(6WOWxPY zK|?<_mxV2q=op%q&LvG(9M`_N$zYtzdeiL7X=PP{U(3KX;QUE3@1^;ZP3Y96{Pei1 zWnJBFIB(jleXC5(8Me%0*Yoo!-Pr?_@=$M(ojhRP(gK7-Kj0bKLo#?Xl|&1={dT=} zZ;MqcWaep$tlg`b_<8K&b z|9ZCj^0fP^>X6gFcW^2%H+|gvlW^6*PhnTD0U(oHH@W!5n@@gMoVz&SfcPXiZ zJ&F22lJL=!$J9v6FX#;G@+7ooQp$R2CKeEvm1{xNy^ej>Cw8v*{q=e`D&@EA{jncA zcLetkO|z8fv@P-Tzgd(c>W~&DX12@+S6(h`KQIjRx{{85*|e0;5_kjdQ+T-$2))vB zaY`6B-+kuXD3CBo-hw-{{oBjfp@K1BZ`9P-aB8zI-ug> z?G>TV{--Yp<~3OJT<*;@r^EY^{1$hXpnr)g`r_muE|w;ZdN_j_nJ#S)IO+gwdGz28 zjfooS+Q>#muvM6|`(I3yYUJM=@uM6#?2`%AfRwjzyq@WZq7o}MELn5O1Lzz01I21& zo%m8_7K9R-j22F65d(Bto`fZ2Ix*Vz=}@uD{PTsAekluwHffKqkBFX+Ob-&kiP-|j z8ZM;?1W#$nE14{#gcJ)4JK%`g+HR!bhBz_r>*LL-dr0&$gNH*M!m_CN3pLTrQ0KbZ z!-_F3f5rzouE0TI6SOX58ta5aMI$;zxd4Z!SONz?1BMYOkTB$?cJ=oTSvOk)6u>c* zqT>1$U=}k4jF*Z;B}d1H6z^bnV(NIVgX)9)Hn?dHD!{R!#%-y)-=>O9#zYO1<*9*~ z=I{e*24z4yu2Ipw5W2 zhdptu8DXE&2Q#=&_%Lu-RA9J>3tDt+tq9Bf7RbjJaSC~TO0+u-@+^Um#9O3k6C>2VTz9Cd&+(3tzdGiL|jTQl5jU2 zu5H2A(}DI9>Xa^hUaE2+aFbpAE^jHti&+Xnx^X_3g%wcO!)ROJ8BAR0!inmD-^uxo zw0~DV*d2 zIoUBwf+K*ml=Ny{TptokNiUd-AKp^0-W;bLP>#uKYkUygk8kK{q#}}8V-c@{TX8&e zIjO3`U6(&2iLDyYG5(JiD`ml2mW1?pw!?ueQP|8Cjsd_PVp9>+zCkN!fPuWi>knvo z4Ez{4lxeY@p}3Qysen2-cK0~Q!#UJX{!zL%k3hnv$MVb?T?J??0Z_5ufpqYFyKL--Ft|yPgq+Ejx{*gr$y9!nR83aa>^ZCzqGWFDb!ZA#meu2* zs}p(gM)#wB*f9>g{FcZ>8O@mc82RPLs;J1H=kFxUZAU8Ml>}x`p~#7gK^Z&=uN5IUD7KIU@y8RNhSPPodZ< za6iX9C)e}kS}aCl{LgE2-M*x&L$nLGy7dABGd~|VPx48s@ z)Su^dvYIgWJw#3sX%q>|3{yMi_Zo^8l{%C>V%`$UmiXK%yztzSP)y!NWf7_yKeC~1 zk-pMvYxBgCrSv`rYh&ey&rA@D5>z84+5s-e>y`vWTnx zNZRqh*%GP-x9ywg3?hmkl+uzi@h9wym1geKW+3XJL|m{Wb=Q&Dj{JnrnFeVa6Wbrn z$C#I;^i-%?F*OS_nSP&TGMx^0JN_#Dmod=`Fn2{0h~YcqO4thKn{ZSx+oA@B41!r5 zFM$eRg)P|j`_U{i5vHG6!+t(xn$vC^afsEt+805Je^-o|ULsl|YvOU2ke-M6$6iCv z^2l-rNmFUWfd&9kg$Q1oUy?YLiyuwN9o>)^cXlY{GHH%)uQFMJT~B7{%R1C@CkkMx z!Y|uNMOuud*DcAe*atb^qst_E`19#emV0XFC*3jFw!7wiPE52RwHV&+WSW&{ni&d$h@wWKnw5 zcPT_&<9~K@ksaLBqJ-J91V5L7zlSoV9^_O#9qF|RD8y-K zV|XY>1!%=plPV+@QWn0Uw>(u=VeBHBte@3c>RO4t*O5hQ{?AILu(^H7MN7I;zY8aM zn*>)uXBTHKa{K00uAH8W!k{gNqYE~S*5F6!_IMF9_v-AHV-m7{a_MYpRpsG3n_tK0 zWXw8wbX66NgHD?QZx%r>XLZ<1*RABIW$a6_G=gQ_dq-$Nk<{};oy_G6b;Nx9Q&OlN zelP6s34A?pJx7=D_fl*nQtP6-PaW`KNp^k3H!dpL-q3;Wf+)A}EHXJW_c{2CTqJoj z054Tx>mR$BE>rS1;=h{oJ*U|<^SZHlWVPKY18l0-T4TQOu05b9f8`b z|6$e6Bm#Eal}!Yv_^@mHMHhlPF;s5efIVinKoH)hors>rPC^7;bz^xR;C&*h654Sq zy}#T{!)Je@NH{e_zVKsl7Vnc&~UpOvzp~KZgwP`PJ z0nIZ}KsJs%I_r3TsU%Qo2d`2`tS@_$hhIZe$A~ z2Tb&Q8oL5&z3t0&kN(1a)eA#s?7B&ChNAFAzf>91WzuJLbYdpD#Qb3MfX6asUfwFi zgj6;n#xCS%?h#^*54#j=gmh2I)F_JBP>IDOJiFscRQ*c^pKZEZm47u+>aYf*Ehi?`kaE};d*FGFsT5{{Z_LpD+vqF7 zqEosbPP_zm?7kbi>=nuQ5^T_ftj{*0#1PZw6~jvL3~k{3-l>okBV#H`_%l?jxoHZ{ zs3$IKFG78k-|4BoWF*pi1R>G`cG-os^o-YEMwCRh7MItX=&~VcELvWBh;F+5;Rq71 zfapjT*;o5@vSsB7(jJma+7~v+!>V9VQ&fp{v9k9^!j|W>oaK6H#P~e#2#PGV(*ZZe zlO?-wXQ11E(GUtBWt~zm8-Gy(2bOa%3qTjd$G+UmSqd}6H)fa0r3Hd-Y&>}ZO(*cp zd>guEeiB8-*&${2sNv@~F{j}IH{o1|;z?oGRzSsEQ%Lrc6P`ob!;V#SASB1#@Xl6x{r|o>I$E#!$lA=KwW-Ke=gjWT`D`jK&9+ zjN&LuCoy!giD)MVr@CDZCv_MAR#+9o+@PcQXp=?gy8t+^X(4RBK^>$3lY0I5kvNW$ z9Xsv_{CG+?>i5Q5{tCjDPcwyRLCcA6@>5Y*r4#uk3CP`7zC`TBX$U@35)!g`Hy zcxlt!9RURQ0=iYWVx)xHTF7ar&@&~EthgPt%Ef)c98L;WTZ=uS`k}fLYwY3)FPXN$ zneaLnn7!vPxLH_u0(bo88;knm^i888L1ZHPms+o3)Yv1aSvoI@&SV`QtY-_UqL|ir zeQ|kI=nHpjE3V@xgPID-riPlo*3pQ0mN2OXGfRJu%YgX6p5rDs#2&e!mU&FScyhz8BpJ1hZgr^mA~Ke34inC-97`##P`pmKZ6$5`5S|5{ z*HIU(leux7wClv9g!Z8LyD-*qn-9CUu_z|_*P_%Ow=y}8|LBS58*^JZ^HTJw<%4&l z;wCsi&SqdN_(_cl7c{ToALptkv&DN3#K&-hiVb&eUDn%6*XtYLbaeDlL(Wgj5I8oG z?|d?p8@Qsc*Qu}+G|x}WjKklCnv>)NQQ(d27#>}U8-G+s7#U`0`HUancWxw n4x{(, 2011. +# Josep M. Ferrer , 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Antoni Bella Pérez , 2014, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-05-08 20:15+0200\n" +"Last-Translator: Josep M. Ferrer \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Joan Maspons Ventura,Antoni Bella" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "joanmaspons@gmail.com,antonibella5@yahoo.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "S'està obtenint l'estat del fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "S'està llegint el fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "S'està escrivint el fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Memòria exhaurida" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "S'està creant la carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "S'està eliminant la carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "S'està eliminant el fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "S'està creant l'enllaç simbòlic: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "S'està reanomenant el fitxer: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "S'està copiant el fitxer: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "S'està llegint la carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "S'està llistant la carpeta: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Error de pèrdua de dades:\n" +"Si us plau, contacteu amb l'autor si és reproduïble.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Error intern sever" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Error intern sever." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Error intern sever: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Fitxer %1: Línia %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Fitxer %1: Línia no disponible" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codificació:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Estil del salt de línia:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codificació: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Estil del salt de línia: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Línia superior" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Final" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Obre un fitxer" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bits" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Altres" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copia A a B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copia B a A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Suprimeix A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Suprimeix B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Suprimeix A i B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Fusiona a A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Fusiona a B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Fusiona a A i B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Suprimeix (si existeix)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Fusiona" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Fusiona (manualment)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Error: tipus de fitxer en conflicte" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Error: canviat i suprimit" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Error: les dates són iguals, però els fitxers no." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Fet" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Error" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "S'ha omès." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "No desat." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "En curs..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Pendent." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nom" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operació" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Estat" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "No resolt" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Resolt" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "No blanc" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Blanc" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Actualment esteu fent una fusió de carpetes. Segur que voleu interrompre la " +"fusió i tornar a explorar la carpeta?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Atenció" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Torna a explorar" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continua fusionant" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Ha fallat en obrir les carpetes:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta A «%1» no existeix o no és una carpeta.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta B «%1» no existeix o no és una carpeta.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta C «%1» no existeix o no és una carpeta.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "S'ha produït un error en obrir la carpeta" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Quan es fusionen tres carpetes, la carpeta de destinació haurà de ser " +"diferent de l'A o el B.\n" +"Torneu-ho a comprovar abans de continuar." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Alerta de paràmetres" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "S'estan explorant les carpetes..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "S'està llegint la carpeta A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "S'està llegint la carpeta B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "S'està llegint la carpeta C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Algunes subcarpetes no eren llegibles a" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Comproveu els permisos de les subcarpetes." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Preparat." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Estat de la comparació de carpetes\n" +"\n" +"Nombre de subcarpetes: %1\n" +"Nombre de fitxers iguals: %2\n" +"Nombre de fitxers diferents: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Nombre de fusions manuals: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Això afectarà a totes les operacions de fusió." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "S'estan canviant totes les operacions de fusió" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"S'està processant %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Alguns fitxers no s'han pogut processar." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "S'interromp perquè hi ha massa errors." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Actualment aquesta opció no és possible." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operació no possible" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Hi ha hagut un error en copiar." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Error de fusió" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Operació de fusió desconeguda. (Això no hauria de passar mai!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Operació de fusió desconeguda." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"La fusió està a punt de començar.\n" +"\n" +"Escolliu «Fes-ho» si heu llegit les instruccions i sabeu el que esteu fent.\n" +"Si escolliu «Simula-ho» veureu què passaria.\n" +"\n" +"Sigueu conscient que aquest programa encara està en fase de proves i no hi " +"ha CAP GARANTIA! Feu còpies de seguretat de les vostres dades vitals!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "S'està iniciant la fusió" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Fes-ho" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simula-ho" + +# skip-rule: common-diferent_a +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"L'element ressaltat té un tipus diferent a les diverses carpetes. " +"Seleccioneu què fer." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Les dates de modificació dels fitxers són iguals, però els fitxers no ho " +"són. Seleccioneu què fer." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"L'element ressaltat va ser canviat en una carpeta i suprimit a l'altre. " +"Seleccioneu què fer." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Actualment aquesta operació no és possible perquè s'està a mig procés de " +"fusió de la carpeta." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"S'ha produït un error en l'últim pas.\n" +"Voleu continuar amb l'element que ha causat l'error o voleu ometre'l?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Després d'un error continua fusionant" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continua amb l'últim element" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Omet l'element" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operació de fusió completada." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fusió completada" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulació de fusió completada: comproveu si esteu d'acord amb les operacions " +"proposades." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Hi ha hagut un error. Per a veure informació detallada premeu «D'acord»." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Error: en suprimir %1: ha fallat en crear una còpia de seguretat." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "suprimeix la carpeta de forma recursiva (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "suprimeix (%1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Error: l'operació de supressió de la carpeta ha fallat en intentar llegir-la." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Error: ha fallat l'operació de suprimir la carpeta (%1)." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Error: ha fallat l'operació de supressió." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "fusió manual ( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Nota: abans de fusionar manualment, l'usuari ha de continuar prement F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Error: ha fallat la còpia (%1 -> %2). La supressió de la destinació existent " +"ha fallat." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copia l'enllaç (%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Error: ha fallat la còpia de l'enllaç: els enllaços remots encara no estan " +"admesos." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Error: ha fallat la còpia de l'enllaç." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copia (%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Error en reanomenar (%1 -> %2): no es pot suprimir la destinació existent." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "reanomena (%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Error: el canvi de nom ha fallat." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Error en crear la carpeta de %1. No es pot suprimir el fitxer existent." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "crea la carpeta (%1)" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Error en crear la carpeta." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Destinació" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Carpeta" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipus" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Mida" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atributs" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Darrera modificació" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destinació de l'enllaç" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fitxer" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Enllaç" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "no disponible" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Destinació): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Destinació): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Destinació): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Destinació: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Desa l'estat de fusió de les carpetes com a..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Comença/Continua la fusió de les carpetes" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Executa l'operació per a l'element actual" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Compara el fitxer seleccionat" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Fusiona el fitxer actual" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Fitxer\n" +"de fusió" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Plega totes les subcarpetes" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Desplega totes les subcarpetes" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Tria A per a tots els elements" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Tria B per a tots els elements" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Tria C per a tots els elements" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Tria automàticament l'operació per a tots els elements" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Cap operació per a tots els elements" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Mostra els fitxers idèntics" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Fitxers\n" +"Idèntics" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Mostra els fitxers diferents" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Mostra els fitxers que només són a A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Fitxers\n" +"que només són a A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Mostra els fitxers que només són a B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Fitxers\n" +"que només són a B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Mostra els fitxers que només són a C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Fitxers\n" +"que només són a C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Compara els fitxers seleccionats explícitament" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Fusiona els fitxers seleccionats explícitament" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "No facis res" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Suprimeix A i B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Fusiona a A i B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "No s'ha pogut determinar l'URL complet. No s'ha especificat cap pare." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Ha fallat en llegir el fitxer: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Ha fallat la creació de la còpia temporal de %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Ha fallat l'obertura de %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Error en llegir des de %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Ha fallat en suprimir una còpia de seguretat quan s'intentava fer-ne una de " +"nova.\n" +"Nom de fitxer: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Ha fallat el canvi de nom en intentar fer una còpia de seguretat.\n" +"Noms de fitxer: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configuració actual:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Error de l'opció de configuració:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"Heu usat l'opció --auto, però no heu especificat cap fitxer de sortida." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "L'opció --auto s'ignora en comparar carpetes." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "El desament ha fallat." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Ha fallat en obrir aquests fitxers:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "S'ha produït un error en obrir el fitxer" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Obre els documents per a comparar-los..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Recarrega" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Desa el resultat de la fusió. S'han de resoldre tots els conflictes!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Desa el document actual com a..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Imprimeix les diferències" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Surt de l'aplicació" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Retalla la secció seleccionada i la posa al porta-retalls" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia la secció seleccionada al porta-retalls" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Enganxa el contingut del porta-retalls a la posició actual" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Selecciona tot el que hi ha a la finestra actual" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Cerca una cadena" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Torna a cercar la cadena" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Activa/desactiva la barra d'estat" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configura el KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ves a la diferència actual" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Diferència\n" +"actual" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ves a la primera diferència" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Primera\n" +"diferència" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ves a l'última diferència" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Última\n" +"diferència" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(S'ignoren les diferències en els espais en blanc quan «Mostra els espais en " +"blanc» està desactivat)." + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(No s'ignoren les diferències en els espais en blanc quan «Mostra els espais " +"en blanc» està desactivat)." + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ves a la diferència anterior" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Diferència\n" +"anterior" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ves a la diferència següent" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Diferència\n" +"següent" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ves al conflicte anterior" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflicte\n" +"anterior" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ves al conflicte següent" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Conflicte\n" +"següent" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ves al conflicte no resolt anterior" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"No resolt\n" +"anterior" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ves al conflicte no resolt següent" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"No resolt\n" +"següent" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Selecciona línies d'A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Escull\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Selecciona línies de B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Escull\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Selecciona línies de C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Escull\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Ves automàticament al conflicte no resolt següent després de seleccionar una " +"font" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automàticament\n" +"al següent" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Mostra els caràcters d'espai en blanc i els de tabulació" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Caràcters\n" +"en blanc" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Mostra els espais en blanc" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Diferències\n" +"d'espais" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Mostra els números de les línies" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Números\n" +"de línia" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Resol automàticament els conflictes senzills" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Estableix les diferències com a conflictes" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Executa la fusió automàtica amb l'expressió regular" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Resol automàticament els conflictes cronològics" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Divideix les diferències a la selecció" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Uneix les diferències seleccionades" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Mostra la finestra A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Mostra la finestra B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Mostra la finestra C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Visió de conjunt normal" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Visió de conjunt d'A contra B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Visió de conjunt d'A contra C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Visió de conjunt de B contra C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Ajusta les línies a les finestres de diferències" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Afegeix alineació manual de les diferències" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Neteja totes les alineacions manuals de les diferències" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Focus a la finestra següent" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Focus a la finestra anterior" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Commuta l'orientació de les divisions" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Vista de pantalla dividida en carpetes i text" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Commuta entre la vista de carpetes i text" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "El resultat de la fusió no s'ha desat." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Desa i surt" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Surt sense desar" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Ha fallat en desar el resultat de la fusió." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Actualment esteu fent una fusió de carpetes. Segur que la voleu interrompre?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "S'està desant el fitxer..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "S'està desant el fitxer amb un nom nou..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Desa com a..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Impressió no implementada." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "S'està imprimint..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "S'està imprimint la pàgina %1 de %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selecció)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Impressió completada." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "S'ha interromput la impressió." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "S'està sortint..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "S'està commutant la barra d'eines..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Commuta la barra d'estat..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Part del KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Una KPart per a visualitzar imatges SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configura el KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"No s'ha pogut inicialitzar el component del KDiff3.\n" +"Això sol ser degut a problemes d'instal·lació. Per a més detalls, llegiu el " +"fitxer README del paquet de codi." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fitxer" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "&Carpeta" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operació de fusió de l'element actual" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operació de sincronització de l'element actual" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&oviment" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Vista de les d&iferències" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "&Fusiona" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Finestra" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra d'eines principal" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorat. (Definit per l'usuari)." + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bits)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bits)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Eina per a comparar i fusionar fitxers i carpetes" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves adaptació a KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Fusiona l'entrada." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Fitxer base explícit. Per compatibilitat amb certes eines." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Fitxer de sortida. Implica -m P. ex: -o fitxernou.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Fitxer de sortida, un altre cop. (Per compatibilitat amb certes eines)." + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Sense IGU si tots els conflictes es poden resoldre automàticament. (Cal -o " +"fitxer)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignora --auto i mostra sempre la IGU." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorat." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Substitució del nom visible per al fitxer de sortida 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Substitució del nom visible per al fitxer de sortida 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Substitució del nom visible per al fitxer de sortida 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Substitució del nom visible alternatiu. Proporcioneu-lo per a cada sortida." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Sobreescriu una opció de la configuració. Useu-ho per a cada opció. P. ex.: " +"--cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Mostra una llista de les opcions de configuració i els valors actuals." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Usa un fitxer de configuració diferent." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Fitxer1 a obrir (base, si no s'especifica via --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Fitxer 2 a obrir" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Fitxer 3 a obrir" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Vegeu «kdiff3 --help» per a les opcions admeses." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "No es pot comparar un fitxer no normal amb un de normal." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Barreja d'enllaços i fitxers normals." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Enllaç: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Mida. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data i mida: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "S'està comparant el fitxer..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Escull A a tot arreu" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Escull B a tot arreu" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Escull C a tot arreu" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Escull A a tots els conflictes no resolts" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Escull B a tots els conflictes no resolts" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Escull C a tots els conflictes no resolts" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Escull A a tots els conflictes dels espais en blanc no resolts" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Escull B a tots els conflictes dels espais en blanc no resolts" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Escull C a tots els conflictes dels espais en blanc no resolts" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Nombre de conflictes pendents sense resoldre: %1 (dels quals %2 són espais " +"en blanc)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"S'ha modificat la sortida.\n" +"Si continueu, es perdran els canvis." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Tots els fitxers d'entrada són binàriament iguals." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Tots els fitxers d'entrada contenen el mateix text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Els fitxers %1 i %2 són binàriament iguals.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Els fitxers %1 i %2 tenen el mateix text.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Nombre total de conflictes: %1\n" +"Nre. de conflictes resolts automàticament: %2\n" +"Nre. de conflictes sense resoldre: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflictes" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Encara no s'han resolt tots els conflictes.\n" +"El fitxer no s'ha desat." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflictes pendents" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Hi ha un conflicte d'estil als finals de línia. Escolliu manualment l'estil " +"del salt de línia.\n" +"El fitxer no s'ha desat." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Ha fallat la creació de la còpia de seguretat. El fitxer no s'ha desat." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Error en desar el fitxer" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Error en escriure." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Sortida:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modificat]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codificació per a desar:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflicte" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Còdec d'A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Còdec de B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Còdec de C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Diàleg" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Sortida (Opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fitxer..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Intercanvia/Copia els noms..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Carpeta..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Les entrades de l'historial del control de versions consten de diverses " +"línies.\n" +"Especifiqueu l'expressió regular per a detectar la primera línia (sense el " +"comentari inicial).\n" +"Useu parèntesis per a agrupar les claus que vulgueu usar per a ordenar-les.\n" +"Si es deixa en blanc, el KDiff3 assumeix que les línies en blanc separen les " +"entrades de l'historial.\n" +"Per a més detalls, vegeu la documentació." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Cada parell de parèntesis usats en l'expressió regular per a l'inici de " +"l'entrada de l'historial\n" +"agrupa una clau que es pot usar per a ordenar.\n" +"Especifica la llista de claus (que estan numerades en ordre d'ocurrència\n" +"començant per 1) usant «,» com a separador (p. ex. «4,5,6,1,2,3,7»).\n" +"Si es deixa en blanc, no s'ordenarà.\n" +"Per a més detalls, vegeu la documentació." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Expressió regular per a les línies en què el KDiff3 hauria d'escollir una " +"font automàticament.\n" +"Quan una línia amb un conflicte concorda amb l'expressió regular, aleshores\n" +"-si està disponible- s'escollirà C, si no, B." + +# skip-rule: t-pu_sp +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Expressió regular per a l'inici de les entrades de l'historial del control " +"de versions.\n" +"Normalment aquesta línia conté la paraula clau «$Log$».\n" +"Valor per defecte: «.*\\$Log.*\\$.*»" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Zel de grum: quètxup, whisky, cafè, bon vi; ja!\n" +"El gos mandrós salta per sobre de la guineu marró.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Canvia el tipus de lletra" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Tipus de lletra: %1, %2, %3\n" +"\n" +"Exemple:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Canvia això si els caràcters no ASCII no es mostren correctament." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configura" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Tipus de lletra" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Tipus de lletra de l'editor i la sortida de diferències" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Tipus de lletra de l'aplicació" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Tipus de lletra de la vista de fitxers" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Color" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Arranjament dels colors" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Vistes de l'editor i les diferències:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Color de primer pla:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Color de fons:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Color de fons de les diferències:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Color A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Color B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Color C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Color del conflicte:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Color de fons de l'interval actual:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Color de fons de les diferències de l'interval actual:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Color per als intervals de diferències alineades manualment:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Vista en la comparació de carpetes:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Color del fitxer més nou:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"El canvi d'aquest color només serà efectiu quan es comenci la propera " +"comparació de carpetes." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Color del fitxer més antic:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Color del fitxer d'edat intermèdia:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Color dels fitxers no disponibles:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportament de l'editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "El tabulador insereix espais" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Activat: en prémer el tabulador es generaran el nombre apropat d'espais en " +"blanc.\n" +"Desactivat: s'inserirà un caràcter de tabulació." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Mida de la tabulació:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Sagnat automàtic" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Activat: s'usarà el sagnat de la línia prèvia per a les línies noves.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Copia la selecció automàticament" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Activat: totes les seleccions es desaran immediatament al porta-retalls.\n" +"Desactivat: haureu de copiar explícitament, p. ex. mitjançant Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Detecta automàticament" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Estableix els finals de línia quan es desin els fitxers editats.\n" +"Dos/Windows: CR+LF; UNIX: LF; amb CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diferència" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Arranjament del diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignora els números (tracta'ls com a espais en blanc)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignora els caràcters numèrics durant la fase d'encaix de línies. (Semblant a " +"ignorar els espais en blanc).\n" +"Pot ajudar a comparar fitxers amb dades numèriques." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignora els comentaris de C/C++ (tracta'ls com a espais en blanc)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tracta els comentaris de C/C++ com si fossin espais en blanc." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignora les majúscules/minúscules (tracta-les com a espais en blanc)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Tracta les diferències de caixa com si fossin canvis d'espais en blanc(«a» " +"<=> «A»)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Ordre del preprocessador:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Preprocessament definit per l'usuari. (Vegeu la documentació per als " +"detalls)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Ordre del preprocessador de coincidència de les línies:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Aquest preprocessador només s'usa durant l'encaix de línies.\n" +"(Per a més detalls vegeu la documentació)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Esforça't (més lent)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Activa l'opció --minimal per al «diff» extern.\n" +"L'anàlisi de fitxers grans serà encara més lenta." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Alinea B i C per a 3 fitxers d'entrada" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Intenta alinear B i C quan es comparin o fusionin tres fitxers d'entrada.\n" +"No recomanat per a fusionar, ja que pot ser més complicat.\n" +"(Desactivat per defecte)." + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Fusió" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Arranjament de la fusió" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Retard de l'avanç automàtic (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Quan el mode d'avanç automàtic estigui activat es mostrarà el resultat \n" +"de la selecció actual durant el temps especificat, abans de saltar al\n" +"conflicte següent. Interval: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Mostra els diàlegs informatius" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Mostra un diàleg amb informació sobre el nombre de conflictes." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Selecció manual" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Permet que l'algoritme de fusió seleccioni automàticament una entrada per " +"als canvis d'espais en blanc." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Opció per defecte dels espais en blanc en la fusió de 3 fitxers:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Fusió automàtica amb l'expressió regular" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Fusiona automàticament amb l'expressió regular:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Executa la fusió automàtica amb l'expressió regular a l'inici de la fusió" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Fusiona automàticament amb les expressions regulars\n" +"just en començar la fusió.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Fusió de l'historial del control de versions" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Expressió regular per a l'inici de l'historial:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Expressió regular per a l'inici d'entrada de l'historial:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ordena la fusió de l'historial" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ordena l'historial del control de versions amb una clau." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" +"Criteri d'ordenació de les claus per a l'inici de l'entrada de l'historial:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Fusiona l'historial del control de versions quan es comenci a fusionar" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Executa la fusió automàtica de l'historial del control de versions quan es " +"comenci a fusionar." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Nombre màxim d'entrades de l'historial:" + +# skip-rule: kct-cut +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Talla a partir d'un número especificat. Useu -1 per a un nombre infinit " +"d'entrades." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Comprova les expressions regulars" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Ordre de fusió irrellevant:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Si s'especifica, aquest script s'executarà després de la fusió automàtica\n" +"quan no s'hagin detectat altres canvis apropiats.\n" +"Cridat amb els paràmetres: nomdefitxer1 nomdefitxer2 nomdefitxer3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "En les fusions sense conflictes desa i surt automàticament" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Si el KDiff3 s'inicia des de la línia d'ordres per a fusionar fitxers i\n" +"tots els conflictes es poden resoldre sense la interacció de l'usuari,\n" +"desa i surt.\n" +"(Similar a l'opció de la línia d'ordres «--auto»)." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Carpetes recursives" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Si analitzar o no les subcarpetes." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Patró/ons de fitxer:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"El/s patró/ons dels fitxers a analitzar.\n" +"Comodins: «*» i «?»\n" +"Es poden especificar diversos patrons separant-los amb: «;»" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Negatiu del patró dels fitxers:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"El/s patró/ons dels fitxers a excloure de l'anàlisi. \n" +"Comodins: «*» i «?»\n" +"Es poden especificar diversos patrons separant-los amb: «;»" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Negatiu del/s patró/ons de les carpetes:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"El/s patró/ons de les carpetes a excloure de l'anàlisi. \n" +"Comodins: «*» i «?»\n" +"Es poden especificar diversos patrons separant-los amb: «;»" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Usa el fitxer «Ignore»" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Estén el negatiu del patró a tot el que és ignorat pel control del codi " +"font.\n" +"Per mitjà dels fitxers locals per a ignorar, això pot ser específic de cada " +"carpeta." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Cerca als fitxers i carpetes ocults" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Cerca als fitxers i carpetes ocults." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Segueix els enllaços de fitxer" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activat: compara el fitxer al qual apunta l'enllaç.\n" +"Desactivat: compara els enllaços." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Segueix els enllaços de carpeta" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activat: compara la carpeta a la qual apunta l'enllaç.\n" +"Desactivat: compara els enllaços." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "La comparació dels noms de fitxer distingeix majúscules i minúscules" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"La comparació de carpetes compararà fitxers o carpetes que coincideixin en " +"nom.\n" +"Activeu aquesta opció si la caixa dels noms ha de coincidir. (De manera " +"predeterminada, estarà desactivada en Windows, en els altres entorns estarà " +"activada)." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Desplega totes les subcarpetes en carregar" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Activa: Desplega totes les subcarpetes en iniciar un «diff» de carpeta.\n" +"Inactiva: Deixa plegades les subcarpetes." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Omet l'informe d'estat de la carpeta" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Activa: No mostra l'estat de comparació de la carpeta.\n" +"Inactiva: Mostra el diàleg d'estat en iniciar." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Mode de comparació dels fitxers" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Comparació binària" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Comparació binària de cada fitxer. (Per defecte)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Anàlisi completa" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Fa una anàlisi completa i mostra la informació estadística en columnes " +"addicionals.\n" +"(Més lent que una comparació binària, més lent encara per als fitxers " +"binaris)." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Confia en la mida i la data de modificació (insegur)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumeix que els fitxers són iguals si la data de modificació i la mida del " +"fitxer coincideixen.\n" +"Els fitxers amb continguts iguals però diferents dates de modificació es " +"mostraran com si fossin diferents.\n" +"Útil per a carpetes grans o xarxes lentes." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Confia en la mida i la data dels fitxers però compara'ls binàriament si les " +"dates no concorden (insegur)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumeix que els fitxers són iguals si les dates de modificació i les mides " +"dels fitxers coincideixen.\n" +"Si les dates no són iguals però les mides sí, usa la comparació binària.\n" +"Útil per a carpetes grans o xarxes lentes." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Confia en la mida (insegur)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Assumeix que els fitxers són iguals si la mida dels fitxers coincideixen.\n" +"Útil per a carpetes grans o xarxes lentes quan la data es modifica durant la " +"baixada." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Sincronitza les carpetes" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Ofereix emmagatzemar fitxers a les dues carpetes de manera que\n" +"després les dues carpetes siguin iguals.\n" +"Només funciona quan es comparen dues carpetes sense especificar una " +"destinació." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Les diferències en els espais en blanc no es consideren" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Si els fitxers difereixen en només un espai en blanc, els considerarà " +"iguals.\n" +"Això només és actiu quan s'escull l'anàlisi completa." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copia el més nou en comptes de fusionar-los (insegur)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"No miris dins, simplement tria el fitxer més nou.\n" +"(Useu això només si sabeu què esteu fent).\n" +"Només és efectiu quan es comparen dues carpetes." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Fitxers de còpia de seguretat (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Si un fitxer es desa sobre un fitxer més antic, llavors el fitxer antic\n" +"es reanomenarà amb una extensió «.orig» en comptes de ser suprimit." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Arranjament regional" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Usa la mateixa codificació a tot arreu:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Activar això permet canviar totes les codificacions canviant només la " +"primera.\n" +"Desactiveu-ho si necessiteu opcions individuals diferents per a cada fitxer." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Nota: la codificació local és «%1»" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Codificació per al fitxer A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Si està activat, es detectaran les codificacions Unicode (UTF-16 o UTF-8).\n" +"Si el fitxer no és Unicode, s'usarà la codificació seleccionada com a " +"alternativa.\n" +"(La detecció de l'Unicode depèn dels primers bytes d'un fitxer)." + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Detecta automàticament l'Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Codificació per al fitxer B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Codificació per al fitxer C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Codificació dels fitxers de sortida en la fusió i desament:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Selecciona automàticament" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Si està activat, s'usarà la codificació dels fitxers d'entrada.\n" +"En els casos ambigus un diàleg demanarà a l'usuari que esculli la " +"codificació a usar per a desar." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Codificació dels fitxers del preprocessador:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Idioma de dreta a esquerra" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Alguns idiomes es llegeixen de dreta a esquerra.\n" +"Aquesta opció canviarà el visor i l'editor per a adaptar-s'hi." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integració" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Arranjament de la integració" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opcions a ignorar de la línia d'ordres:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Llista d'opcions de la línia d'ordres que s'ignoraran quan el KDiff3 sigui " +"usat per altres eines.\n" +"Es poden especificar diversos valors separant-los amb «;».\n" +"Això solucionarà l'error «Opció desconeguda»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Surt també en prémer la tecla d'escapada" + +# skip-rule: common-esteu +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Mètode ràpid per a sortir.\n" +"Per als que esteu acostumats a usar la tecla d'escapada." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Això restableix totes les opcions, no només les del tema actual." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "OrdreDelPreprosessador: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Les següents opcions que heu seleccionat poden canviar les dades:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Probablement, durant una fusió no voldreu això.\n" +"Voleu desactivar aquestes opcions o continuar amb aquestes opcions activades?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opció insegura per a fusionar" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Usa aquestes opcions en fusionar" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Desactiva les opcions insegures" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "S'està carregant A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "S'està carregant A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "S'està carregant B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "S'està carregant B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diferència: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Diferència de línia: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "S'està carregant C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "S'està carregant C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diferència: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diferència: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Diferència de línia: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Diferència de línia: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Tots els fitxers d'entrada contenen el mateix text però no són binàriament " +"iguals." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Els fitxers %1 i %2 tenen el mateix text, però binàriament no són iguals. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Alguns fitxers d'entrada no semblen fitxers de text pur.\n" +"Cal tenir en compte que la fusió del KDiff3 no està pensada per a dades " +"binàries.\n" +"Continueu sota la vostra responsabilitat." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Alguns caràcters d'entrada no es poden convertir a caràcters Unicode " +"vàlids.\n" +"Deveu estar usant un còdec equivocat (p. ex. UTF-8 per a fitxers no UTF-8).\n" +"No deseu el resultat si no n'esteu segur. Continueu sota la vostra " +"responsabilitat.\n" +"Els fitxers d'entrada afectats són a %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Interromp" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "S'estan obrint els fitxers..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "S'està tallant la selecció..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "S'està copiant la selecció al porta-retalls..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "S'està inserint el contingut del porta-retalls..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Ajust de paraula (Cancel·la desactiva l'ajust de paraula)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" +"S'està calculant l'amplada màxima per a la barra de desplaçament horitzontal" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Desa i continua" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continua sense desar" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "S'ha finalitzat la cerca." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Cerca completa" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "No hi ha res seleccionat en cap de les finestres de diferències." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Error en afegir un interval manual de diferències" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancel·la" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Intercanvia %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copia %1 ->sortida" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Intercanvia %1<->sortida" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configura..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Obre una carpeta" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Selecció del fitxer de sortida" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Tot/Tots els fitxers (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Cerca el text:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Distingeix entre majúscules i minúscules" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Cerca A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Cerca B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Cerca C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Cerca la sortida" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Cerca" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Provador de l'expressió regular" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Exemple de línia de fusió automàtica:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Per a provar la fusió automàtica, copieu una línia com les usades als " +"vostres fitxers." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultat coincident:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Exemple de la línia d'inici de l'historial (amb el comentari inicial):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copieu una línia d'inici de l'historial com les usades als vostres fitxers,\n" +"incloent-hi el comentari inicial." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Criteri d'ordenació de les claus de l'historial:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Exemple de línia d'inici d'una entrada de l'historial (sense el comentari " +"inicial):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copieu una línia d'inici d'una entrada de l'historial com les usades als " +"vostres fitxers,\n" +"sense incloure el comentari inicial." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resultat de la clau d'ordenació:" + +# PERFER: alineament? +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Encaix correcte." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Ha fallat l'encaix." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"L'obertura i tancament de parèntesis no encaixa en l'expressió regular." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Ha fallat l'escriptura de dades del porta-retalls al fitxer temporal." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Des del porta-retalls" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 no és un fitxer normal." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " El fitxer temporal és: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Pot ser que el preprocessament hagi fallat. Comproveu aquesta ordre:\n" +"\n" +" %1\n" +"\n" +"L'ordre de preprocessament es desactivarà ara." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Fitxer %1 és massa gran per a processar. S'omet." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Pot ser que el preprocessament de l'encaix de línies hagi fallat. Comproveu " +"aquesta ordre:\n" +"\n" +" %1\n" +"\n" +"Ara es desactivarà l'ordre de preprocessament d'encaix de línies." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "S'esperava un espai després de tancar una cometa." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Cometa sense emparellar." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Caràcter inesperat de cometa en l'argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "No s'ha especificat cap programa." \ No newline at end of file diff --git a/po/ca/kdiff3fileitemactionplugin.po b/po/ca/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..3a5d434 --- /dev/null +++ b/po/ca/kdiff3fileitemactionplugin.po @@ -0,0 +1,107 @@ +# Translation of kdiff3fileitemactionplugin.po to Catalan +# Copyright (C) 2011-2020 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2 or later. +# +# Joan Maspons , 2011. +# Josep M. Ferrer , 2011, 2015, 2019. +# Antoni Bella Pérez , 2018, 2020. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2020-07-17 13:44+0200\n" +"Last-Translator: Antoni Bella Pérez \n" +"Language-Team: Catalan \n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.04.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Compara amb %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Fusiona amb %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Desa «%1» per a després" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusió a tres bandes amb la base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Compara amb..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Neteja la llista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Compara" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparació a 3 bandes" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Quant al connector del menú del KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Connector d'accions d'elements de fitxer del KDiff3: Copyright (C) 2011 " +"Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Ús de l'extensió del menú contextual:\n" +"Per a una comparació simple de dos fitxers seleccionats escolliu «Compara».\n" +"Si l'altre fitxer és en algun altre lloc, «Desa» el primer fitxer per a " +"després. Apareixerà al submenú «Compara amb...». Després useu «Compara amb» " +"al segon fitxer.\n" +"Per a una fusió a tres bandes, primer «Desa» el fitxer base, després la " +"branca a fusionar i després «Fusió a tres bandes amb base» a l'altra branca " +"que s'usarà com a destinació.\n" +"El mateix també s'aplica a la comparació i fusió de carpetes." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Quant al connector d'accions de fitxer del KDiff3" \ No newline at end of file diff --git a/po/ca@valencia/diff_ext.po b/po/ca@valencia/diff_ext.po new file mode 100644 index 0000000..97ab4da --- /dev/null +++ b/po/ca@valencia/diff_ext.po @@ -0,0 +1,133 @@ +# Translation of diff_ext.po to Catalan (Valencian) +# Copyright (C) 2018-2021 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Josep M. Ferrer , 2018, 2020, 2021. +# Antoni Bella Pérez , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-10-30 21:52+0200\n" +"Last-Translator: Josep M. Ferrer \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\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 20.12.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Compara amb %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Fusiona amb %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusió a tres bandes amb la base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Guarda «%1» per a després" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Compara amb..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Neteja la llista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Compara" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparació a 3 bandes" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Quant a Diff-Ext..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Tots els drets reservats.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" +"Este programari es pot distribuir segons la llicència Clàusula 2 de BSD.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Diverses extensions de KDiff3 (c) 2006-2013 per en Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Adaptació a les Qt5/Kf5 per en Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Pàgina web del Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Quant a Diff-Ext per a KDiff3 (64 bits)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Compara els fitxers seleccionats" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Compara «%1» amb «%2»" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Guarda «%1» per a una operació posterior" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "No s'ha pogut iniciar KDiff3. Torneu a executar la seua instal·lació." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Ordre" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Línia_d'ordres" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext per a KDiff3" \ No newline at end of file diff --git a/po/ca@valencia/kdiff3.po b/po/ca@valencia/kdiff3.po new file mode 100644 index 0000000..1148387 --- /dev/null +++ b/po/ca@valencia/kdiff3.po @@ -0,0 +1,3626 @@ +# Translation of kdiff3.po to Catalan (Valencian) +# Copyright (C) 2011-2022 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2 or later +# +# Joan Maspons , 2011. +# Josep M. Ferrer , 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Antoni Bella Pérez , 2014, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-05-08 20:15+0200\n" +"Last-Translator: Josep M. Ferrer \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Joan Maspons Ventura,Antoni Bella" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "joanmaspons@gmail.com,antonibella5@yahoo.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "S'està obtenint l'estat del fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "S'està llegint el fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "S'està escrivint el fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Memòria exhaurida" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "S'està creant la carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "S'està eliminant la carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "S'està eliminant el fitxer: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "S'està creant l'enllaç simbòlic: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "S'està canviant de nom el fitxer: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "S'està copiant el fitxer: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "S'està llegint la carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "S'està llistant la carpeta: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"S'ha produït un error de pèrdua de dades:\n" +"Contacteu amb l'autor si és reproduïble.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Error intern sever" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Error intern sever." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Error intern sever: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Fitxer %1: Línia %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Fitxer %1: Línia no disponible" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codificació:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Estil del salt de línia:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codificació: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Estil del salt de línia: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Línia superior" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Final" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Obri un fitxer" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bits" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Altres" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copia A a B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copia B a A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Suprimix A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Suprimix B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Suprimix A i B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Fusiona a A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Fusiona a B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Fusiona a A i B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Suprimix (si existix)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Fusiona" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Fusiona (manualment)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "S'ha produït un error: tipus de fitxer en conflicte" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "S'ha produït un error: canviat i suprimit" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "S'ha produït un error: les dates són iguals, però els fitxers no." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Fet" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Error" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "S'ha omés." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "No guardat." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "En curs..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Pendent." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nom" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operació" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Estat" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "No resolt" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Resolt" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "No blanc" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Blanc" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Actualment esteu fent una fusió de carpetes. Segur que voleu interrompre la " +"fusió i tornar a explorar la carpeta?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Atenció" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Torna a explorar" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continua fusionant" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "No s'ha pogut obrir les carpetes:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta A «%1» no existix o no és una carpeta.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta B «%1» no existix o no és una carpeta.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta C «%1» no existix o no és una carpeta.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "S'ha produït un error en obrir la carpeta" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Quan es fusionen tres carpetes, la carpeta de destinació haurà de ser " +"diferent de l'A o el B.\n" +"Torneu-ho a comprovar abans de continuar." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Alerta de paràmetres" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "S'estan explorant les carpetes..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "S'està llegint la carpeta A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "S'està llegint la carpeta B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "S'està llegint la carpeta C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Algunes subcarpetes no eren llegibles a" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Comproveu els permisos de les subcarpetes." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Preparat." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Estat de la comparació de carpetes\n" +"\n" +"Nombre de subcarpetes: %1\n" +"Nombre de fitxers iguals: %2\n" +"Nombre de fitxers diferents: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Nombre de fusions manuals: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Açò afectarà a totes les operacions de fusió." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "S'estan canviant totes les operacions de fusió" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"S'està processant %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Alguns fitxers no s'han pogut processar." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "S'interromp perquè hi ha massa errors." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Actualment esta opció no és possible." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operació no possible" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "S'ha produït un error en copiar." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "S'ha produït un error de fusió" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Operació de fusió desconeguda. (Açò no hauria de passar mai!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Operació de fusió desconeguda." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"La fusió està a punt de començar.\n" +"\n" +"Escolliu «Fes-ho» si heu llegit les instruccions i sabeu el que esteu fent.\n" +"Si escolliu «Simula-ho» veureu què passaria.\n" +"\n" +"Sigueu conscient que este programa encara està en fase de proves i no hi ha " +"CAP GARANTIA! Feu còpies de seguretat de les vostres dades vitals!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "S'està iniciant la fusió" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Fes-ho" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simula-ho" + +# skip-rule: common-diferent_a +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"L'element ressaltat té un tipus diferent a les diverses carpetes. Seleccioneu " +"què fer." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Les dates de modificació dels fitxers són iguals, però els fitxers no ho són. " +"Seleccioneu què fer." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"L'element ressaltat va ser canviat en una carpeta i suprimit a l'altre. " +"Seleccioneu què fer." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Actualment esta operació no és possible perquè s'està a mig procés de fusió " +"de la carpeta." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want to " +"skip this item?" +msgstr "" +"S'ha produït un error en l'últim pas.\n" +"Voleu continuar amb l'element que ha causat l'error o voleu ometre'l?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Després d'un error continua fusionant" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continua amb l'últim element" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Omet l'element" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operació de fusió completada." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fusió completada" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulació de fusió completada: comproveu si esteu d'acord amb les operacions " +"proposades." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"S'ha produït un error. Per a veure informació detallada premeu «D'acord»." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" +"S'ha produït un error: en suprimir %1: ha fallat en crear una còpia de " +"seguretat." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "suprimix la carpeta de forma recursiva (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "suprimix (%1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"S'ha produït un error: l'operació de supressió de la carpeta ha fallat en " +"intentar llegir-la." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" +"S'ha produït un error: ha fallat l'operació de suprimir la carpeta (%1)." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "S'ha produït un error: ha fallat l'operació de supressió." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "fusió manual ( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid " Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Nota: abans de fusionar manualment, l'usuari ha de continuar prement F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"S'ha produït un error: ha fallat la còpia (%1 -> %2). La supressió de la " +"destinació existent ha fallat." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copia l'enllaç (%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"S'ha produït un error: ha fallat la còpia de l'enllaç: els enllaços remots " +"encara no estan admesos." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "S'ha produït un error: ha fallat la còpia de l'enllaç." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copia (%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"S'ha produït un error en canviar de nom (%1 -> %2): no es pot suprimir la " +"destinació existent." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "canvia el nom (%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "S'ha produït un error: el canvi de nom ha fallat." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"S'ha produït un error en crear la carpeta de %1. No es pot suprimir el fitxer " +"existent." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "crea la carpeta (%1)" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "S'ha produït un error en crear la carpeta." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Destinació" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Carpeta" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipus" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Mida" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atributs" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Última modificació" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destinació de l'enllaç" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fitxer" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Enllaç" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "no disponible" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Destinació): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Destinació): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Destinació): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Destinació: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Guarda l'estat de fusió de les carpetes com a..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Comença/Continua la fusió de les carpetes" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Executa l'operació per a l'element actual" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Compara el fitxer seleccionat" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Fusiona el fitxer actual" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Fitxer\n" +"de fusió" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Plega totes les subcarpetes" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Desplega totes les subcarpetes" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Tria A per a tots els elements" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Tria B per a tots els elements" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Tria C per a tots els elements" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Tria automàticament l'operació per a tots els elements" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Cap operació per a tots els elements" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Mostra els fitxers idèntics" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Fitxers\n" +"Idèntics" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Mostra els fitxers diferents" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Mostra els fitxers que només són a A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Fitxers\n" +"que només són a A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Mostra els fitxers que només són a B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Fitxers\n" +"que només són a B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Mostra els fitxers que només són a C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Fitxers\n" +"que només són a C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Compara els fitxers seleccionats explícitament" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Fusiona els fitxers seleccionats explícitament" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "No faces res" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Suprimix A i B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Fusiona a A i B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "No s'ha pogut determinar l'URL complet. No s'ha especificat cap pare." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "No s'ha pogut llegir el fitxer: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "No s'ha pogut crear la còpia temporal de %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "No s'ha pogut fer l'obertura de %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "S'ha produït un error en llegir des de %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"No s'ha pogut suprimir una còpia de seguretat quan s'intentava fer-ne una de " +"nova.\n" +"Nom de fitxer: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Ha fallat el canvi de nom en intentar fer una còpia de seguretat.\n" +"Noms de fitxer: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configuració actual:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "S'ha produït un error de l'opció de configuració:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"Heu utilitzat l'opció --auto, però no heu especificat cap fitxer d'eixida." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "L'opció --auto s'ignora en comparar carpetes." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "La guardada ha fallat." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "No s'ha pogut obrir estos fitxers:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "S'ha produït un error en obrir el fitxer" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Obri els documents per a comparar-los..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Torna a carregar" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Guarda el resultat de la fusió. S'han de resoldre tots els conflictes!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Guarda el document actual com a..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Imprimix les diferències" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Ix de l'aplicació" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Retalla la secció seleccionada i la posa al porta-retalls" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia la secció seleccionada al porta-retalls" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Apega el contingut del porta-retalls a la posició actual" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Selecciona tot el que hi ha a la finestra actual" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Busca una cadena" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Torna a buscar la cadena" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Activa/desactiva la barra d'estat" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configura KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ves a la diferència actual" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Diferència\n" +"actual" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ves a la primera diferència" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Primera\n" +"diferència" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ves a l'última diferència" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Última\n" +"diferència" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(S'ignoren les diferències en els espais en blanc quan «Mostra els espais en " +"blanc» està desactivat)." + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(No s'ignoren les diferències en els espais en blanc quan «Mostra els espais " +"en blanc» està desactivat)." + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ves a la diferència anterior" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Diferència\n" +"anterior" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ves a la diferència següent" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Diferència\n" +"següent" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ves al conflicte anterior" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflicte\n" +"anterior" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ves al conflicte següent" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Conflicte\n" +"següent" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ves al conflicte no resolt anterior" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"No resolt\n" +"anterior" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ves al conflicte no resolt següent" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"No resolt\n" +"següent" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Selecciona línies d'A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Trieu\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Selecciona línies de B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Trieu\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Selecciona línies de C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Trieu\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Ves automàticament al conflicte no resolt següent després de seleccionar una " +"font" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automàticament\n" +"al següent" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Mostra els caràcters d'espai en blanc i els de tabulació" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Caràcters\n" +"en blanc" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Mostra els espais en blanc" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Diferències\n" +"d'espais" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Mostra els números de les línies" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Números\n" +"de línia" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Resol automàticament els conflictes senzills" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Establix les diferències com a conflictes" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Executa la fusió automàtica amb l'expressió regular" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Resol automàticament els conflictes cronològics" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Dividix les diferències a la selecció" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Unix les diferències seleccionades" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Mostra la finestra A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Mostra la finestra B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Mostra la finestra C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Visió de conjunt normal" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Visió de conjunt d'A contra B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Visió de conjunt d'A contra C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Visió de conjunt de B contra C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Ajusta les línies a les finestres de diferències" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Afig alineació manual de les diferències" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Neteja totes les alineacions manuals de les diferències" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Focus a la finestra següent" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Focus a la finestra anterior" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Canvia l'orientació de les divisions" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Vista de pantalla dividida en carpetes i text" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Canvia entre la vista de carpetes i text" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "El resultat de la fusió no s'ha guardat." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Guarda i ix" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Ix sense guardar" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "No s'ha pogut guardar el resultat de la fusió." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Actualment esteu fent una fusió de carpetes. Segur que la voleu interrompre?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "S'està desant el fitxer..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "S'està desant el fitxer amb un nom nou..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Anomena i guarda..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Impressió no implementada." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "S'està imprimint..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "S'està imprimint la pàgina %1 de %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selecció)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Impressió completada." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "S'ha interromput la impressió." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "S'està eixint..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "S'està canviant la barra d'eines..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Canvia la barra d'estat..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Part de KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Una KPart per a visualitzar imatges SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configura KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"No s'ha pogut restablir el component de KDiff3.\n" +"Açò sol ser degut a problemes d'instal·lació. Per a més detalls, llegiu el " +"fitxer README del paquet de codi." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fitxer" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "&Carpeta" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operació de fusió de l'element actual" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operació de sincronització de l'element actual" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&oviment" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Vista de les d&iferències" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "&Fusiona" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Finestra" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra d'eines principal" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorat. (Definit per l'usuari)." + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bits)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bits)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Eina per a comparar i fusionar fitxers i carpetes" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves adaptació a KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Fusiona l'entrada." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Fitxer base explícit. Per compatibilitat amb certes eines." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Fitxer d'eixida. Implica -m P. ex: -o fitxernou.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Fitxer d'eixida, una altra vegada. (Per compatibilitat amb certes eines)." + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Sense IGU si tots els conflictes es poden resoldre automàticament. (Cal -o " +"fitxer)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignora --auto i mostra sempre la IGU." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorat." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Substitució del nom visible per al fitxer d'eixida 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Substitució del nom visible per al fitxer d'eixida 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Substitució del nom visible per al fitxer d'eixida 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Substitució del nom visible alternatiu. Proporcioneu-lo per a cada eixida." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Sobreescriu una opció de la configuració. Utilitzeu-ho per a cada opció. P. " +"ex.: --cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Mostra una llista de les opcions de configuració i els valors actuals." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Utilitza un fitxer de configuració diferent." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Fitxer1 a obrir (base, si no s'especifica via --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Fitxer 2 que s'obrirà" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Fitxer 3 que s'obrirà" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Vegeu «kdiff3 --help» per a les opcions admeses." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "No es pot comparar un fitxer no normal amb un de normal." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Barreja d'enllaços i fitxers normals." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Enllaç: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Mida. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data i mida: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "S'està comparant el fitxer..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Trieu A a tot arreu" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Trieu B a tot arreu" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Trieu C a tot arreu" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Trieu A a tots els conflictes no resolts" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Trieu B a tots els conflictes no resolts" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Trieu C a tots els conflictes no resolts" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Trieu A a tots els conflictes dels espais en blanc no resolts" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Trieu B a tots els conflictes dels espais en blanc no resolts" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Trieu C a tots els conflictes dels espais en blanc no resolts" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Nombre de conflictes pendents sense resoldre: %1 (dels quals %2 són espais en " +"blanc)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"S'ha modificat l'eixida.\n" +"Si continueu, es perdran els canvis." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Tots els fitxers d'entrada són binàriament iguals." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Tots els fitxers d'entrada contenen el mateix text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Els fitxers %1 i %2 són binàriament iguals.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Els fitxers %1 i %2 tenen el mateix text.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Nombre total de conflictes: %1\n" +"Nre. de conflictes resolts automàticament: %2\n" +"Nre. de conflictes sense resoldre: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflictes" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Encara no s'han resolt tots els conflictes.\n" +"El fitxer no s'ha guardat." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflictes pendents" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Hi ha un conflicte d'estil als finals de línia. Escolliu manualment l'estil " +"del salt de línia.\n" +"El fitxer no s'ha guardat." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"No s'ha pogut crear la còpia de seguretat. El fitxer no s'ha guardat." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "S'ha produït un error en guardar el fitxer" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "S'ha produït un error en escriure." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Eixida:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modificat]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codificació per a guardar:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflicte" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Còdec d'A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Còdec de B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Còdec de C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Diàleg" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Eixida (Opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fitxer..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Intercanvia/Copia els noms..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Carpeta..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Les entrades de l'historial del control de versions consten de diverses " +"línies.\n" +"Especifiqueu l'expressió regular per a detectar la primera línia (sense el " +"comentari inicial).\n" +"Utilitzeu parèntesis per a agrupar les claus que vulgueu utilitzar per a " +"ordenar-les.\n" +"Si es deixa en blanc, KDiff3 assumix que les línies en blanc separen les " +"entrades de l'historial.\n" +"Per a més detalls, vegeu la documentació." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history start " +"entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Cada parell de parèntesis utilitzats en l'expressió regular per a l'inici de " +"l'entrada de l'historial\n" +"agrupa una clau que es pot utilitzar per a ordenar.\n" +"Especifica la llista de claus (que estan numerades en ordre d'ocurrència\n" +"començant per 1) utilitzant «,» com a separador (p. ex. «4,5,6,1,2,3,7»).\n" +"Si es deixa en blanc, no s'ordenarà.\n" +"Per a més detalls, vegeu la documentació." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Expressió regular per a les línies en què KDiff3 hauria d'escollir una font " +"automàticament.\n" +"Quan una línia amb un conflicte concorda amb l'expressió regular, aleshores\n" +"-si està disponible- s'escollirà C, si no, B." + +# skip-rule: t-pu_sp +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Expressió regular per a l'inici de les entrades de l'historial del control de " +"versions.\n" +"Normalment esta línia conté la paraula clau «$Log$».\n" +"Valor predeterminat: «.*\\$Log.*\\$.*»" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Jove xef, porte ací per beure whisky amb quinze glaçons d'hidrogen\n" +"El gos peresós salta per damunt de la rabosa marró.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Canvia el tipus de lletra" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Tipus de lletra: %1, %2, %3\n" +"\n" +"Exemple:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Canvia açò si els caràcters no ASCII no es mostren correctament." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configura" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Tipus de lletra" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Tipus de lletra de l'editor i l'eixida de diferències" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Tipus de lletra de l'aplicació" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Tipus de lletra de la vista de fitxers" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Color" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Configuració dels colors" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Vistes de l'editor i les diferències:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Color de primer pla:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Color de fons:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Color de fons de les diferències:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Color A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Color B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Color C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Color del conflicte:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Color de fons de l'interval actual:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Color de fons de les diferències de l'interval actual:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Color per als intervals de diferències alineades manualment:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Vista en la comparació de carpetes:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Color del fitxer més nou:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"El canvi d'este color només serà efectiu quan es comence la propera " +"comparació de carpetes." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Color del fitxer més antic:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Color del fitxer d'edat intermèdia:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Color dels fitxers no disponibles:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportament de l'editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "El tabulador inserix espais" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Activat: en prémer el tabulador es generaran el nombre acostat d'espais en " +"blanc.\n" +"Desactivat: s'inserirà un caràcter de tabulació." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Mida de la tabulació:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Sagnat automàtic" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Activat: s'utilitzarà el sagnat de la línia prèvia per a les línies noves.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Copia la selecció automàticament" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Activat: totes les seleccions es guardaran immediatament al porta-retalls.\n" +"Desactivat: haureu de copiar explícitament, p. ex. mitjançant Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Detecta automàticament" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Establix els finals de línia quan es guarden els fitxers editats.\n" +"Dos/Windows: CR+LF; UNIX: LF; amb CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diferència" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Configuració de diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignora els números (tracta'ls com a espais en blanc)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore white " +"space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignora els caràcters numèrics durant la fase d'encaix de línies. (Semblant a " +"ignorar els espais en blanc).\n" +"Pot ajudar a comparar fitxers amb dades numèriques." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignora els comentaris de C/C++ (tracta'ls com a espais en blanc)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tracta els comentaris de C/C++ com si foren espais en blanc." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignora les majúscules/minúscules (tracta-les com a espais en blanc)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Tracta les diferències de caixa com si foren canvis d'espais en blanc(«a» <=> " +"«A»)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Ordre del preprocessador:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Preprocessament definit per l'usuari. (Vegeu la documentació per als detalls)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Ordre del preprocessador de coincidència de les línies:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Este preprocessador només s'utilitza durant l'encaix de línies.\n" +"(Per a més detalls, vegeu la documentació)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Esforça't (més lent)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Activa l'opció --minimal per a «diff» extern.\n" +"L'anàlisi de fitxers grans serà encara més lenta." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Alinea B i C per a 3 fitxers d'entrada" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Intenta alinear B i C quan es comparen o fusionen tres fitxers d'entrada.\n" +"No recomanat per a fusionar, ja que pot ser més complicat.\n" +"(Desactivat per defecte)." + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Fusió" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Configuració de la fusió" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Retard de l'avanç automàtic (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Quan el mode d'avanç automàtic estiga activat es mostrarà el resultat \n" +"de la selecció actual durant el temps especificat, abans de saltar al\n" +"conflicte següent. Interval: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Mostra els diàlegs informatius" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Mostra un diàleg amb informació sobre el nombre de conflictes." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Selecció manual" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Permet que l'algoritme de fusió seleccione automàticament una entrada per als " +"canvis d'espais en blanc." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Opció per defecte dels espais en blanc en la fusió de 3 fitxers:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Fusió automàtica amb l'expressió regular" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Fusiona automàticament amb l'expressió regular:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Executa la fusió automàtica amb l'expressió regular a l'inici de la fusió" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Fusiona automàticament amb les expressions regulars\n" +"just en començar la fusió.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Fusió de l'historial del control de versions" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Expressió regular per a l'inici de l'historial:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Expressió regular per a l'inici d'entrada de l'historial:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ordena la fusió de l'historial" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ordena l'historial del control de versions amb una clau." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" +"Criteri d'ordenació de les claus per a l'inici de l'entrada de l'historial:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Fusiona l'historial del control de versions quan es comence a fusionar" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Executa la fusió automàtica de l'historial del control de versions quan es " +"comence a fusionar." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Nombre màxim d'entrades de l'historial:" + +# skip-rule: kct-cut +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Talla a partir d'un número especificat. Utilitzeu -1 per a un nombre infinit " +"d'entrades." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Comprova les expressions regulars" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Ordre de fusió irrellevant:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Si s'especifica, este script s'executarà després de la fusió automàtica\n" +"quan no s'hagen detectat altres canvis apropiats.\n" +"Cridat amb els paràmetres: nomdefitxer1 nomdefitxer2 nomdefitxer3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "En les fusions sense conflictes guarda i ix automàticament" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Si KDiff3 s'inicia des de la línia d'ordres per a fusionar fitxers i\n" +"tots els conflictes es poden resoldre sense la interacció de l'usuari,\n" +"guarda i ix.\n" +"(Similar a l'opció de la línia d'ordres «--auto»)." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Carpetes recursives" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Si analitzar o no les subcarpetes." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Patró/ons de fitxer:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Els patró/ons dels fitxers a analitzar.\n" +"Comodins: «*» i «?»\n" +"Es poden especificar diversos patrons separant-los amb: «;»" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Negatiu del patró dels fitxers:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Els patró/ons dels fitxers a excloure de l'anàlisi. \n" +"Comodins: «*» i «?»\n" +"Es poden especificar diversos patrons separant-los amb: «;»" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Negatiu dels patró/ons de les carpetes:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Els patró/ons de les carpetes a excloure de l'anàlisi. \n" +"Comodins: «*» i «?»\n" +"Es poden especificar diversos patrons separant-los amb: «;»" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Utilitza el fitxer «Ignore»" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Estén el negatiu del patró a tot el que és ignorat pel control del codi " +"font.\n" +"Per mitjà dels fitxers locals per a ignorar, açò pot ser específic de cada " +"carpeta." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Busca als fitxers i carpetes ocults" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Busca als fitxers i carpetes ocults." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Seguix els enllaços de fitxer" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activat: compara el fitxer al qual apunta l'enllaç.\n" +"Desactivat: compara els enllaços." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Seguix els enllaços de carpeta" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activat: compara la carpeta a la qual apunta l'enllaç.\n" +"Desactivat: compara els enllaços." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" +"La comparació dels noms de fitxer distingix entre majúscules i minúscules" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"La comparació de carpetes compararà fitxers o carpetes que coincidisquen en " +"nom.\n" +"Activeu esta opció si la caixa dels noms ha de coincidir. (De manera " +"predeterminada, estarà desactivada en Windows, en els altres entorns estarà " +"activada)." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Desplega totes les subcarpetes en carregar" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Activa: Desplega totes les subcarpetes en iniciar un «diff» de carpeta.\n" +"Inactiva: Deixa plegades les subcarpetes." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Omet l'informe d'estat de la carpeta" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Activa: No mostra l'estat de comparació de la carpeta.\n" +"Inactiva: Mostra el diàleg d'estat en iniciar." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Mode de comparació dels fitxers" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Comparació binària" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Comparació binària de cada fitxer. (Per defecte)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Anàlisi completa" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Fa una anàlisi completa i mostra la informació estadística en columnes " +"addicionals.\n" +"(Més lent que una comparació binària, més lent encara per als fitxers " +"binaris)." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Confia en la mida i la data de modificació (insegur)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumix que els fitxers són iguals si la data de modificació i la mida del " +"fitxer coincidixen.\n" +"Els fitxers amb continguts iguals però diferents dates de modificació es " +"mostraran com si foren diferents.\n" +"Útil per a carpetes grans o xarxes lentes." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Confia en la mida i la data dels fitxers però compara'ls binàriament si les " +"dates no concorden (insegur)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumix que els fitxers són iguals si les dates de modificació i les mides " +"dels fitxers coincidixen.\n" +"Si les dates no són iguals però les mides sí, utilitza la comparació " +"binària.\n" +"Útil per a carpetes grans o xarxes lentes." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Confia en la mida (insegur)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Assumix que els fitxers són iguals si la mida dels fitxers coincidixen.\n" +"Útil per a carpetes grans o xarxes lentes quan la data es modifica durant la " +"baixada." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Sincronitza les carpetes" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Oferix emmagatzemar fitxers a les dues carpetes de manera que\n" +"després les dues carpetes siguen iguals.\n" +"Només funciona quan es comparen dues carpetes sense especificar una " +"destinació." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Les diferències en els espais en blanc no es consideren" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Si els fitxers diferixen en només un espai en blanc, els considerarà iguals.\n" +"Només estarà actiu quan trieu l'anàlisi completa." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copia el més nou en comptes de fusionar-los (insegur)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"No mires dins, simplement tria el fitxer més nou.\n" +"(Utilitzeu-la només si sabeu què esteu fent).\n" +"Només és efectiu quan es comparen dues carpetes." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Fitxers de còpia de seguretat (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Si un fitxer es guarda sobre un fitxer més antic, llavors el fitxer antic\n" +"es canviarà de nom amb una extensió «.orig» en comptes de ser suprimit." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Configuració regional" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Utilitza la mateixa codificació a tot arreu:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Activar açò permet canviar totes les codificacions canviant només la " +"primera.\n" +"Desactiveu-la si necessiteu opcions individuals diferents per a cada fitxer." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Nota: la codificació local és «%1»" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Codificació per al fitxer A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Si està activada, es detectaran les codificacions Unicode (UTF-16 o UTF-8).\n" +"Si el fitxer no és Unicode, s'utilitzarà la codificació seleccionada com a " +"alternativa.\n" +"(La detecció de l'Unicode depén dels primers bytes d'un fitxer)." + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Detecta automàticament l'Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Codificació per al fitxer B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Codificació per al fitxer C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Codificació dels fitxers d'eixida en la fusió i guardada:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Selecciona automàticament" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Si està activada, s'utilitzarà la codificació dels fitxers d'entrada.\n" +"En els casos ambigus, un diàleg demanarà a l'usuari que trie la codificació a " +"utilitzar per a guardar." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Codificació dels fitxers del preprocessador:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Idioma de dreta a esquerra" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Alguns idiomes es lligen de dreta a esquerra.\n" +"Esta opció canviarà el visor i l'editor per a adaptar-s'hi." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integració" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Configuració de la integració" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opcions a ignorar de la línia d'ordres:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Llista d'opcions de la línia d'ordres que s'ignoraran quan KDiff3 siga " +"utilitzat per altres eines.\n" +"Es poden especificar diversos valors separant-los amb «;».\n" +"Açò solucionarà l'error «Opció desconeguda»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Ix també en prémer la tecla d'escapada" + +# skip-rule: common-esteu +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Mètode ràpid per a eixir.\n" +"Per als que esteu acostumats a utilitzar la tecla d'escapada." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Restablix totes les opcions, no només les del tema actual." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "OrdreDelPreprosessador: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Les opcions següents que heu seleccionat poden canviar les dades:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Probablement, durant una fusió no voldreu açò.\n" +"Voleu desactivar estes opcions o continuar amb estes opcions activades?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opció insegura per a fusionar" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Utilitza estes opcions en fusionar" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Desactiva les opcions insegures" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "S'està carregant A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "S'està carregant A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "S'està carregant B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "S'està carregant B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diferència: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Diferència de línia: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "S'està carregant C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "S'està carregant C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diferència: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diferència: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Diferència de línia: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Diferència de línia: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Tots els fitxers d'entrada contenen el mateix text però no són binàriament " +"iguals." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Els fitxers %1 i %2 tenen el mateix text, però binàriament no són iguals. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Alguns fitxers d'entrada no semblen fitxers de text pur.\n" +"Cal tindre en compte que la fusió de KDiff3 no està pensada per a dades " +"binàries.\n" +"Continueu davall la vostra responsabilitat." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Alguns caràcters d'entrada no es poden convertir a caràcters Unicode vàlids.\n" +"Deveu estar utilitzant un còdec equivocat (p. ex. UTF-8 per a fitxers no " +"UTF-8).\n" +"No guardeu el resultat si no n'esteu segur. Continueu davall la vostra " +"responsabilitat.\n" +"Els fitxers d'entrada afectats són a %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Interromp" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "S'estan obrint els fitxers..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "S'està tallant la selecció..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "S'està copiant la selecció al porta-retalls..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "S'està inserint el contingut del porta-retalls..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Ajust de paraula (Cancel·la desactiva l'ajust de paraula)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" +"S'està calculant l'amplària màxima per a la barra de desplaçament horitzontal" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Guarda i continua" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continua sense guardar" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "S'ha finalitzat la busca." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Busca completa" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "No hi ha res seleccionat en cap de les finestres de diferències." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "S'ha produït un error en afegir un interval manual de diferències" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancel·la" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Intercanvia %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copia %1 ->eixida" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Intercanvia %1<->eixida" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configura..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Obri una carpeta" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Seleccioneu el fitxer d'eixida" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Tot/Tots els fitxers (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Busca el text:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Distingix entre majúscules i minúscules" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Busca A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Busca B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Busca C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Busca l'eixida" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "Bu&sca" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Provador de l'expressió regular" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Exemple de línia de fusió automàtica:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Per a provar la fusió automàtica, copieu una línia com les utilitzades als " +"vostres fitxers." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultat coincident:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Exemple de la línia d'inici de l'historial (amb el comentari inicial):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copieu una línia d'inici de l'historial com les utilitzades als vostres " +"fitxers,\n" +"incloent-hi el comentari inicial." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Criteri d'ordenació de les claus de l'historial:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Exemple de línia d'inici d'una entrada de l'historial (sense el comentari " +"inicial):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copieu una línia d'inici d'una entrada de l'historial com les utilitzades als " +"vostres fitxers,\n" +"sense incloure el comentari inicial." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resultat de la clau d'ordenació:" + +# PERFER: alineament? +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Encaix correcte." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "No s'ha pogut fer l'encaix." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "L'obertura i tancament de parèntesis no encaixa en l'expressió regular." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" +"No s'ha pogut fer l'escriptura de dades del porta-retalls al fitxer temporal." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Des del porta-retalls" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 no és un fitxer normal." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " El fitxer temporal és: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Pot ser que el preprocessament haja fallat. Comproveu esta ordre:\n" +"\n" +" %1\n" +"\n" +"L'ordre de preprocessament es desactivarà ara." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Fitxer %1 és massa gran per a processar. S'omet." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Pot ser que el preprocessament de l'encaix de línies haja fallat. Comproveu " +"esta ordre:\n" +"\n" +" %1\n" +"\n" +"Ara es desactivarà l'ordre de preprocessament d'encaix de línies." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "S'esperava un espai després de tancar una cometa." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Cometa sense emparellar." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Caràcter inesperat de cometa en l'argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "No s'ha especificat cap programa." \ No newline at end of file diff --git a/po/ca@valencia/kdiff3fileitemactionplugin.po b/po/ca@valencia/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..7b6868e --- /dev/null +++ b/po/ca@valencia/kdiff3fileitemactionplugin.po @@ -0,0 +1,107 @@ +# Translation of kdiff3fileitemactionplugin.po to Catalan (Valencian) +# Copyright (C) 2011-2020 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2 or later. +# +# Joan Maspons , 2011. +# Josep M. Ferrer , 2011, 2015, 2019. +# Antoni Bella Pérez , 2018, 2020. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2020-07-17 13:44+0200\n" +"Last-Translator: Antoni Bella Pérez \n" +"Language-Team: Catalan \n" +"Language: ca@valencia\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.04.3\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Accelerator-Marker: &\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Compara amb %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Fusiona amb %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Guarda «%1» per a després" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusió a tres bandes amb la base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Compara amb..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Neteja la llista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Compara" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparació a 3 bandes" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Quant a connector del menú de KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Connector d'accions d'elements de fitxer de KDiff3: Copyright (C) 2011 " +"Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Ús de l'extensió del menú contextual:\n" +"Per a una comparació simple de dos fitxers seleccionats escolliu «Compara».\n" +"Si l'altre fitxer és en algun altre lloc, «Guarda» el primer fitxer per a " +"després. Apareixerà al submenú «Compara amb...». Després utilitzeu «Compara " +"amb» al segon fitxer.\n" +"Per a una fusió a tres bandes, primer «Guarda» el fitxer base, després la " +"branca a fusionar i després «Fusió a tres bandes amb base» a l'altra branca " +"que s'utilitzarà com a destinació.\n" +"El mateix també s'aplica a la comparació i fusió de carpetes." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Quant a connector d'accions de fitxer de KDiff3" \ No newline at end of file diff --git a/po/cs/diff_ext.po b/po/cs/diff_ext.po new file mode 100644 index 0000000..eec39c0 --- /dev/null +++ b/po/cs/diff_ext.po @@ -0,0 +1,128 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Vit Pelcak , 2018, 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-05-13 13:38+0200\n" +"Last-Translator: Vit Pelcak \n" +"Language-Team: Czech \n" +"Language: cs\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-Generator: Lokalize 21.04.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Porovnat s %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Sloučit s %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Trojcestné sloučení se základem" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Uložit '%1' na později" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Porovnat s ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Vyčistit seznam" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Porovnat s" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Trojcestné porovnání" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "O aplikaci Diff-Ext..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Tento software lze šířit pod licencí BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "O Diff-Ext pro KDiff3 (64 Bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Porovnat '%1' s '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Příkaz" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext pro KDiff3" \ No newline at end of file diff --git a/po/cs/kdiff3.po b/po/cs/kdiff3.po new file mode 100644 index 0000000..0107fc6 --- /dev/null +++ b/po/cs/kdiff3.po @@ -0,0 +1,3561 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Vít Pelčák , 2010, 2011, 2013, 2014, 2015, 2017, 2018, 2019, 2020. +# Tomáš Chvátal , 2012, 2013. +# Vit Pelcak , 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: trunk_kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-03-24 11:39+0100\n" +"Last-Translator: Vit Pelcak \n" +"Language-Team: Czech \n" +"Language: cs\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-Generator: Lokalize 20.12.3\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Zdeněk Pech" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "dom.toretto@seznam.cz" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Získávám stav souboru: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Načítám soubor: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Zapisuji soubor: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Nedostatek paměti" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Vytvářím složku: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Odstraňuji složku: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Odstraňuji soubor: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Vytvářím symbolický odkaz: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Přejmenovávám soubor: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopíruji soubor: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Čtu složku: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Výpis adresáře: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Chyba ztráty dat:\n" +"Pokud lze chybu reprodukovat, kontaktujte autora.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Závažná interní chyba" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Závažná interní chyba." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Závažná interní chyba.: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Soubor %1: Řádek %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Soubor %1: Řádek není dostupný" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kódování:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Styl konce řádku:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (základní)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kódování: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Styl konce řádku: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Horní řádek" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Konec" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Otevřít soubor" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Jiné" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Zkopírovat A do B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Zkopírovat B do A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Smazat A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Smazat B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Smazat A a B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Sloučit do A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Sloučit do B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Sloučit do A a B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Smazat (pokud existuje)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Sloučení" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Sloučit (ručně)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Chyba: Konflikt typů souborů" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Chyba: Změněno a smazáno" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Chyba: Data jsou shodná, ale soubory nikoliv." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Hotovo" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Chyba" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Přeskočeno." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Neuloženo." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Probíhá..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Udělat." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Jméno" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operace" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stav" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "NevyřeÅ¡eno" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "VyřeÅ¡eno" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Nebílý" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Bílá" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Právě probíhá slučování složek. Opravdu si přejete slučování ukončit a znovu " +"prohledat složku?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Varování" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Znovu prohledat" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Pokračovat se slučováním" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Otevírání složek selhalo:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Složka A \"%1\" neexistuje nebo není složkou.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Složka A \"%1\" neexistuje nebo není složkou.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Složka C \"%1\" neexistuje nebo není složkou.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Chyba otevírání složky" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Cílová složka nesmí být při slučování tří složek shodná s A nebo B.\n" +"Před pokračováním proveďte kontrolu." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Varování - parametr" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Procházím složky..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Čtu složku A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Čtu složku B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Čtu složku C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Některé podsložky byly nečitelné v" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Zkontrolujte oprávnění podsložek." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Připraven." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Stav porovnání složky\n" +"\n" +"Počet podsložek: %1\n" +"Počet shodných souborů: %2\n" +"Počet odliÅ¡ných souborů: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Počet ručních sloučení: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Toto ovlivňuje vÅ¡echny operace slučování." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Změna vÅ¡ech operací sloučení" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Zpracovává se soubor %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Některé soubory nelze zpracovat." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "PřeruÅ¡uji kvůli příliÅ¡ mnoho chybám." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Tuto operaci nelze nyní provést." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operaci nelze provést" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Během kopírování doÅ¡lo k chybě." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Chyba slučování" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Neznámá slučovací operace. (Toto se nesmí nikdy stát.)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Neznámá slučovací operace." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Sloučení může začít.\n" +"\n" +"Zvolte \"Provést\" pokud jste si přečetli instrukce a máte dělat.\n" +"Zvolením \"Simulovat\" vám bude sděleno, co by se mělo stát.\n" +"\n" +"Uvědomte si, že tento program je stále ve stavu beta a proto není vůbec " +"žádná ZÁRUKA vaÅ¡e důležitá data si zazálohujte." + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "SpouÅ¡tí se sloučení" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Provést" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulovat" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "Zvýrazněná položka je jiného typu v jiné složce. Zvolte co udělat." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "Datum změny souboru je shodné, soubory vÅ¡ak nikoliv. Zvolte co udělat." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Zvýrazněná položka byla pozměněna v jedné složce a v druhé byla smazána. " +"Zvolte co udělat." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "Tato operace není nyní možná, protože slučování složky právě probíhá." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"V posledním kroku doÅ¡lo k chybě.\n" +"Přejete si pokračovat s položkou, která chybu způsobila, nebo si přejete " +"položku přeskočit?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Pokračovat se slučováním po chybě" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Pokračovat s poslední položkou" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Přeskočit položku" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operace sloučení dokončena." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Slučování dokončeno" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulované sloučení dokončeno: Ověřte si, zda souhlasíte s navrženými " +"operacemi." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Vyskytla se chyba. Podrobné informace uvidíte po stisknutí OK." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Chyba: při mazání %1: Vytvoření zálohy selhalo." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "smazat složku rekurzivně( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "odstranit( %1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Chyba: operace mazání složky selhala při pokusu o načtení složky." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Chyba: operace smazat adresář( %1 ) selhala." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Chyba: operace mazání selhala." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ručně sloučit( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "Pozn.: Po ručním slučování by měl uživatel pokračovat stiskem F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Chyba: Kopírování ( %1 -> %2 ) selhalo. Existující cíl nelze odstranit." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Kopírovat odkaz ( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Chyba: kopírování odkazu selhalo: Vzdálené odkazy nejsou nyní podporovány." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Chyba: kopírování odkazu selhalo." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopírovat( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Chyba při přejmenování ( %1 -> %2 ): Existující cíl nelze odstranit." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "přejmenovat( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Chyba: Přejmenování selhalo." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Chyba při vytvoření adresáře %1. Nelze odstranit existující soubor." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Vytvořit adresář ( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Chyba při vytváření složky." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Cíl" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Složka" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Typ" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Velikost" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atributy" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Poslední změna" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Cíl odkazu" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Soubor" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "- Odkaz" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "nedostupný" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (cíl): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (základní): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (cíl): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (cíl): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Cíl: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Uložit stav sloučení složky jako..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Spustit / pokračovat ve sloučení složek" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Spustit operaci pro aktuální položku" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Porovnat vybraný soubor" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Sloučit aktuální soubory" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Sloučit\n" +"Soubor" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Sbalit vÅ¡echny podsložky" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Rozbalit vÅ¡echny podsložky" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Zvolit A pro vÅ¡echny položky" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Zvolit B pro vÅ¡echny položky" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Zvolit C pro vÅ¡echny položky" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Automaticky zvolit operaci pro vÅ¡echny položky" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Žádná operace pro vÅ¡echny položky" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Zobrazit identické soubory" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Shodné\n" +"Soubory" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Zobrazit rozdílné soubory" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Zobrazit soubory pouze v A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Soubory\n" +"pouze v A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Zobrazit soubory pouze v B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Soubory\n" +"pouze v B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Zobrazit soubory pouze v C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Soubory\n" +"pouze v C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Porovnat výlučně vybrané soubory" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Sloučit výlučně vybrané soubory" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nedělat nic" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Smazat A a B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Sloučit do A a B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Nelze zjistit plnou URL. Nebyl zadán rodič." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Soubor nelze přečíst: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Vytváření dočasné kopie %1 selhalo." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Otevření %1 selhalo. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Chyba při čtení z %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Při pokusu o vytvoření zálohy selhalo odstraňování staré zálohy. \n" +"Název souboru: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Při pokusu o vytvoření zálohy selhalo přejmenování. \n" +"Název souboru: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Aktuální nastavení:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Chyba volby nastavení:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Je použit parametr --auto, ale není zadán výstupní soubor." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Volba --auto je při porovnávání složek ignorována." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Ukládání selhalo." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Otevření těchto souborů selhalo:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Chyba otevírání souboru" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Otevře dokumenty pro porovnání..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Obnovit" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Uloží výsledek sloučení. Musí být vyřeÅ¡eny vÅ¡echny konflikty." + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Uloží aktuální dokument jako..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Vytisknout rozdíly" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Ukončí aplikaci" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Vyjme současný výběr a umístí jej do schránky" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Zkopíruje vybranou sekci do schránky" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Vloží současný obsah schránky na aktuální pozici" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Vybrat vÅ¡e v aktuálním okně" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Hledání řetězce" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Další hledání řetězce" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Povolí/zakáže stavový panel" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Nastavit: KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Přejít na aktuální rozdíl" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Aktuální\n" +"rozdíl" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Přejít na první rozdíl" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"První\n" +"rozdíl" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Přejít na poslední rozdíl" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Poslední\n" +"rozdíl" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Přeskočí rozdíly v mezerách pokud je vypnuta volba \"Zobrazit mezery\".)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Nepřeskočí rozdíly v mezerách ani pokud je vypnuta volba \"Zobrazit mezery" +"\".)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Přejít na předchozí rozdíl" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Předchozí\n" +"rozdíl" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Přejít na následující rozdíl" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Následující\n" +"rozdíl" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Přejít na předchozí konflikt" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Předchozí\n" +"Konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Přejít na následující konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Následující\n" +"Konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Přejít na předchozí nevyřeÅ¡ený konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Předchozí\n" +"NevyřeÅ¡eno" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Přejít na následující nevyřeÅ¡ený konflikt" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Následující\n" +"NevyřeÅ¡eno" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Vybrat řádky z A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Zvolit\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Vybrat řádky z B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Zvolit\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Vybrat řádky z C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Zvolit\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Po výběru zdroje automaticky přejít na následující nevyřeÅ¡ený konflikt" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automaticky\n" +"Následující" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Zobrazit znaky mezer a tabulátorů" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Bílé\n" +"znaky" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Zobrazit mezery" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Mezery\n" +"rozdíly" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Zobrazit čísla řádků" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Řádky\n" +"čísla" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automaticky vyřeÅ¡it jednoduché konflikty" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "VÅ¡echny rozdíly považovat za konflikty" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Spustit regulární výraz automatického sloučení" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automaticky vyřeÅ¡it historii konfliktů" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Rozdělit rozdíl ve výběru" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Sloučit vybrané rozdíly" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Zobrazit okno A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Zobrazit okno B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Zobrazit okno C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normální přehled" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Přehled A proti B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Přehled A proti C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Přehled B proti C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Zalamovat řádky v porovnávacích oknech" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Ručně přidat zarovnání" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Odstranit vÅ¡echna ručně přidaná zarovnání" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Zaměřit následující okno" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Zaostřit předchozí okno" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Přepnout orientaci rozdělení" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Zobrazit rozdělení obrazovky na složky a text" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Přepnout mezi zobrazením složek a textu" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Výsledek sloučení nebyl uložen." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Uložit a ukončit" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Ukončit bez uložení" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Uložení výsledku sloučení selhalo." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Právě probíhá sloučení složek. Opravdu si jej přejete ukončit?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Ukládám soubor..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Ukládám soubor pod jiným názvem..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Uložit jako..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Tisk neimplementován" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Tisknu..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Tisknu stránku %1 z %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Výběr)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Tisk dokončen." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Tisk přeruÅ¡en." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Ukončuji..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Přepínání panelu nástrojů..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Přepnout stavový panel..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Komponenta KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Komponenta k zobrazování SVG obrázků" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Nastavit: KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Nelze inicializovat úlohu KDiff3.\n" +"To je obvykle způsobeno problémem při instalaci. Podrobnosti si prosím " +"přečtěte v souboru README v balíčku se zdroji." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "S&oubor" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Slož&ka" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operace sloučení aktuální položky" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operace synchronizace aktuální položky" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "P&ohyb" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "&Zobrazit rozdíly" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Slouč&ení" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "O&kno" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Hlavní panel nástrojů" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorováno (Nastaveno uživatelem)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Nástroj pro porovnávání a slučování souborů a složek" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves port do KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Sloučit vstup." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Výhradně základní soubor. Pro kompatibilitu s některými nástroji." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Název výstupního souboru. Např.: -o novysoubor.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Výstupní soubor znovu. (Kvůli kompatibilitě s určitými nástroji.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Nezobrazovat GUI, pokud jsou vÅ¡echny konflikty řeÅ¡itelné automaticky. " +"(Potřebuje -o soubor)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignorovat --auto a vždy zobrazit grafické protředí." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorováno." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Náhradní název pro vstupní soubor 1 (základní)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Náhradní název pro vstupní soubor 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Náhradní název pro vstupní soubor 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Alternativa náhradního názvu. Tato možnost se nabízí pro každý vstup." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Přepsat konfiguraci. Použít pro každé nastavení. Např.: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Zobrazit seznam vÅ¡ech nastavení a aktuálních hodnot." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Použít rozdílný konfigurační soubor." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "první soubor k otevření (základní, pokud není zadáno pomocí --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "druhý soubor k otevření" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "třetí soubor k otevření" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Podporované volby zjistíte pomocí kdiff3 --help." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Nelze porovnat normální a nenormální soubor." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Směs odkazů a běžných souborů." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Odkaz: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Velikost" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Datum a velikost: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Porovnávám soubory..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "VÅ¡ude zvolit A" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "VÅ¡ude zvolit B" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "VÅ¡ude zvolit C" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Zvolit A pro vÅ¡echny nevyřeÅ¡ené konflikty" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Zvolit B pro vÅ¡echny nevyřeÅ¡ené konflikty" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Zvolit C pro vÅ¡echny nevyřeÅ¡ené konflikty" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Zvolit A pro vÅ¡echny nevyřeÅ¡ené konflikty s mezerami" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Zvolit B pro vÅ¡echny nevyřeÅ¡ené konflikty s mezerami" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Zvolit C pro vÅ¡echny nevyřeÅ¡ené konflikty s mezerami" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Počet zbývajících nevyřeÅ¡ených konfliktů: %1 (z nichž počet mezer je %2)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Výstup byl pozměněn.\n" +"Pokud budete pokračovat, vaÅ¡e změny budou ztraceny." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "VÅ¡echny vstupní soubory jsou binárně shodné." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "VÅ¡echny vstupní soubory obsahují shodný text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Soubor %1 a %2 je binárně shodný.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Soubory %1 a %2 mají shodný text.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Celkový počet konfliktů: %1\n" +"Počet automaticky vyřeÅ¡ených konfliktů: %2\n" +"Počet nevyřeÅ¡ených konfliktů: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konflikty" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<Žádný řádek ve frontě>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"VÅ¡echny konflikty nejsou vyřeÅ¡eny.\n" +"Soubor nebyl uložen." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Zbývající konflikty" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Konflikt druhu konce řádku. Zvolte prosím druh konce řádku ručně.\n" +"Soubor nebyl uložen." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Vytvoření zálohy selhalo. Soubor nebyl uložen." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Chyba ukládání souboru" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Chyba při zápisu." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Výstup:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Pozměněno]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Kódování pro uložení:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Kodek od A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Kodek od B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Kodek od C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialog" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (základní):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Výstup (nepovinné):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Soubor..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Prohodit/kopírovat názvy ..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (nepovinné):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Složka..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Záznamy historie správy verzí se skládají z několika řádků.\n" +"Zadejte regulární výraz k rozeznání prvního řádku (bez úvodního komentáře).\n" +"Pro seskupení klíčů, které zvolíte k setřídění použijte závorky.\n" +"Pokud zůstane prázdné, předpokládá KDiff3, že prázdné řádky oddělují záznamy " +"historie.\n" +"Podrobnosti získáte v dokumentaci." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Každý pár závorek použitých v regulárním výrazu pro záznam historie " +"spuÅ¡tění\n" +"seskupuje klíč, který lze použít pro setřídění.\n" +"Zadejte seznam klíčů (číslovaný dle počtu výskytů začínající od 1)\n" +" oddělený ',' (např. \"4,5,6,1,2,3,7\").\n" +"Pokud zůstane prázdné, potom k setřídění nedojde.\n" +"Podrobnosti získáte v dokumentaci." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regulární výraz pro řádky, kde by měl KDiff3 automaticky zvolit zdroj.\n" +"Pokud řádek s konfliktem odpovídá regulárnímu výrazu, pak bude vybrán C,\n" +"pokud je dostupný, v opačném případě B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regulární výraz pro spuÅ¡tění záznamů historie správy verzí.\n" +"Obvykle tento řádek obsahuje klíčové slovo \"$Log$\".\n" +"Výchozí hodnota: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Změnit písmo" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Písmo: %1, %2, %3\n" +"\n" +"Příklad:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Pokud nejsou jiné než ASCII znaky správně zobrazeny, změňte tuto hodnotu." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Nastavit" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Písmo" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Výstupní písmo editoru & porovnávání" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Písmo aplikace" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Písmo pro prohlížení souborů" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Barva" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Nastavení barev" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Zobrazení editoru a porovnávání:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Barva popředí:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Barva pozadí:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Barva pozadí rozdílů:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Barva A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Barva B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Barva C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Barva konfliktů:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Barva pozadí rozdílů v aktuální oblasti:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Barva pozadí aktuální oblasti:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Barva pro ručně upravené rozdíly oblasti:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Pohle na porovnávání složek:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Barva nejnovějšího souboru:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Změna této barvy je účinná pouze při spuÅ¡tění porovnávání následující složky." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Barva nejstaršího souboru:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Barva středně starého souboru:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Barva chybějících souborů:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Chování editoru" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabulátor vloží mezery" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Vyp: Stisknutí tabulátoru vygeneruje přísluÅ¡ný počet míst.\n" +"Vyp: Bude vložen znak tabulátoru." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Velikost tabulátoru:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automaticky odsadit" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Zap: Odsazení z předchozího řádku bude použito pro nový řádek.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Automaticky zkopírovat výběr" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Zap: Celý výběr je ihned vložen do schránky.\n" +"Vyp: Musíte explicitně zkopírovat např.: pomocí Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Automaticky detekovat" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Zvolte kódování konce řádku při uložení editovaného souboru.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Porovnávání" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Nastavení porovnávání" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignorovat čísla (zacházet jako s prázdným místem)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Během průběhu srovnávání řádků ignoruje číselné znaky. (Podobné jako " +"Ignorovat prázdná místa.)\n" +"Může pomoci porovnávat soubory s číselnými znaky." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignorovat komentáře C-C++ (zacházet jako s prázdným místem)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Považuje komentáře C/C++ za prázdné místo." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignorovat velikost písmen (zacházet jako s prázdným místem)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Nakládá s rozdíly malých a VELKÝCH písmen jako se změnami prázdných míst. " +"('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Příkaz předběžného zpracování:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Uživatelsky nastavené předběžné zpracování. (Podrobnosti získáte v " +"dokumentaci.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Příkaz předběžného zpracování shody řádku:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Toto předběžné zpracování je použito pouze při shodě řádku.\n" +"(Podrobnosti získáte v dokumentaci.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Důkladné hledání (pomalejší)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Pro externí porovnávání přidá parametr --minimal.\n" +"Analýza velkých souborů bude mnohem pomalejší." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Přizpůsobit B a C pro 3 vstupní soubory" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Zkusí přizpůsobit B a C při porovnávání nebo slučování třech vstupních " +"souborů.\n" +"Pro slučování se nedoporučuje, protože sloučení může způsobit více " +"komplikací.\n" +"(Výchozí ve vypnuto.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Sloučení" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Nastavení sloučení" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Zpoždění pro automatický posun:" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"V režimu automatického posunu bude před přechodem na následující konflikt \n" +"zobrazen aktuální výběr po zadaný počet sekund. Rozsah: 0-2000ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Zobrazit informační dialogy" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Zobrazí dialog s informacemi o počtu konfliktů." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Výchozí (hodnota) pro mezery při sloučení dvou souborů:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Zvolit ručně" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Umožní slučovacímu algoritmu automaticky zvolit vstup pouze pro změny " +"prázdných míst." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Výchozí (hodnota) pro mezery při sloučení třech souborů:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automatické sloučení regulárních výrazů" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Automaticky sloučit regulární výraz:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Spustit regulární výraz automatického sloučení při spuÅ¡tění sloučení" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Spustí automatické sloučení regulárních výrazů\n" +"ihned při spuÅ¡tění sloučení.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Sloučení historie správy verzí" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Historie spuÅ¡tění regulárních výrazů:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regulární výraz pro záznamy historie spouÅ¡tění:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Seřadit historii sloučení" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Seřadit historii správy verzí podle klíče." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Klíč k setřídění záznamů historie spuÅ¡tění:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Při spuÅ¡tění sloučení sloučit historii správy verzí" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Při spuÅ¡tění sloučení spustí automatické sloučení historie správy verzí." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Maximální počet záznamů historie:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Po zadaném čísle odstřihnout. Číslo -1 znamená nekonečno položek." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "VyzkouÅ¡et vaÅ¡e regulární výrazy" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Příkaz při irelevantním sloučení:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Při zvolení bude po automatickém sloučení spuÅ¡těn tento skript,\n" +"pokud nebudou zjiÅ¡těny další relevantní změny.\n" +"Voláno s parametry: NázevSouboru1 NázevSouboru3 NázevSouboru3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automaticky uložit a ukončit při sloučení bez konfliktů" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Pokud je KDiff3 pro sloučení souboru spuÅ¡těn z příkazového řádku a vÅ¡echny\n" +"konflikty jsou vyřeÅ¡eny bez zásahu uživatele, pak bude uložení a ukončení " +"automatické.\n" +"(Podobně jako volba příkazového řádku \"--auto\".)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Rekurzivně prohledávat složky" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Zda analyzovat podsložky nebo nikoliv." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Maska souborů:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Maska souborů, které mají být analyzovány.\n" +"Zástupné znaky: '*' a '?'\n" +" Více Å¡ablon lze zadat při použití oddělovače: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Anti-maska souborů:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Maska souborů, které mají být vyřazeny z analýzy.\n" +"Zástupné znaky: '*' a '?'\n" +" Více Å¡ablon lze zadat při použití oddělovače: ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Anti-maska složek:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Maska složek, které mají být vyřazeny z analýzy.\n" +"Zástupné znaky: '*' a '?'\n" +"Více Å¡ablon lze zadat při použití oddělovače: ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Použít soubor s ignoracemi" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"RozÅ¡iřuje anti-masku na vÅ¡e co by CVS ignoroval.\n" +"Pomocí lokálních souborů s ignoracemi může být zvolena složka." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Najít skryté soubory a složky" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Prohledat skryté soubory a složky." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Sledovat odkazy souborů" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Zap: Porovná soubor na který odkaz ukazuje.\n" +"Vyp: Porovná odkazy." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Sledovat odkazy složek" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Zap: Porovná složku na kterou odkaz ukazuje.\n" +"Vyp: Porovná odkazy." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Při porovnávání rozliÅ¡ovat VELKÁ/malá písmena v názvu souboru" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Porovnávání složek bude porovnávat soubory a složky v případě, že se jejich " +"názvy shodují.\n" +"Volbu nastavte, pokud se názvy musí shodovat. (Výchozí pro Windows je Vyp., " +"v ostatních případech Zap.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Rozbalit při načtení vÅ¡echny podsložky" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Zap: Rozbalit vÅ¡echny podsložky při spuÅ¡tění porovnání složek.\n" +"Vyp.: Ponechat podsložky sbalené." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Přeskočit hlášení stavu složky" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Zap.: Nezobrazovat stav porovnání složky.\n" +"Vyp.: Zobrazit stavový dialog při spuÅ¡tění." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Režim porovnávání souborů" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binární porovnávání" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binárně porovnává každý soubor. (Výchozí)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Důkladná analýza" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Provede důkladnou analýzu a zobrazí statistické informace ve zvláštních " +"sloupcích.\n" +"(Pomalejší než binární porovnávání, mnohem pomalejší pro binární soubory.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Důvěřovat velikosti a datu změny (nejisté)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Předpokládá se, že soubory jsou shodné, pokud se shoduje jejich datum změny " +"a velikost.\n" +"Soubory se stejným obsahem, ale rozdílným datem změny. budou považovány za " +"rozdílné.\n" +"Vhodné pro velké složky, nebo pomalé sítě." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Důvěřovat velikosti a datu, ale pokud se datum neshoduje, porovnat binárně " +"(nejisté)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Předpokládá se, že soubory jsou shodné, pokud se shoduje jejich délka a " +"datum změny.\n" +"Pokud se data neshodují, ale velikost ano, bude použito binární " +"porovnávání.\n" +"Vhodné pro velké složky, nebo pomalé sítě." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Důvěřovat velikosti (nejisté)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Předpokládá se, že soubory jsou shodné, pokud je shodná jejich délka.\n" +"Vhodné pro velké složky, nebo pomalé sítě, pokud bude datum upraven při " +"stahování." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Synchronizovat složky" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Nabízí uložení souborů v obou složkách,\n" +"takže jsou potom obě složky stejné.\n" +"Funguje pouze při porovnávání dvou složek bez určení cíle." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Při rozdílech v mezerách pokládat za shodné" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Pokud se soubory liší pouze v mezerách, považují se za shodné.\n" +"Aktivní pouze pokud je vybrána volba Důkladná analýza." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopírovat novější namísto sloučení (nejisté)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Nedívat se dovnitř souboru, ale použít novější soubor.\n" +"(Použít jen pokud víte co děláte.)\n" +"Účinné pouze při porovnávání dvou složek." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Zálohovat soubory (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Pokud by byl soubor uložen přes starý soubor, pak bude původní soubor\n" +"uložen s příponou '.orig' místo toho, aby byl smazán." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Místní nastavení" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Použít stejné kódování pro vÅ¡echny:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Zapnout, pokud si přejete změnit vÅ¡echna kódování pouze podle změny " +"prvního.\n" +"Vypnout, pokud je požadováno rozdílné nastavení." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Pozn.: Místní kódování je \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Kódování souboru A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Pokud je volba zapnuta, bude rozeznáno kódování Unicode (UTF-16 a UTF-8).\n" +"Pokud není soubor Unicode, pak bude vybrané kódování použito jako náhradní.\n" +"(Detekce Unicode závisí na prvním bajtu souboru.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Automaticky rozeznat Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Kódování souboru B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Kódování souboru C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kódování souboru pro výstup sloučení a uložení:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automaticky vybrat" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Pokud je volba zapnuta, bude použito kódování ze vstupního souboru.\n" +"V nejasných případech bude uživatel dotázán dialogem na výběr kódování pro " +"uložení." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Kódování souboru pro soubory předběžného zpracování:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Jazyky čtené zprava doleva" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Některé jazyky se čtou zprava doleva.\n" +"Tato volba podle toho upraví prohlížeč a editor." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integrace" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Nastavení integrace" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Ignorovat volby příkazového řádku:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Seznam voleb příkazového řádku, které by měly být ignorovány, pokud je " +"KDiff3 používán jinými nástroji.\n" +"Může být použito několik hodnot pokud jsou odděleny ';'\n" +"Tímto bude potlačena chyba \"Unknown option\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Ukončit také klávesou Escape" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Rychlý způsob ukončení.\n" +"Pro ty, kteří jsou zvyklí používat klávesu Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Budou obnovena vÅ¡echna nastavení. Nikoliv pouze aktuální téma." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Příkaz předběžného zpracování: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Následující vámi vybraná volba může změnit data:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Pravděpodobně není během slučování požadováno.\n" +"Přejete si toto nastavení vypnout, nebo pokračovat s tímto nastavením " +"aktivním?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Volba je pro slučování nejistá" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Použít tuto volbu během slučování" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Zakázat nebezpečné volby" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Načítám A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Načítám A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Načítám B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Načítám B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Rozdíly: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Rozdíly řádků: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Načítám C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Načítám C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Rozdíly: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Rozdíly: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Rozdíly řádků: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Rozdíly řádků: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"VÅ¡echny vstupní soubory obsahují stejný text, ale nejsou binárně shodné." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Soubor %1 a %2 obsahuje stejný text, ale není binárně shodný. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Některé vstupní soubory nevypadají jako čistě textové soubory.\n" +"Vezměte na vědomí, že slučování v KDiff3 nebylo myÅ¡leno pro binární data.\n" +"Pokračování na vlastní riziko." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Některé vstupní znaky nemohly být převedeny do platného unicode.\n" +"Možná používáte Å¡patný převodník (např. UTF-8 pro soubory v ne-UTF-8).\n" +"Neukládejte výsledek, pokud si nejste jisti. Pokračujte na vlastní riziko.\n" +"Dotčené vstupní soubory jsou v %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "PřeruÅ¡it" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Otevírám soubory..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Vyjímám výběr..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopíruji výběr do schránky..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Vkládám obsah schránky..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Zalamování slov (Zručit vypne zalamování slov)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Počítám maximální šířku pro vodorovný posuvník" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Uložit a pokračovat" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Pokračovat bez ukládání" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Vyhledávání dokončeno." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Vyhledávání dokončeno" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Není nic vybráno v žádném vstupním okně rozdílů." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Chyba ručního přidávání rozsahu k porovnání" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "Z&ruÅ¡it" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Prohodit %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopírovat %1->Výstup" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Prohodit %1<->Výstup" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Nastavit..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Otevřít složku" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Vyberte výstupní soubor" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "VÅ¡echny soubory (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Hledat text:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "RozliÅ¡ovat VELKÁ/malá" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Prohledat A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Prohledat B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Prohledat C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Prohledat výstup" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Hledat" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Testovat regulární výraz" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Příklad řádku automatického sloučení:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Pro vyzkouÅ¡ení automatického sloučení zkopírujte řádek z vaÅ¡eho souboru." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Výsledek shody:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Příklad počátečního řádku historie (včetně úvodního komentáře):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Zkopírujte úvodní řádek historie z vaÅ¡eho souboru\n" +"včetně úvodního komentáře." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Klíč k setřídění historie:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Příklad počátečního řádku záznamů historie (bez úvodního komentáře):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Zkopírujte úvodní řádek záznamů historie z vaÅ¡eho souboru,\n" +"avÅ¡ak vynechte úvodní komentář." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Výsledek klíče k setřídění:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Shoda úspěšná." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Shoda selhala." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Levé a pravé závorky se do regulárního výrazu nehodí." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Zápis dat schránky do dočasného souboru selhal." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Ze schránky" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 není místní soubor." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Dočasný soubor je: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Předběžné zpracování zřejmě selhalo. Zkontrolujte příkaz:\n" +"\n" +" %1\n" +"\n" +"Příkaz předběžného zpracování bude nyní vypnut." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Soubor %1 je pro zpracování velký. Přeskakuji." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Předběžné zpracování shody řádku zřejmě selhalo. Zkontrolujte příkaz:\n" +"\n" +" %1\n" +"\n" +"Příkaz předběžného zpracování shody řádku bude nyní vypnut." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Očekávána mezera po ukončující uvozovce." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Neodpovídají si uvozovky." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Neočekávaná uvozovka uvnitř argumentu." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Nebyl zadán program." \ No newline at end of file diff --git a/po/cs/kdiff3fileitemactionplugin.po b/po/cs/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..6b8cffe --- /dev/null +++ b/po/cs/kdiff3fileitemactionplugin.po @@ -0,0 +1,92 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Vít Pelčák , 2011, 2013, 2018, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2018-06-11 12:45+0100\n" +"Last-Translator: Vit Pelcak \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.04.1\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Porovnat s %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Sloučit s %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Uložit '%1' na později" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Trojcestné sloučení se základem" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Porovnat s..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Vymazat seznam" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Porovnat" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Trojcestné porovnání" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "O modulu nabídky KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" \ No newline at end of file diff --git a/po/cy/kdiff3.po b/po/cy/kdiff3.po new file mode 100644 index 0000000..fd68b31 --- /dev/null +++ b/po/cy/kdiff3.po @@ -0,0 +1,3333 @@ +msgid "" +msgstr "" +"Project-Id-Version: ../cy/messages//kdeextragear-1/kdiff3.po\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2004-09-20 15:44+0200\n" +"Last-Translator: Thierry Vignaud \n" +"Language-Team: cy \n" +"Language: cy\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Allan o Gof." + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "&Directory" +msgid "Making folder: %1" +msgstr "&Cyfeiriadur" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "&Directory" +msgid "Removing folder: %1" +msgstr "&Cyfeiriadur" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "&Directory" +msgid "Reading folder: %1" +msgstr "&Cyfeiriadur" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "dim ar gael" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Arddull pen y llinell:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Arddull pen y llinell:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Diwedd" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "File..." +msgid "Open File" +msgstr "Ffeil..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Cyfuno" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Wedi'i wneud." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +#| msgid "Error." +msgid "Error" +msgstr "Gwall." + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Enw" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Gweithrediad" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Cyflwr" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Gwyn" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Ailsyllu" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Gwall agor ffeil" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Saving file..." +msgid "Scanning folders..." +msgstr "Yn cadw ffeil..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "&Directory" +msgid "Reading Folder A" +msgstr "&Cyfeiriadur" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "&Directory" +msgid "Reading Folder B" +msgstr "&Cyfeiriadur" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "&Directory" +msgid "Reading Folder C" +msgstr "&Cyfeiriadur" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Parod." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Math" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Maint" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "File..." +msgid "File" +msgstr "Ffeil..." + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Cyswllt : " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "dim ar gael" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "" +"Merge\n" +"File" +msgstr "Cyfuno" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, fuzzy, kde-format +msgid "Config Option Error:" +msgstr "Gwall agor ffeil" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Gwall agor ffeil" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +#| msgid "Ready." +msgid "Reload" +msgstr "Parod." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Terfynu'r cymhwysiad" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Torri'r adran dewisiedig a'i roi ar y gludfwrdd" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copïo'r adran dewisiedig i'r gludfwrdd" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "Gludo cynnwys y gludfwrdd i'r fan wirioneddol" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Galluogi/analluogi'r bar cyflwr" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "" +"Prev\n" +"Conflict" +msgstr "Gwrthdrawiadau" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "" +"Next\n" +"Conflict" +msgstr "Gwrthdrawiadau" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "dim detholiad" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Gorffen heb gadw" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Yn cadw ffeil..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +#| msgid "Printing..." +msgid "Printing..." +msgstr "Argraffu..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Dewisiad" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Terfynu..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Dangos/cuddio'r bar offer..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Dangos/cuddio'r bar cyflwr..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +#| msgid "Configure..." +msgid "Configure KDiff3" +msgstr "Ffurfweddu..." + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +#| msgid "File..." +msgid "&File" +msgstr "Ffeil..." + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Cyfuno" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Ffenestr" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Cyswllt : " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, fuzzy, kde-format +msgid "Comparing file..." +msgstr "Yn cadw ffeil..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Gwrthdrawiadau" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Allbwn" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "Conflict" +msgstr "Gwrthdrawiadau" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Ffeil..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Ungôd" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Lladin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +#| msgid "Configure..." +msgid "Configure" +msgstr "Ffurfweddu..." + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Lliw" + +#: optiondialog.cpp:596 +#, fuzzy, kde-format +msgid "Colors Settings" +msgstr "Gosodiadau Rhanbarthol" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Lliw blaendir:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Lliw'r cefndir:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Golygydd" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Maint tab:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Ffenestr" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "dim detholiad" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "" + +#: optiondialog.cpp:839 +#, fuzzy, kde-format +msgid "Diff Settings" +msgstr "Gosodiadau Rhanbarthol" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Cyfuno" + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "Gosodiadau Rhanbarthol" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Dewis gyda llaw" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Gosodiadau Rhanbarthol" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, fuzzy, kde-format +msgid "Auto Select" +msgstr "dim detholiad" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, fuzzy, kde-format +msgid "Integration" +msgstr "Gweithrediad" + +#: optiondialog.cpp:1436 +#, fuzzy, kde-format +msgid "Integration Settings" +msgstr "Gosodiadau Rhanbarthol" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Erthylu" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Yn torri'r dewisiad..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Yn copïo'r dewisiad i'r clipfwrdd..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Yn mewnosod cynnwys y clipfwrdd..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Ffurfweddu..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "File..." +msgid "Open Folder" +msgstr "Ffeil..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, fuzzy, kde-format +msgid "Search text:" +msgstr " &Chwilio" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Llythrennau mawr/bach o bwys" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr " &Chwilio" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/da/kdiff3.po b/po/da/kdiff3.po new file mode 100644 index 0000000..01319c3 --- /dev/null +++ b/po/da/kdiff3.po @@ -0,0 +1,3725 @@ +# translation of kdiff3.po to +# Danish translation of kdiff3 +# Copyright (C). +# +# Erik Kjær Pedersen , 2003, 2004, 2005, 2006, 2007. +# Martin Schlander , 2008. +# Martin Schlander , 2009, 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2011-09-03 19:27+0200\n" +"Last-Translator: Martin Schlander \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Martin Schlander" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "mschlander@opensuse.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Henter filstatus: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Læser fil: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Skriver fil: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Ude af hukommelse" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Opretter mappe: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Fjerner fil: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Fjerner fil: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Laver symbolsk link: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Omdøber fil: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopierer fil: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Læser fil: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Giver en liste af mappe: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Fejl med datatab:\n" +"Hvis dette er reproducerbart sÃ¥ kontakt venligst udviklerne.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Alvorlig intern fejl" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Alvorlig intern fejl" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Alvorlig intern fejl" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "Linjen er ikke tilgængelig" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Tegnsæt:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Linjeslut-stil:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (Basis):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Tegnsæt:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Linjeslut-stil:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Toplinje" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Slut" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Åbner filer..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopiér A til B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopiér B til A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Slet A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Slet B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Slet A & B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Indflet til A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Indflet til B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Indflet til A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Slet (hvis det eksisterer)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Indflet" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Indflet (manuelt)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Fejl: Filtyper i konflikt" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Fejl: Ændret og slettet" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Fejl: Datoer er ens men filer er ikke." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Færdig." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Fejl" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Sprunget over." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Ikke gemt." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "I fremgang..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "At gøre." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Navn" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operation" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Uløst" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Løst" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Ikke-hvid" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Hvid" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Du er ved at udføre en mappeindfletning. Er du sikker pÃ¥ at du ønsker at " +"afbryde indfletningen og scanne mappen igen?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Advarsel" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Genscan" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Fortsæt med indfletning" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Det mislykkedes at Ã¥bne mapper:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Mappen A \"%1\" eksisterer ikke eller er ikke en mappe.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Mappen B \"%1\" eksisterer ikke eller er ikke en mappe.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Mappen C \"%1\" eksisterer ikke eller er ikke en mappe.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Fejl ved Ã¥bning af fil" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"MÃ¥lmappen kan ikke være den samme som A eller B nÃ¥r tre mapper flettes " +"sammen.\n" +"Tjek igen før du fortsætter." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parameteradvarsel" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Scanner mapper..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Læser fil: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Læser fil: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Læser fil: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Nogle undermapper kunne ikke læses i" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Tjek tilladelser for undermapperne." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Klar." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Antal manuelle indfletninger:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Dette pÃ¥virker alle indfletningsoperationer." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Ændrer alle indfletningsoperationer" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Behandler" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Denne operation er ikke mulig for øjeblikket." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operation ikke mulig" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Der opstod en fejl mens der kopieredes.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Indfletningsfejl" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Ukendt indfletningsoperation. (Dette skulle ikke kunne ske!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Ukendt indfletningsoperation." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Indfletningen er ved at begynde.\n" +"\n" +"Vælg \"Gør det\" hvis du har læst instruktionerne og ved hvad du gør.\n" +"Valg af \"Simulér det\" vil fortælle dig hvad der ville ske.\n" +"\n" +"Vær klar over at dette program stadig har beta-status og der er INGEN " +"GARANTI overhovedet! Lav sikkerhedskopier af dine vitale data!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Starter indfletning" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Gør det" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulér det" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Det fremhævede element har forskellig type i de forskellige mapper. Vælg " +"hvad der skal gøres." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Ændringsdatoerne for filerne er ens, men filerne er ikke ens. Vælg hvad der " +"skal gøres." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Det fremhævede element er blevet ændret i én mappe og slettet i en anden. " +"Vælg hvad der skal gøres." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Denne operation er ikke mulig lige nu da mappe-indfletningen kører for " +"øjeblikket." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Der opstod en fejl i det sidste skridt.\n" +"Vil du fortsætte med det element der forÃ¥rsagede fejlen eller vil du springe " +"dette element over?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Fortsæt med indfletning efter en fejl" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Fortsæt med det sidste element" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Spring elementet over" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Indfletningsoperation færdig." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Indfletning færdig" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simuleret indfletning færdig: Tjek om du er enig i de foreslÃ¥ede operationer." + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "Der opstod en fejl. Tryk pÃ¥ OK for at se detaljeret information.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Fejl: Under sletning af %1: Det mislykkedes at lave sikkerhedskopi." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "slet mappe rekursivt( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "slet( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Fejl: 'slet mappe'-operation mislykkedes under forsøget pÃ¥ at læse mappen." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Fejl: rmdir( %1 ) operation mislykkedes." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Fejl: slet-operation mislykkedes." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "manuel indfletning( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Bemærk: Efter en manuel indfletning skal brugeren fortsætte ved at " +"trykke pÃ¥ F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Fejl: copy( %1 -> %2 ) mislykkedes. Sletning af eksisterende mÃ¥l mislykkedes." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Fejl: copyLink mislykkedes: Eksterne link er endnu ikke understøttede." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Fejl: copyLink mislykkedes." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copy( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Fejl under rename( %1 -> %2 ): Kan ikke slette eksisterende mÃ¥l." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rename( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Fejl: Omdøbning mislykkedes." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Fejl ved makeDir af %1. Kan ikke slette eksisterende fil." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Fejl ved oprettelse af mappe." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "MÃ¥l" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Type" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Størrelse" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Sidste ændring" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Link-destination" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fil" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Link: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ikke tilgængelig" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Basis): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Gem tilstand for mappesammenfletning som..." + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Start/Fortsæt mappeindfletning" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Kør operation for dette element" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Sammenlign udvalgt fil" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Indflet udvalgt fil" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Sammenflet\n" +"fil" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Fold alle undermapper sammen" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Fold alle undermapper ud" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Vælg A for alle elementer" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Vælg B for alle elementer" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Vælg C for alle elementer" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Auto-vælg operation for alle elementer" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ingen operation for alle elementer" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Vis identiske filer" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identiske\n" +"filer" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Vis forskellige filer" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Vis kun filer i A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Filer\n" +"kun i A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Vis kun filer i B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Filer\n" +"kun i B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Vis filer som kun er i C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Filer\n" +"kun i C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Sammenlign eksplicit markerede filer" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Sammenflet eksplicit markerede filer" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Gør intet" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Slet A && B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Indflet til A && B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Læser fil: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Oprettelse af midlertidig kopi af %1 mislykkedes." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Åbning af %1 mislykkedes." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Fejl ved læsning fra %1" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Det mislykkedes at slette en ældre sikkerhedskopi under " +"sikkerhedskopieringen.\n" +"Filnavn: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Det mislykkedes at ændre navnet under sikkerhedskopieringen\n" +"Filnavne:" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Nuværende konfiguration:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Fejl i indstillingstilvalg:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Tilvalg --auto brugt, men ingen uddatafil angivet." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "Tilvalg --auto ignoreret for mappesammenligning." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Det mislykkedes at gemme." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Det mislykkedes at Ã¥bne disse filer:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fejl ved Ã¥bning af fil" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Åbner dokumenter til sammenligning..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Genindlæs" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "gemmer indfletningsresultatet. Alle konflikter skal løses!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Gemmer dette dokument som..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Udskriv forskellene" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Afslutter programmet" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Udklipper det markerede udvalg og lægger det pÃ¥ udklipsholderen" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopierer det valgte udsnit til udklipsholderen" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Indsætter udklipsholderens indhold pÃ¥ den aktuelle position" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Markér alting i nuværende vindue" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Søg efter en streng" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Søg efter strengen igen" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "SlÃ¥r statuslinjen til/fra" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Indstil KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "GÃ¥ til den aktuelle delta" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Aktuel\n" +"delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "GÃ¥ til første delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Første\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "GÃ¥ til sidste delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Sidste\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Springer over forskelle i blanktegn nÃ¥r \"Vis blanktegn\" er deaktiveret.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Springer ikke over forskelle i blanktegn ogsÃ¥ selvom \"Vis blanktegn\" er " +"deaktiveret.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "GÃ¥ til forrige delta" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Forrige\n" +"delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "GÃ¥ til næste delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Næste\n" +"delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "GÃ¥ til forrige konflikt" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Forrige\n" +"konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "GÃ¥ til næste konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Næste\n" +"konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "GÃ¥ til forrige uløste konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Forrige\n" +"uløste" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "GÃ¥ til næste uløste konflikt" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Næste\n" +"uløste" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Vælg linjer fra A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Vælg\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Vælg linjer fra B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Vælg\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Vælg linjer fra C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Vælg\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "GÃ¥ automatiske til næste uløste konflikt efter kildevalg" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Auto\n" +"næste" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Vis mellemrums && tabulator-tegn for forskelle" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Hvide\n" +"tegn" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Vis blanktegn" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Hvide\n" +"deltaer" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Vis linjenumre" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Linje-\n" +"numre" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Løs simple konflikter automatisk" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Sæt deltaer til konflikter" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Kør automatisk sammenfletning med regulært udtryk" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Løs historikkonflikter automatisk" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Opdel sammenligning ved markering" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Føj markerede sammenligninger sammen" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Vis vindue A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Vis vindue B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Vis vindue V" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normalt overblik" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A vs. B overblik" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A vs. C overblik" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B vs. C overblik" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Tekstombrydning i diff-vinduer" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Tilføj manuel justering af sammenligning" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Ryd alle manuelle justeringer af sammenligning" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokus pÃ¥ næste vindue" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokus pÃ¥ forrige vindue" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "SlÃ¥ opdelt orientering til og fra" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Mappe && tekst opdelt skærmvisning" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Skift mellem Mappe && tekstvisning" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Indfletningsresultatet er ikke blevet gemt." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Gem && afslut" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Afslut uden at gemme" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Det mislykkedes at gemme indfletningsresultatet." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Du er ved at udføre en mappeindfletning. Er du sikker pÃ¥ du ønskler at " +"afbryde?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Gemmer fil..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Gemmer fil med nyt filnavn..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Gem som..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Udskrift er ikke implementeret." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Udskriver..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Markering" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Udskrift færdig." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Udskrift afbrudt." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "GÃ¥r ud..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "SlÃ¥r værktøjslinje til/fra" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "SlÃ¥ statuslinje til/fra..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Indstil KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Kunne ikke initialisere KDiff3 Part.\n" +"Dette sker sædvanligvis pÃ¥ grund af et installationsproblem. Læs venligst " +"README-filen i kildekodepakken for detaljer." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fil" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Indfletningsoperation for dette element" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Synkroniseringsoperation for dette element" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Bevægelse" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iff-visning" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Indflet" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Vindue" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Hovedværktøjslinje" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignoreres. (brugerdefineret)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Værktøj til sammenligning og sammenfletning af filer og mapper" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Indflet inddata." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Eksplicit basisfil. For kompatibilitet med visse værktøjer." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Uddatafil. Implicerer -m. F.eks.: -o nyfil.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Uddatafil, igen. (For kompatibilitet med visse værktøjer.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Ingen GUI hvis alle konflikter er løsbare af sig selv. (Behøver -o fil)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Ignorér" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Synlig navneerstatning for inddatafil 1 (basis)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Synlig navneerstatning for inddatafil 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Synlig navneerstatning for inddatafil 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Alternativ synlig navneerstatning. Angiv dette en gang for hver inddata." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Sæt en indstilling ud af kraft. Brug en gang for hver indstilling, f.eks. --" +"cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Vis liste med indstillinger og nuværende værdier." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Brug en anden indstillingsfil." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "fil1 der skal Ã¥bnes (basis, hvis ikke angivet via --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "fil2 der skal Ã¥bnes" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "fil3 der skal Ã¥bnes" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Blanding af link og normale filer." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Link: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Størrelse. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Dato & Størrelse: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Sammenligner fil..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Vælg A overalt" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Vælg B overalt" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Vælg C overalt" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Vælg A for alle uløste konflikter" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Vælg B for alle uløste konflikter" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Vælg C for alle uløste konflikter" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Vælg A for alle uløste konflikter med blanktegn" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Vælg B for alle uløste konflikter med blanktegn" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Vælg C for alle uløste konflikter med blanktegn" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Antal tilbageværende uløste konflikter: %1 (af hvilke %2 er blanktegn)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Uddata er blevet ændret.\n" +"Hvis du fortsætter vil dine ændringer gÃ¥ tabt." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Alle inddata-filer er binært ens." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Alle inddata-filer indeholder den samme tekst." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Filerne %1 og %2 er binært ens.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Filerne %1 og %2 har ens tekst.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konflikter" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Ikke alle konflikter er løst endnu.\n" +"Filen er ikke gemt.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Konflikter tilovers" + +#: mergeresultwindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Der er en konflikt med stilen pÃ¥ linjeafslutning. Vælg stil pÃ¥ " +"linjeafslutning manuelt.\n" +"Filen blev ikke gemt.\n" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Mislykkedes at oprette sikkerhedskopi. Filen blev ikke gemt." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Fejl ved at gemme fil" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Fejl ved skrivning." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Uddata" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Ændret]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Filtegnsæt for at gemme" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Koder fra" + +#: mergeresultwindow.cpp:3249 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Koder fra" + +#: mergeresultwindow.cpp:3251 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Koder fra" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Basis):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Uddata (frivillig):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fil..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Skift eller kopiér navne..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Frivillig):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"En versionskontrol historikindgang bestÃ¥r af flere linjer.\n" +"Angiv det regulære udtryk for at detektere første linje (uden den indledende " +"kommentar).\n" +"Brug parenteser for at gruppere nøglerne du vil bruge til sortering.\n" +"Hvis dette efterlades tomt, antager Kdiff3 at tomme linjer skiller " +"historikposterne ad.\n" +"Se dokumentationen for detaljer." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Hvert par af parenteser som bruges i det regulære udtryk for " +"historikkensstartindgang\n" +"grupperer en nøgle som kan bruges til sortering.\n" +"Angiv listen med nøgler (som nummereres i den rækkefølge de forekommer\n" +"begyndende med pÃ¥ 1), ved brug af \",\" som skilletegn (f.eks. " +"\"4,5,6,1,2,3,7\").\n" +"Hvis det efterlades tomt, udføres ingen sortering.\n" +"Se dokumentationen for detaljer." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regulært udtryk for linjer hvor Kdiff3 automatisk skal vælge en kilde.\n" +"NÃ¥r en linje med en konflikt matcher det regulære udtryk vælges -C \n" +"om tilgængeligt, ellers vælges B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regulært udtryk for begyndelsen af versionshÃ¥ndteringens historikindgang.\n" +"Som oftest indeholder linjen nøgleordet \"$Log$\".\n" +"Standardværdi: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Ændr dette hvis ikke-ASCII tegn ikke vises rigtigt." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Indstil" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Skrifttype" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Editor & Diff uddata-skrifttype" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Fejl ved at gemme fil" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Farve" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Farveindstillinger" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editor- og forskelsvisninger:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Forgrundsfarve:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Baggrundsfarve:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Diff baggrundsfarve:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Farve A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Farve B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Farve C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Konfliktfarve:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Baggrundsfarve for aktuelt omrÃ¥de:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Diff baggrundsfarve for aktuelt omrÃ¥de:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Farvelæg for manuelt justerede sammenligningsomrÃ¥der:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "Mappesammenligningsvisning:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Farve for nyeste fil:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "At ændre farven fÃ¥r kun virkning nÃ¥r næste mappesammenligning startes." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Farve for ældste fil:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Farve for middelgammel fil:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Farve for manglende filer:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Editor-opførsel" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab indsætter mellemrum" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Til: Tryk pÃ¥ tab genererer et passende antal mellemrum.\n" +"Fra: Et Tab-tegn bliver indsat." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tab-størrelse:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Auto-indrykning" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Til: Indrykningen for den tidligere linje bruges for en ny linje.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Autokopi udvalg" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Til: Enhver markering bliver umiddelbart skrevet til udklipsholderen.\n" +"Fra: Du skal eksplicit kopiere f.eks. via Ctrl-C." + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "Dos/Windows" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Autodetect" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Autodetektér" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Sætter linjeafslutninger for nÃ¥r en redigeret fil gemmes.\n" +"DOS/Windows: CR+LF; UNIX: LF; med CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff-indstillinger" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Behandl som white space." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignorér nummer-tegn i den fase hvor du matcher linjer. (Ligner Ignorér " +"blanktegn.)\n" +"Kan muligvis hjælpe med at sammenligne numeriske data." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Behandl C/C++ kommentarer ligesom blanktegn." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Behandl C/C++ kommentarer ligesom blanktegn." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Behandl som white space." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Behandl forskel mellem store og smÃ¥ bogstaver som ændringer i blanktegn. " +"('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Præprocessor kommando:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Brugerdefineret præ-proces. (Se dokumentationen for detaljer.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Linje-matchende præprocessor kommando:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Denne præ-processor bruges kun nÃ¥r du matcher linjer.\n" +"(Se dokumentationen for detaljer.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Prøv hÃ¥rdt (langsommere)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Aktiverer --minimal tilvalget for den eksterne diff.\n" +"Analysen af store filer vil være meget langsommere." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Justér B og C til 3 input-filer" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Prøv at justere B og C nÃ¥r tre input-filer sammenlignes eller " +"sammenflettes.\n" +"Anbefales ikke til sammenfletning fordi sammenfletning kan blive " +"kompliceret.\n" +"(Standard er \"Fra\".)" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Indflet" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Sammenfletningsindstillinger" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Auto fremad-tøven (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"I Auto-fremad tilstand vil resultatet af det øjeblikkelige valg blive vist\n" +"i det angiven tidsrum tid, før der springes frem til den næste konflikt. " +"OmrÃ¥de: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Vis infodialoger" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Vis en dialog med information om antallet af konflikter." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Standard for 2-fils indfletning af blanktegn:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Manuelt valg" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Tillad indfletningsalgoritmen automatisk at vælge et input for ændringer kun " +"af blanktegn." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Standard for 3-fils indfletning:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automatisk sammenfletning med regulært udtryk" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regulært udtryk for automatisk sammenfletning:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Kør automatisk sammenfletning med regulært udtryk nÃ¥r sammenfletning starter" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Kør automatisk sammenfletning med regulært\n" +"udtryk med det samme nÃ¥r en sammenfletning starter.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Sammenfletning ifølge versionskontrolhistorik" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Regulært udtryk for historikkens begyndelse:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regulært udtryk for historikindgangens begyndelse:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Sortering af historiksammenfletning" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Sortér versionskontrolhistorikken med en nøgle." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Sorteringsnøglernes rækkefølge fra historikpostens begyndelse:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" +"Sammenfletning ifølge versionskontrolhistorik nÃ¥r sammenfletning starter" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Kør automatisk sammenfletning ifølge versionskontrolhistorik nÃ¥r " +"sammenfletning starter." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Maks. antal historikindgange:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Afbryd efter angivet antal. Brug -1 for uendeligt antal indgange." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Test dine regulære udtryk" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Ikke relevant sammenfletningskommando:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Hvis angivet køres dette script efter automatisk sammenfletning\n" +"nÃ¥r ingen andre relevante ændringer blev detekteret.\n" +"Kaldes med parametrene: filnavn1 filnavn2 filnavn3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Gem automatisk og afslut ved sammenfletning uden konflikter" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Hvis KDiff3 startes til filsammenfletning fra kommandolinjen og alle\n" +"konflikter er løsbare uden brugerinteraktion, sÃ¥ gemmes og afsluttes " +"automatisk.\n" +"(Ligesom kommandolinjetilvalget \"--auto\".)" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Rekursive mapper" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "Om undermapper skal analyseres eller ej." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Filmønstre:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mønstre af filer der skal undersøges.\n" +"Jokertegn: '*' og '?'\n" +"Flere mønstre kan angives ved brug af adskillertegnet: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Fil-anti-mønstre:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mønstre af filer der skal udelukkes fra analysen.\n" +"Jokertegn: '*' og '?'\n" +"Flere mønstre kan angives ved brug af adskillertegnet: ';'" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Fil-anti-mønstre:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mønstre af filer der skal udelukkes fra analysen.\n" +"Jokertegn: '*' og '?'\n" +"Flere mønstre kan angives ved brug af adskillertegnet: ';'" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "Brug .cvsignore" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Udvider anti-mønstret til hvadsomhelst der ville blive ignoreret af CVS.\n" +"Via lokale \".cvsignore\"-filer kan dette være specifikt for en enkel mappe." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "Find skjulte filer og mapper" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "Find skjulte filer og mapper" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Følger fil-link" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Til: Sammenlign med filen som linket peger pÃ¥.\n" +"Fra: Sammenlign link." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Følger fil-link" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Til: Sammenlign med filen som linket peger pÃ¥.\n" +"Fra: Sammenlign link." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Versalfølsom filnavnesammenligning" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Mappesammenligning sammenligner filer eller mapper nÃ¥r deres navne matcher.\n" +"Angiv dette tilvalg hvis navnenes versaltilstand skal matche. " +"(Standardværdien for Windows er fra, ellers til.)" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "Fold alle undermapper ud" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Filsammenligningstilstand" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binær sammenligning" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binær sammenligning af hver fil. (Standard)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Fuld analyse" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Udfør en fuld analyse og vis statistisk information i ekstra søjler.\n" +"(Langsommere end en binær sammenligning, meget langsommere for binære filer.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Stol pÃ¥ størrelsen og ændringsdatoen (usikkert)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Antag at filer er ens hvis ændringsdatoen og filstørrelsen er ens.\n" +"Filer med ens indhold men forskellig ændringsdatoer vil se forskellige ud.\n" +"Nyttigt til store mapper og langsomme netværk." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Stol pÃ¥ størrelse og dato, men brug binær sammenligning hvis dato ikke " +"matcher (usikkert)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Antag at filer er ens hvis ændringsdatoen og filstørrelsen er ens.\n" +"Hvis datoen ikke er ens men størrelsen er, bruges binær sammenligning.\n" +"Nyttig til store mapper eller langsomme netværk." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Stol pÃ¥ størrelsen (usikker)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Antag at filer er ens hvis deres fillængder er ens.\n" +"Nyttigt for store mapper eller langsomme netværk, nÃ¥r datoen er ændret efter " +"filer er hentet." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Synkronisér mapper" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Tilbyder at opbevare filer i begge mapper sÃ¥\n" +"begge mapper er ens bagefter.\n" +"Virker kun nÃ¥r to mapper sammenlignes uden at angive nogen destination." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Forskelle i blanktegn anses for ens" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Hvis filer kun adskiller sig med blanktegn, anses dem for ens.\n" +"Dette er kun aktiveret nÃ¥r fuldstændig analyse vælges." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopiér nyere i stedet for at indflette (usikker)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Kig ikke indeni, tag blot den nyere fil.\n" +"(Brug kun dette hvis du ved hvad du foretager dig!)\n" +"Kun effektivt nÃ¥r to mapper sammenlignes." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Sikkerhedskopieringsfiler (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Hvis en fil ville blive gemt over en gammel fil, sÃ¥ vil den gamle\n" +"fil blive omdøbt med en '.orig'-endelse i stedet for at blive slettet." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regionsindstillinger" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Brug samme tegnsæt til alt:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"At aktivere dette lader dig ændre alle tegnsæt ved at kun ændre den første.\n" +"Deaktivér det hvis forskellige individuelle indstillinger behøves." + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Bemærk: Lokalt tegnsæt er " + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Filtegnsæt for A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Hvis aktiveret detekteres Unicode-tegnsæt (UTF-16 eller UTF-8).\n" +"Hvis filen ikke er Unicode, bruges det valgte tegnsæt som reserve.\n" +"(Detektering af Unicode afhænger af de første bytes i en fil.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Detektér Unicode automatisk" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Filtegnsæt for B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Filtegnsæt for C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Filtegnsæt for sammenflettede uddata og nÃ¥r der gemmes:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automatisk markering" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Hvis aktiveret bruges inddatafilernes kodning.\n" +"I tvetydige tilfælde bedes brugeren om at vælge kodning at gemme med via en " +"dialog." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Filtegnsæt for forbehandlingsfiler:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Sprog som læses fra højre til venstre" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Nogle sprog læses fra højre til venstre.\n" +"Indstillingen ændrer visningen og editoren pÃ¥ tilsvarende mÃ¥de." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integrering" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integreringsindstillinger" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Kommandolinjeflag at ignorere:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Liste med kommandolinjeflag som skal ignoreres nÃ¥r Kdiff3 bruges af andre " +"værktøjer.\n" +"Flere værdier kan angives hvis de adskilles af ';'\n" +"Dette undertrykker fejlmeddelelsen \"Ukendt flag\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Afslut ogsÃ¥ med Escape-tasten" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Hurtig metode til afslutning.\n" +"For dem der er vant til at bruge Escape-tasten." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Dette nulstiller alle tilvalg. Ikke kun dem der angÃ¥r dette emne." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Præprocessor kommando:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Følgende tilvalg du valgte vil muligvis ændre data:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Mest sandsynligt ikke ønsket under en indfletning.\n" +"Ønsker du at deaktivere disse indstillinger eller fortsætte med disse " +"indstillinger aktive?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Tilvalg usikkert ved en indfletning" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Brug disse tilvalg under en indfletning" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Deaktivér usikre tilvalg" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Indlæser A" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Indlæser A" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Indlæser B" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "Indlæser A" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linjeforskel: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Indlæser C" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "Indlæser A" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linjeforskel: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linjeforskel: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Alle inddata-filer indeholder den samme tekst, men er ikke binært " +"ækvivalente." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Filerne %1 og %2 har samme tekst men er ikke binært ens.\n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Nogle inddatafiler synes ikke at være rene tekstfiler.\n" +"Bemærk at KDiff3-indfletningen ikke er beregnet til binære data.\n" +"Fortsæt pÃ¥ eget ansvar." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Nogle input-tegn kunne ikke konverteres til gyldig unicode.\n" +"Du bruger mÃ¥ske et forkert codec (f.eks. UTF-8 for filer der ikke er " +"UTF-8).\n" +"Hvis du er i tvivl sÃ¥ gem ikke resultatet. Fortsæt pÃ¥ eget ansvar.\n" +"De omfattede input-filer er i %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Afbryd" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Åbner filer..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Klipper valgene ud..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopierer markering til udklipsholderen..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Indsætter udklipsholderens indhold..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Gem && Fortsæt" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Fortsæt uden at gemme" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Søgning færdig." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Søgning færdig" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ingenting er markeret i inddatavindue med sammenligning." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Fejl ved tilføjelse manuelt sammenligningsomrÃ¥de" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Annullér" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Skift %1 ud mod %2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopiér %1 til uddata" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Skift %1 ud mod uddata" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Indstil..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Åbner filer..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Søgetekst:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Versalfølsom" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Gennemsøg A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Gennemsøg B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Gennemsøg C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Søgeuddata" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Søg" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Test af regulære udtryk" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Eksempel pÃ¥ linje for automatisk sammenfletning:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"For at teste automatisk sammenfletning, kopieres en linje som bruges i dine " +"filer." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Matchningsresultat:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Eksempel pÃ¥ startlinje for historik (med indledende kommentar):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopiér en startlinje for historik som bruges i dine filer,\n" +"inkluderende den indledende kommentar." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Sorteringsnøglerækkefølge for historik:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Eksempel pÃ¥ startlinje for en historikindgang (uden indledende kommentar):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopiér en startlinje for en historikindgang som bruges i dine filer,\n" +"men udelad den indledende kommentar." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sorteringsnøgleresultat:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Matchning lykkedes." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Matchning mislykkedes." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Start- og slutparentes matcher ikke i regulært udtryk." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Skrivning af udklipsholderdata til midlertidig fil mislykkedes." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Fra udklipsholderen" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Blanding af link og normale filer." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Forbehandling mislykkedes muligvis. Tjek denne kommando:\n" +"\n" +" %1\n" +"\n" +"Forbehandlingskommandoen vil blive deaktiveret nu." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Forbehandlingen af linje-matchning mislykkedes muligvis. Tjek denne " +"kommando:\n" +"\n" +" %1\n" +"\n" +"Forbehandlingskommandoen til linje-matchning vil blibe deaktiveret nu." + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Forventer mellemrum efter afsluttende apostrof." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Uventet apostrof i argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Intet program angivet." \ No newline at end of file diff --git a/po/da/kdiff3fileitemactionplugin.po b/po/da/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..4734cea --- /dev/null +++ b/po/da/kdiff3fileitemactionplugin.po @@ -0,0 +1,121 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Martin Schlander , 2011. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2011-05-08 11:28+0200\n" +"Last-Translator: Martin Schlander \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kdiff3fileitemaction.cpp:81 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Sammenlign med %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Sammenflet med %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Gem \"%1\" til senere" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-vejssammenfletning med basis" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Sammenlign med..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Ryd listen" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Sammenlign" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3-vejssammenligning" + +#: kdiff3fileitemaction.cpp:162 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "Om KDiff3's menu-plugin..." + +#: kdiff3fileitemaction.cpp:270 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"KDiff3 File Item Action Plugin: Ophavsret (C) 2011 Joachim Eibl\n" +"KDiff3s hjemmeside: http://kdiff3.sourceforge.net\n" +"\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Brug af kontekstmenu-udvidelsen:\n" +"Til simpel sammenligning af to markerede filer vælges \"Sammenlign\".\n" +"Hvis den anden fil er et andet sted, sÃ¥ \"Gem\" den første fil til senere, " +"og den vil fremgÃ¥ af undermenuen \"Sammenlign med...\". Brug sÃ¥ \"Sammenlign " +"med\" pÃ¥ den anden fil.\n" +"Til en 3-vejssammenfletning, skal du først \"Gemme\" basisfilen, derefter " +"den branch der skal indflettes og vælg endelig \"3-vejssammenfletning med " +"basis\" pÃ¥ den anden branch, som vil blive brugt som destination.\n" +"Det samme gælder for sammenligning og sammenfletning af mapper." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Om KDiff3 File Item Action-plugin" \ No newline at end of file diff --git a/po/de/diff_ext.po b/po/de/diff_ext.po new file mode 100644 index 0000000..0c9c8d8 --- /dev/null +++ b/po/de/diff_ext.po @@ -0,0 +1,129 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Burkhard Lück , 2018, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-04-28 08:25+0200\n" +"Last-Translator: Burkhard Lück \n" +"Language-Team: German \n" +"Language: de\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" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Mit %1 vergleichen" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Mit %1 zusammenführen" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "3-Wege-Zusammenführung mit Basis" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "„%1“ für später speichern" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Vergleichen mit ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Liste leeren" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Vergleichen" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3-Wege-Vergleich" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Über Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Alle Rechte vorbehalten.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Diese Software wird unter der Lizenz BSD-2-Clause verteilt.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Einige Erweiterungen f+r KDiff3 (c) 2006-2013 von Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Portiert zu Qt5/Kf5 von Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Webseite von Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Über Diff-Ext für KDiff3 (64 Bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Ausgewählte Dateien vergleichen" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "„%1“ mit „%2“ vergleichen" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "„%1“ für spätere Operation speichern" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" +"KDiff3 kann nicht gestartet werden. Bitte installieren Sie KDiff3 erneut." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Befehl" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Befehlszeile" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext für KDiff3" \ No newline at end of file diff --git a/po/de/docs/kdiff3/index.docbook b/po/de/docs/kdiff3/index.docbook new file mode 100644 index 0000000..3fe286a --- /dev/null +++ b/po/de/docs/kdiff3/index.docbook @@ -0,0 +1,4133 @@ + +KDiff3"> + + + + ASCII"> +]> + + + + + + +Das Handbuch zu &kdiff3; + + + Michael Reeves
reeves.87@gmail.com +
+
+ Joachim Eibl
joachim.eibl at gmx.de +
+
+ThomasReitelbach
tr@erdfunkstelle.de
Deutsche Übersetzung
+
+ + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +2019-02-22 +1.08.70 + + + +&kdiff3; ist ein Programm zum Anzeigen von Unterschieden und zum Zusammenführen von Dateien und Ordnern. +vergleicht zwei oder drei Textdateien bzw. Ordner und führt sie zusammen, +kann Unterschiede zeilenweise und sogar Zeichen für Zeichen anzeigen, +hat eine Funktion zum automatischen Zusammenführen, +enthält einen speziellen komfortablen Editor zum Auflösen von Konflikten beim Zusammenführen, +ist mit Hilfe von KIO Netzwerktransparent, +kann Unterschiede in Leerräumen oder Kommentaren besonders hervorheben oder ausblenden. +unterstützt Unicode, UTF-8 und weitere Dateikodierungen. +druckt Abweichungen, +unterstützt Schlüsselwörter für Versionsverwaltung und Verlauf-Zusammenführung. + +Dieses Dokument beschreibt &kdiff3; in der Version 1.9. + + + + + +KDE +kdiff3 +vergleichen +zusammenführen +CVS +dreifach-vergleichen +vergleichen +Dateien +Ordner +Ordner +Versionskontrolle +Drei-Wege-Zusammenführen +Unterschiede innerhalb einer Zeile +synchronisieren +kpart +kio +netzwerktransparent +Editor +Leerraum +Kommentare + + +
+ +Einführung +Noch eine Oberfläche zu Diff? +Es gibt viele grafische Werkzeuge zum Vergleichen. Warum also &kdiff3;? Lassen Sie mich kurz erklären, warum ich das Programm geschrieben habe. &kdiff3; wurde programmiert, weil ich eine sehr komplizierte Zusammenführung durchzuführen hatte. Zusammenführen wird dann nötig, wenn mehrere Personen an der gleichen Datei in einem Projekt arbeiten. Wenn das verwendete Werkzeug zum Zusammenführen nicht nur die geänderten Dateien (Branch genannt), sondern auch die Originale (Basis) zur Verfügung hat, kann das Zusammenführen gewissermaßen automatisiert werden. Das Programm wird dann automatisch die in der Branch gemachten Änderungen auswählen. Doch wenn mehrere Beitragende die gleichen Zeilen ändern, wird ein Konflikt erkannt. Solch ein Konflikt muss dann von Hand aufgelöst werden. Die Zusammenführung war sehr kompliziert, weil einer der Beitragenden viele Änderungen vorgenommen und gleichzeitig an vielen Stellen die Einrückung korrigiert hatte. Ein weiterer Programmierer hatte in der gleichen Datei viel Text verändert. Das Ergebnis waren zahlreiche Konflikte beim Zusammenführen. Das von mir benutzte Programm zeigte mir nur die geänderten Zeilen an, ich konnte aber nicht sehen, was genau sich innerhalb dieser Zeilen geändert hatte. Und es gab keinerlei Hinweise auf die Stellen, wo sich vielleicht nur die Einrückung geändert hatte. Das Zusammenführen dieser Änderungen war ein kleiner Albtraum. Das war also der Beginn. Die erste Version von &kdiff3; konnte Unterschiede innerhalb einer Zeile und Änderungen an Leerräumen darstellen. Später wurden noch jede Menge weiterer nützlicher Funktionen hinzugefügt. Wenn Sie zum Beispiel schnell Text vergleichen möchten, kopieren Sie ihn einfach in die Zwischenablage und fügen ihn in eines der Vergleichsfenster ein. Eine Funktion die viel Arbeit machte, war das Vergleichen und Zusammenführen von Ordnern. Diese Funktion verwandelte &kdiff3; beinahe in einen vollwertigen Datei-Browser. Ich hoffe, dass Sie viel Nutzen an &kdiff3; haben und wünsche Ihnen viel Freude! Joachim Eibl (2003) + + +Bildschirmfotos und Funktionen +Dieses Bildschirmfoto zeigt die Unterschiede zwischen zwei Textdateien in einer alten Version von &kdiff3;: + + + + +Auch 3-Wege-Zusammenführen wird vollständig unterstützt. Dies ist nützlich, wenn zwei Personen unabhängig voneinander an einem Quelltext arbeiten und Änderungen vornehmen. Die Originaldatei (die Basis) hilft &kdiff3; beim automatischen Auswählen der jeweils korrekten Änderungen. Der Zusammenführungs-Editor unter den Diff-Fenstern ermöglicht das Auflösen von Konflikten und zeigt gleichzeitig das zu erwartende Ergebnis an. In diesem Editor können Sie das Ergebnis sogar direkt bearbeiten. Das Bildschirmfoto zeigt drei Quell-Dateien beim Zusammenführen: + + + + + +&kdiff3; hilft Ihnen auch beim Vergleichen und Zusammenführen kompletter Ordner. Dieses Bildschirmfoto zeigt &kdiff3; beim Ordnerzusammenführen: + + + + + + +Weitere Funktionen +Zeilen- und sogar zeichenweises Darstellen von Unterschieden +&kdiff3; zeigt die exakten Unterschiede an und bedient sich dazu der Möglichkeiten heutiger Farbmonitore. Wenn Sie häufig Quelltexte überprüfen müssen, werden Sie diese Funktion mögen. + + + + + +Erkennen von Unterschieden in Leerräumen auf einen Blick +Unterschiede in Leerräumen und Tabulatoren werden sichtbar dargestellt. Wenn sich Zeilen nur in einer gewissen Anzahl an Leerräumen unterscheiden, kann man das auf einen Blick an der Zusammenfassung in der Spalte an der linken Seite sehen. (Kein Ärger mehr, wenn Jemand die Einrückung ändert.) + + + + + +3-Wege-Vergleichen +Man kann drei Dateien analysieren und sehen, wo sie sich unterscheiden. Das linke/mittlere/rechte Fenster hat den Namen A/B/C und ist entsprechend blau/grün/magenta eingefärbt. Wenn eine Datei gleich ist, und die andere sich in einer Zeile unterscheidet, dann zeigt die Farbe an, welche Datei unterschiedlich ist. Rote Farbe bedeutet, dass beide sich Dateien unterscheiden. + + + + + +Komfortables zusammenführen von zwei oder drei Dateien +Mit &kdiff3; kann man zwei oder drei Dateien zusammenführen. Dabei führt &kdiff3; so viel wie möglich automatisch zusammen. Das Ergebnis wird in einem editierbaren Fenster angezeigt, dort können die meisten Konflikte schon mit einem einfachen Mausklick gelöst werden: Wählen Sie Knöpfe ... in den Fenstern A/ B/C, um die zu benutzende Quelle auszuwählen. Sie können auch mehr als eine Quelle wählen. Weil das Fenster im Grunde ein Editor ist, können hier selbst Konflikte, die eine weitere Bearbeitung erfordern, einfach aufgelöst werden. Sie benötigen dazu keine weiteren Hilfsmittel. + + +Und ... + + Schnelle Navigation über Knöpfe. + Ein Mausklick in die Zusammenfassungs-Spalte gleicht alle Fenster ab, sodass alle die gleiche Stelle anzeigen. + Kopieren Sie eine Auswahl aus irgendeinem Fenster einfach in das Ergebnisfenster. + Die Übersichtsspalte zeigt an, wo sich Änderungen und Konflikte befinden. + Die Farben sind an Ihre Bedürfnisse anpassbar. + Die Größe von Unterfenstern ist veränderbar. + Es gibt die Option, anstelle von Tabulatoren Leerzeichen einzufügen. + Bequemes Öffnen von Dateien über einen Dialog oder über die Befehlszeile. + Suchen mit BearbeitenSuchtext (&Ctrl;F) und Weitersuchen mit BearbeitenWeitersuchen (F3) nach bestimmten Zeichenfolgen in allen Textfenstern. + Anzeigen der Zeilennummer zu jeder Zeile. + Einfügen aus der Zwischenablage oder das Ziehen von Text in ein Vergleichsfenster. + Netzwerktransparenz durch KIO. + &kdiff3; kann als Anzeigemodul in &kdevelop; 3 genutzt werden, um Unterschiede anzuzeigen. + Zeilenumbruch für lange Zeilen + Unterstützung für Unicode, UTF-8 und weitere Kodierungen. + Unterstützung für Sprachen, die von rechts nach links geschrieben werden. + ... + + + + + +Dateivergleichsmethode: + +Befehlszeilen-Optionen + +Vergleichen von zwei Dateien: +kdiff3 datei1 datei2 + + + +Zusammenführen von zwei Dateien: +kdiff3 datei1 datei2 -m + kdiff3 datei1 datei2 -o ausgabedatei + + + +Vergleichen von drei Dateien: +kdiff3 datei1 datei2 datei3 + + + +Zusammenführen von drei Dateien: +kdiff3 datei1 datei2 datei3 -m + kdiff3 datei1 datei2 datei3 -o ausgabedatei + +Beachten Sie, dass datei1 als Basis für datei2 und datei3 verwendet wird. + + +Spezialfall: Dateien mit gleichem Namen +Wenn alle Dateien den gleichen Namen haben, aber in verschiedenen Ordnern liegen, dann können Sie sich die Tipparbeit erleichtern, indem Sie nur den Dateinamen der ersten Datei vollständig ausschreiben. ⪚: +kdiff3 Ordner1/Dateiname Ordner2 Ordner3 + + + +Befehlszeile zum Vergleichen bzw. Zusammenführen von Ordnern: +Das Vorgehen ist hier sehr ähnlich, doch nun geht es um Ordner. +kdiff3 Ordner1 Ordner2 + kdiff3 Ordner1 Ordner2 -o Zielordner + kdiff3 Ordner1 Ordner2 Ordner3 + kdiff3 Ordner1 Ordner2 Ordner3 -o Zielordner + +Zum Vergleichen bzw. Zusammenführen von Ordnern lesen Sie bitte hier weiter. + + +Andere Befehlszeilen-Optionen +Mehr Informationen zu den Befehlszeilen-Optionen erhalten Sie mit diesem Befehl: +kdiff3 --help + +Beispielausgabe: +kdiff3 --help +Options: + -m, --merge Quellen zusammenführen. + -b, --base file Explizite Basisdatei. Für Kompatibilität mit anderen Programmen. + -o, --output datei Ausgabe-Datei. Impliziert -m. Z. B.: -o neueDatei.txt + --out file Ausgabe-Datei. (Für Kompatibilität mit anderen Programmen.) + --noauto Ignoriert --auto und zeigt immer die grafische Oberfläche. + --auto Keine grafische Oberfläche, wenn alle Konflikte automatisch aufgelöst werden können. (Benötigt -o datei) + --qall Konflikte nicht automatisch auflösen. (Aus Kompatibilitätsgründen.) + --L1 alias1 Sichtbarer Namensersatz für Quelldatei 1 (Basis). + --L2 alias2 Sichtbarer Namensersatz für Quelldatei 2. + --L3 alias3 Sichtbarer Namensersatz für Quelldatei 3. + -L, --fname alias Alternativer sichtbarer Namensersatz. Für jede Quelldatei einmal angeben. + --cs string Eine Einstellung ändern. Je Einstellung verwendbar. z. B.: --cs „AutoAdvance=1“ + --confighelp Liste aller Einstellungen und aktueller Werte anzeigen. + --config file Eine andere Einstellungsdatei verwenden. + +Die Option ermöglicht die Anpassung eines Konfigurationswertes, der ansonsten nur in einem Einrichtungsdialog geändert werden kann. Beachten Sie, das bei der Beendigung von &kdiff3; dieser geänderte Wert zusammen mit anderen Einstellungen gespeichert wird. Mit der Option werden alle verfügbaren Einträge und deren aktuelle Werte angezeigt. +Mit können Sie eine andere Einrichtungsdatei vorgeben. Benutzen Sie &kdiff3; häufig mit verschiedenen unterschiedlichen Einstellungen, können Sie mit dieser Option leicht zwischen ihnen wechseln. + +Ignorierbare Befehlszeilen-Optionen +&kdiff3; soll häufig mit einigen Versionsverwaltungssystemen verwendet werden. Wenn jedoch ein Versionsverwaltungssystem &kdiff3; mit Befehlszeilenparametern aufruft, die &kdiff3; nicht kennt und daher nicht verarbeiten kann, wird das Programm mit einem Fehler beendet. Diese Einstellung Integration ermöglicht es, Befehlszeilenparameter anzugeben, die von &kdiff3; ignoriert werden sollen. Dies wird in der Hilfe wie folgt angezeigt: +--foo Ignoriert. (Benutzerdefiniert.) + + + Ignorierbare Befehlszeilenoptionen:Eine Liste von Optionen, durch Semikolon ";" getrennt. Wird eine dieser Optionen auf der Befehlszeile benutzt, ignoriert &kdiff3; sie und startet ohne Fehlermeldung. Die Voreinstellung ist „u;query;html;abort“. + +Wenn das nicht ausreicht, dann wird empfohlen, ein Shell-Skript zu schreiben, das die Optionen übersetzt. + + + + +Dateiauswahl-Dialog +Weil mehrere Dateien auszuwählen sind, hat &kdiff3; einen besonderen Dialog zum Öffnen von Dateien: + + + +Der Dateidialog ermöglicht die manuelle Eingabe von Dateinamen, die Auswahl über den Datei-Browser (Datei...) oder das Auswählen einer zuletzt geöffneten Datei aus dem Auswahlfeld. Der Dateidialog merkt sich Ihre Auswahl und zeigt sie beim nächsten Mal wieder an. Sie müssen keine dritte Datei angeben, wenn Sie den Eintrag für C leer lassen, wird die Analyse der Unterschiede mit zwei Dateien durchgeführt. Über den Knopf Ordner... können Sie auch einen Ordner auswählen. Wenn Sie einen Ordner wählen, wird das Vergleichen bzw. Zusammenführen von Ordnern eingeleitet. Wenn für A eine Datei ausgewählt wird, für B und C jedoch ein Ordner, dann benutzt &kdiff3; den Dateinamen aus A in den beiden anderen Ordnern. Wenn Zusammenführen angekreuzt ist, wird das Eingabefeld für Ausgabe aktiv und lässt sich bearbeiten. Es ist allerdings nicht unbedingt erforderlich, sofort eine Ausgabedatei festzulegen. Sie können diesen Schritt auch später beim Speichern erledigen. Der Knopf Einrichten öffnet einen Dialog mit Einstellungen. Hier können Sie Optionen festlegen bevor Sie mit dem Vergleichen/Zusammenführen beginnen. + + +Einfügen und Ablegen von Text +Manchmal möchte man nicht eine ganze Datei, sondern nur Teile eines Textes vergleichen. &kdiff3; ermöglicht Ihnen, Textteile aus der Zwischenablage in das aktive Vergleichsfenster einzufügen. Der Vergleich beginnt dann sofort. Im Dateidialog müssen Sie keine Dateien auswählen, Sie können den Dialog einfach mit dem Knopf Abbrechen schließen. Sie können auch Ziehen und Ablegen benutzen: Ziehen Sie einfach eine Datei aus einem Dateiverwaltungsprogramm oder ausgewählten Text aus einem Editor und lassen Sie ihn über einem Vergleichsfenster fallen. Welcher Gedanke steckt dahinter? Manchmal enthält eine Datei z. B. mehrere ähnliche Funktionen. Wenn Sie herausfinden möchten, wie ähnlich sich diese Funktionen sind, wäre das ein relativ großer Aufwand. Sie müssten erst zwei entsprechende Dateien erstellen, sie in &kdiff3; laden und diese dann vergleichen. Jetzt können Sie die relevanten Abschnitte einfach kopieren, einfügen und dann vergleichen. Zurzeit können Sie nichts aus &kdiff3; herausziehen. Nur das Fallenlassen von Text in ein Vergleichsfenster wird unterstützt. Einige Editoren interpretieren das Ziehen und Ablegen von Text in ein anderes Programm als Ausschneiden und Einfügen (anstelle von Kopieren und Einfügen). In einem solchen Fall könnten Ihre Originaldaten verloren gehen. + + +Dateivergleiche und Interpretation der angezeigten Informationen in den Quellfenstern + + + +Info-ZeileIm oberen Teil jedes Textfensters befindet sich die Info-Zeile. Die Info-Zeile der Quellfenster enthält die Zeichen A, B oder C, den Dateinamen und die Zeilennummer der ersten sichtbaren Zeile im Fenster. Beachten Sie, dass Fenster C optional ist. Jede Info-Zeile hat eine unterschiedliche Farbe. Wenn Sie eine andere Datei im Auswahldialog gewählt oder nach Eingabe des Dateinamens die &Enter;taste gedrückt haben, wird die neue Datei geladen und mit den bereits geöffneten Dateien verglichen. FarbgebungDen drei Quellfenstern sind die Buchstaben A, B und C zugeordnet. A hat die Farbe Blau, B die Farbe Grün und C ist magenta. (Diese Voreinstellungen können über das Menü Einstellungen geändert werden.) Wenn ein Unterschied erkannt wird, sieht man an der Farbe, welche Datei sich unterscheidet. Wenn sich beide Dateien unterscheiden, ist die voreingestellte Farbe dafür Rot. (Farbe für Konflikte im Abschnitt Farbe in den Einstellungen). Das Farbschema ist besonders nützlich, wenn Sie drei Dateien vergleichen. Das ist im nächsten Abschnitt (Zusammenführen) gut zu sehen. Zusammenfassungs-SpalteLinks neben dem Text befindet sich die Zusammenfassungs-Spalte. Wenn Unterschiede gefunden wurden, zeigt die Spalte die entsprechende Farbe an. Bei Unterschieden in Leerräumen wird die Farbe gerastert angezeigt. Bei einigen Programmiersprachen wo Leerräume nicht so wichtig sind, ist es nützlich, nur die relevanten Änderungen zu sehen. (Bei C/C++ z. B. sind Leerräume nur in Zeichenfolgen und Kommentaren, für die Vorverarbeitung und in wenigen, seltenen Einzelfällen relevant.) Die vertikale Linie, die die Zusammenfassungs-Spalte vom Text trennt, wird an den Stellen unterbrochen, wo die jeweilige Quelldatei keine Zeilen hat. Wenn der Zeilenumbruch aktiviert ist, wird die Linie an umgebrochenen Zeilen gepunktet dargestellt. Übersichts-SpalteAn der rechten Seite befindet sich eine Übersichts-Spalte, direkt links neben der vertikalen Bildlaufleiste. Sie zeigt eine komprimierte Zusammenfassung des gesamten Fenster A. Alle Unterschiede und Konflikte sind hier auf einen Blick erkennbar. Wenn nur zwei Quellfenster genutzt werden, dann erscheinen alle Unterschiede rot, denn dann ist jeder Unterschied gleichzeitig auch ein Konflikt. Der aktuell sichtbare Bereich der Quelltexte wird durch ein schwarzes Rechteck umrandet. Bei sehr langen Quelldateien mit mehr Zeilen als die Übersichts-Spalte in Pixeln anzeigen kann, teilen sich mehrere Zeilen jeweils eine Zeile in der Übersichts-Spalte. Ein Konflikt hat gegenüber einfacher Unterschiede die höchste Priorität. Unterschiede wiederum haben eine höhere Priorität als keine Änderungen. So gehen keine Konflikte oder Unterschiede verloren. Durch einen Klick in die Übersichts-Spalte wird der zugehörige Text angezeigt. Zeilen manuell ausrichtenManchmal platziert der Algorithmus die falschen Zeilen nebeneinander. Oder Sie möchten einen Textteil mit einem Text an einer völlig anderen Position in der anderen Datei vergleichen. In solchen Situationen können Sie mit &kdiff3; bestimmte Zeilen ausrichten. Markieren Sie den Text wie für das Kopieren und Einfügen in der ersten Vergleichsansicht und wählen dann VergleichsansichtManuelle Ausrichtung hinzufügen (&Ctrl;Y). Eine orangefarbene Leiste wird dann in der Zusammenfassungsspalte angezeigt. Wiederholen Sie diesen Schritt für die zweite und gegebenenfalls dritte Vergleichsansicht. &kdiff3; berechnet die Unterschiede bei jedem Schritt sofort neu und richtet die ausgewählten Zeilen aus. Dann passen einige vorher passenden Zeilen möglicherweise nicht mehr. Zurzeit unterstützt das Zusammenführen noch nicht die manuelle Ausrichtung der Zeilen von Unterschieden Diff-Abschnitte manuell verbinden oder trennenIn einigen Fällen zeigt &kdiff3; zu viele oder zu wenige Diff-Abschnitte an. Dann können Sie vorhandene Abschnitt zusammenführen oder aufteilen. Um neue Abschnitte hinzuzufügen, wählen Sie zuerst Text in den zusammengehörigen Zeilen in einem der Eingabefenster wie für das Kopieren in die Zwischenablage. Wählen Sie dann im Menü ZusammenführungUnterschied bei der Auswahlmarkierung trennen. Die Trennung erfolgt oberhalb der ersten und unterhalb der letzten Zeile des ausgewählten Texts. Wenn Sie nur einen Abschnitt hinzufügen möchten, wählen Sie Text am Beginn einer anderen Abschnittsteilung. Um Zeilen in einem der Eingabefenster zu verbinden, wählen Sie die zu verbindenden Zeilen aus. Sie können auch mehrere Abschnitte auf einmal verbinden. Wählen Sie dann ZusammenführenMarkierte Unterschiede verbinden. + + + +Zusammenführen und das editierbare Ergebnisfenster + + + +Das Ergebnisfenster (unter den Vergleichsfenstern) hat auch eine Info-Zeile mit der Aufschrift Ausgabe:, dem Dateinamen und [Geändert] wenn Sie das Ergebnis bearbeitet haben. Üblicherweise enthält es durch das automatische Zusammenführen bereits Text, aber oft enthält es auch Konflikte. Bis alle Konflikte aufgelöst sind, ist das Speichern deaktiviert. Benutzen Sie die Knöpfe Zu vorherigem Konflikt springen und Zu vorherigem ungelösten Konflikt springen bzw. Zu nächstem Konflikt springen und Zu nächstem ungelösten Konflikt springen, um die noch verbleibenden Konflikte zu finden. Wenn nur zwei Vergleichsfenster benutzt werden, ist jeder Unterschied gleichzeitig auch ein Konflikt, der manuell gelöst werden muss. Bei drei Vergleichsfenstern wird die erste Datei als Basis verwendet, und die zweite und dritte Datei enthalten die Änderungen. Wenn eine Zeile nur in Datei B oder C geändert wurde, aber nicht in beiden, dann wird automatisch die richtige Änderung ausgewählt. Wenn B und C allerdings Änderungen in der gleichen Zeile enthalten, erkennt &kdiff3; einen manuell zu lösenden Konflikt. Wenn B und C identisch sind, sich aber von A unterscheiden, dann wird C als Quelle ausgewählt. Die Zusammenfassungs-SpalteDas Ergebnisfenster hat auch eine Zusammenfassungs-Spalte an der linken Seite. Sie zeigt entweder den Buchstaben des Vergleichsfensters an von dem eine Zeile stammt, oder sie ist leer, wenn alle drei Quellen an der Stelle identisch sind. Konflikte werden mit einem roten Fragezeichen ? und dem Text <Zusammenführungskonflikt> dargestellt. Weil das zeilenweise Auflösen von Konflikten sehr lange dauern würde, werden Zeilen mit gleichem Unterschied und Charakteristika gruppiert. Konflikte mit Leerräume- und Konflikte mit Nicht-Leerräumen Zeichen werden getrennt dargestellt, um das Zusammenführen von Dateien mit vielen Änderungen von Einrückungen zu vereinfachen. Einstellung der aktuellen Gruppe und Abgleich der Zusammenführungs- und Diff-AnsichtspositionenDurch einen Klick mit der &LMBn; in die Zusammenfassungs-Spalte in einem der Fenster wird die erste zu der Zeile gehörende Gruppe in allen Fenstern angezeigt. Diese Gruppe wird dann die aktuelle Gruppe. Sie wird mit der Farbe Hintergrundfarbe für aktuellen Bereich hervorgehoben und jeweils zur Linken erscheint ein schwarzer Balken. Auswahl der Eingabe A, B oder C für den aktuellen Konflikt und zur BearbeitungIn der Werkzeugleiste unter der Menüleiste sind drei Knöpfe zur Auswahl der Eingabe mit den Buchstaben A, B und C enthalten. Klicken Sie auf diese Knöpfe, um Zeilen einzufügen oder bereits eingefügte Zeilen der entsprechenden Quelle zu löschen. Um Zeilen in mehreren Eingabefenstern auszuwählen, klicken Sie auf die zugehörigen Knöpfe in der gewünschten Reihenfolge. Wenn Sie die Zeilen aus „B“ vor den Zeilen auf „A“ anzeigen möchten, klicken Sie zuerst auf „B“ und dann auf „A“. Wenn Sie die Einstellung Automatisch zu nächstem ungelösten Konflikt weiterspringen im Abschnitt Automatisch weitergehen verwenden, sollten Sie das abschalten, ehe Sie Zeilen aus mehreren Eingabefenstern wählen oder wenn Sie die Zeilen nach Ihrer Auswahl bearbeiten möchten. Ansonsten springt &kdiff3; zum ersten Konflikt nach der Auswahl der ersten Eingabe. Es ist oft hilfreich, die Ausgabe der Zusammenführung zu bearbeiten. In der Zusammenfassungsspalte wird das Zeichen „m“ für jede manuell geänderte Zeile angezeigt. Wenn zum Beispiel die Unterschiede in einer Weise ausgerichtet sind, das die Auswahl der Eingaben zu keinen befriedigenden Ergebnissen führen, dann markieren Sie den gewünschten Text und nutzen Kopieren und Einfügen, um ihn in die Ausgabe der Zusammenfassung einzufügen. Manchmal bleibt durch das automatische Zusammenführen oder durch manuelles Bearbeiten keine weitere Zeile mehr in der Gruppe übrig; dann wird in diesen Zeilen der Text <Keine Zeile in der Quelle> angezeigt. Das ist nur ein Platzhalter für den Fall, dass Sie Ihre Meinung ändern und vielleicht doch wieder eine andere Quelle wählen. Dieser Text erscheint weder in der endgültigen gespeicherten Datei, noch in einer Markierung die Sie vielleicht kopieren und woanders einfügen. Der Text <Zusammenführungskonflikt> erscheint allerdings in der Zwischenablage, wenn Sie solchen Text aus dem Ergebnisfenster kopieren. Gehen Sie vorsichtig mit dieser Funktion um. Auswahl der Eingabe A, B oder C für alle KonflikteDas normale Zusammenführen startet mit dem automatischen Lösen einfacher Konflikte. Das Menü Zusammenführen enthält einige häufig verwendete Funktionen. Wenn Sie bei den meisten Konflikten die gleiche Quelle auswählen müssen, können Sie z. B. überall A, B oder C auswählen. Die gleiche Möglichkeit gibt es auch für die noch verbleibenden ungelösten Konflikte oder sogar für die noch verbleibenden ungelösten Konflikte in Leerräumen. Wenn Sie solche Entscheidungen nicht zusammengefasst für eine Gruppe, sondern sogar für jeden einzelnen Unterschied im Detail treffen möchten, dann wählen Sie Alle Unterschiede zu Konflikten machen. Sie können wieder zur automatischen Auswahl von &kdiff3; zurück, indem Sie Automatisch einfache Konflikte lösen wählen. &kdiff3; startet das Zusammenführen dann erneut. &kdiff3; fragt nach, bevor Ihre eventuell gemachten Änderungen verloren gehen. Hinweis: Wenn beim Auswählen der Quellen die Optionen Zahlen ignorieren, wie Leerräume behandeln oder C/C++ Kommentare ignorieren, wie Leerräume behandeln aktiviert sind, werden Änderungen in Zahlen oder Kommentaren auch wie Leerräume behandelt. Automatische Zusammenführung von Schlüsselwörtern von Versionskontrollsystemen und dem Verlauf (Protokoll)Viele Versionsverwaltungssysteme unterstützen Schlüsselwörter in der Datei wie ⪚ "$Date$", "$Header$", "$Author$", "$Log$" &etc; Beim Einspielen ändert das Versionsverwaltungssystem (VCS) diese Zeilen. "$Date$" wird zum Beispiel zu "$Date: 2005/03/22 18:45:01 $". Da diesen Zeile in jeder Version der Datei verschieden ist, würde ein manueller Eingriff beim Zusammenführen nötig sein. &kdiff3; bietet ein automatisches Zusammenführen für diese Einträge. Bei einfachen Zeilen, auf die die Einstellung Regulärer Ausdruck für automatische Zusammenführung in allen Eingabedateien zutrifft, wählt &kdiff3; die Zeile aus B oder - wenn verfügbar - aus C. Außerdem ist es erforderlich, dass die betreffenden Zeilen im Vergleich enthalten sind und die vorherige Zeile keinen Konflikt enthält. Dieses automatische Zusammenführen kann entweder sofort nach dem Beginn einer Zusammenführung mit Zusammenführung über regulären Ausdruck beim Start einer Zusammenführung durchführen oder später mit Zusammenführung über regulären Ausdruck starten aus dem Menü Zusammenführen ausgeführt werden. Automatisches Zusammenführen für den Verlauf oder Protokoll von Versionsverwaltungssystemen wird ebenfalls unterstützt. Das automatische Zusammenführen des Verlaufs kann entweder durch die Aktivierung von Versionsverwaltungs-Verlauf beim Start einer Zusammenführung zusammenführen im Einrichtungsdialog oder später durch Verlauf-Konflikte automatisch auflösen aus dem Menü Zusammenführen gestartet werden. Normalerweise beginnt das Protokoll des Versionsverlaufs mit dem Schlüsselwort „$Log$“. Dies muss zur Einstellung Regulärer Ausdruck für Verlauf-Start passen. &kdiff3; erkennt, welche der folgenden Zeilen im Verlaufsprotokoll enthalten sind, indem die die Zeichen vor „$Log$“ analysiert werden. Wenn diese Zeichen auch in den folgenden Zeilen erscheinen, werden Sie auch als Teil des Protokolls betrachtet. Beim jedem Einspielen schreibt das Versionsverwaltungssystem eine eindeutige Zeile mit Informationen über Version, Datum und Zeit und danach den Kommentar des Benutzers. Diese Zeilen bilden einen Verlaufseintrag. Dieser Verlaufsabschnitt wird mit jedem Einspielen größer und die neueren Einträge werden oben nach der Verlaufsprotokollzeile eingefügt. Wenn bei gleichzeitiger Entwicklung zwei oder mehr Entwickler einen Zweig (Branch) der Datei einspielen, enthält der Zusammenführungsverlauf mehrere Einträge, die als Konflikt beim Zusammenführen der Zweige erscheint. Das dieses Zusammenführen sehr langweilig ist , unterstützt &kdiff3; zwei verschiedene Strategien: Einfügen der Verlaufsinformationen beider Entwickler am Anfang oder Sortierung durch einen benutzerdefinierten Schlüssel. Die Methode nur alle Einträge einzufügen, ist einfacher einzurichten. &kdiff3; benötigt nur eine Methode, um die zu einem Verlaufseintrag gehörenden Zeilen zu erkennen. Die meisten Versionsverwaltungssysteme fügen nach jedem Verlaufseintrag eine Leerzeile ein. Gibt es keinen anderen Leerzeilen, ist dies Kriterium für &kdiff3; ausreichend. Löschen Sie den Text für Regulärer Ausdruck für Verlauf-Eintrag-Startzeile im Abschnitt Zusammenführung des Einrichtungsdialogs an. Ist das Kriterium für eine Leerzeile nicht ausreichend, können Sie einen regulären Ausdruck für den Beginn des Verlaufseintrags angeben. Beachten Sie, dass &kdiff3; doppelte Einträge im Verlauf entfernt. Wenn ein Eintrag mehrfach im Verlauf einer Eingabedatei vorkommt, bleibt in der Ausgabe nur ein Eintrag übrig. Möchten Sie den Verlauf sortieren, müssen Sie den Schlüssel dazu angeben. Verwenden Sie Klammern, um Teile von Regulärer Ausdruck für Verlauf-Eintrag-Startzeile zu gruppieren, um diesen Ausdruck später zum Sortieren zu verwenden. Geben Sie dann für Sortierschlüsselreihenfolge für Verlauf-Eintragsstart eine durch Komma getrennte Liste von Zahlen mit der Position der Gruppen im regulären Ausdruck. Da es nicht so einfach ist, sofort richtige Ausdrücke zu schreiben, können Sie die regulären Ausdrücke und Schlüsselgenerierung in einem dafür vorgesehenen Dialog verbessern und testen, indem Sie den Knopf Testen Sie Ihre regulären Ausdrücke drücken. Beispiel: Angenommen ein Verlauf sieht so aus: +/************************************************************************** +** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ +** +** \main\integration_branch_12 2 Apr 2001 10:45:41 tom +** Merged branch simon_branch_15. +** +** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry +** Improved the speed for subroutine convertToMesh(). +** Fixed crash. +**************************************************************************/ + +Der Verlauf beginnt mit der Startzeile, auf die der reguläre Ausdruck ".*\$Log.*\$.*" zutrifft. Dann folgen die Einträge. Die Zeile mit dem Schlüsselwort „$Log$“ beginnt mit zwei „*“ und danach ein Leerzeichen. &kdiff3; verwendet den ersten Text ohne Leerzeichen als „Startkommentar“ und nimmt an, dass der Verlauf mit der ersten Zeile ohne diesen Startkommentar endet. In diesem Beispiel enthält die letzte Zeile auch zwei Zeichen „*“ am Anfang, aber dann folgen weitere „*“ statt eines Leerzeichens. Daher endet der Verlauf mit dieser Zeile. Ist eine Sortierung des Verlaufs nicht erforderlich, kann ein regulärer Ausdruck für die Startzeile des Verlaufseintrags zum Beispiel so aussehen. Dieser Ausdruck wurde in zwei Teile getrennt, da er sonst zu lang ist. +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + +Weitere Informationen über reguläre Ausdrücke finden Sie in der Dokumentation zu regulären Ausdrücken. Beachten Sie, dass das klein geschriebene „\s“ auf jedes Leerraumzeichen und das groß geschriebene "\S" auf jedes Nicht-Leerraumzeichen passt. In diesem Beispiel enthält der Beginn des Verlaufseintrags zuerst die Versionsinformation mit „\\main\\\S+“, das Datum aus Tag „[0-9]+“, Monat „(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)“ und Jahr „[0-9][0-9][0-9][0-9]“, die Zeit „[0-9][0-9]:[0-9][0-9]:[0-9][0-9]“ und schließlich den Benutzernamen des Entwicklers „.*“. Beachten Sie, dass die Startkommentar-Zeichen, in diesem Beispiel "**" bereits durch &kdiff3; vor der Suchen nach Übereinstimmung entfernt werden. Daher beginnt der reguläre Ausdruck mit einem oder Leerraumzeichen mit "\s*". Da Kommentarzeichen in jeder Datei je nach verwendeter Programmiersprache verschieden sein können, werden die Startkommentar-Zeichen von &kdiff3; entfernt und sollten nicht im regulären Ausdruck angegeben werden. Wenn Sie den Verlauf sortiert haben möchten, muss dazu ein Sortierschlüssel berechnet werden. Dazu müssen die maßgebenden Teile im regulären Ausdruck durch Klammern gruppiert werden. Die zusätzlichen Klammer können im Verlaufseintrag verbleiben, wenn die Sortierung abgeschaltet ist. +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + +Die Klammern enthalten jetzt: 1. Versionsinformation, 2. Tag, 3. Monat, 4. Jahr, 5. Zeit, 6. Name. Wenn Sie jedoch nach Datum und Zeit sortieren möchten, muss zuerst ein Schlüssel mit den Elementen in einer anderen Reihenfolge konstruiert werden. Zuerst das Jahr, dann Monat, Tag, Zeit, Versionsinformation und Name. Daher muss als Sortierschlüssel "4,3,2,5,1,6" angegeben werden. Da Monatsnamen nicht zur Sortierung geeignet sind, weil dabei „Apr“ zuerst käme, ermittelt &kdiff3; die Reihenfolge der angegebenen Monatsnamen und benutzt dies dann. In diesem Fall wird „Apr“ die Zahl „04“ zugeordnet. Eine Zahl wird in einen Wert mit vier Dezimalstellen mit vorangestellten Nullen für die Sortierung. Schließlich ergibt sich als Sortierschlüssel für die Startzeile des ersten Verlaufseintrags: +2001 04 0002 10:45:41 integration_branch_12 tom + +Weitere Informationen finden Sie im Abschnitt Zusammenführungs-Einstellungen. + + + +Navigieren und Bearbeiten +Navigiert wird hauptsächlich mit den Bildlaufleisten und der Maus, aber Sie können dazu auch die Tastatur benutzen. Wenn Sie in eines der Fenster klicken, können Sie die Tasten &Left;, &Right;, &Up;, &Down;, &PgUp;, &PgDn;, &Home;, &End;, &Ctrl;&Home; and &Ctrl;&End; benutzen, so wie Sie es auch von anderen Programmen gewohnt sind. Die Übersichts-Spalte neben der vertikalen Bildlaufleiste kann durch hineinklicken auch zum Navigieren benutzt werden. Außerdem können Sie das Mausrad zum hoch- und runterblättern benutzen. Im Ausgabefenster können Sie auch die anderen Tasten zum Bearbeiten verwenden. Mit der Taste &Ins; können Sie zwischen Einfüge- und Überschreibmodus wechseln. (Voreingestellt ist der Einfügemodus.) Ein Klick mit der &LMBn; in eine der Zusammenfassungs-Spalten gleicht die Ansicht aller Fenster auf den Anfang der jeweiligen Gruppe von Zeilen ab, wie bereits im Abschnitt Einstellung der aktuellen Gruppe und Abgleich der Zusammenführungs- und Diff-Ansichtspositionen erläutert wird. Die Werkzeugleiste enthält neun Knöpfe zur Navigation, mit denen Sie zum aktuellen/ersten/letzten Unterschied, zum nächsten/vorigen Unterschied (&Ctrl;&Down;/&Ctrl;&Up;), zum nächsten/vorigen Konflikt (&Ctrl;&PgDn;/&Ctrl;&PgUp;) oder zum nächsten/vorigen ungelösten Konflikt springen können. Beachten Sie, dass &kdiff3; alle nicht automatisch gelösten Konflikte auch nach dem manuellen Lösen weiterhin als Konflikt betrachtet. Daher muss zwischen gelösten und ungelösten Konflikten unterschieden werden. +Automatisch weitergehen +Es gibt auch einen Knopf Automatisch zum nächsten ungelösten Konflikt weiterspringen. Wenn Sie dies aktivieren, wird &kdiff3; nach der ersten Auswahl der Quelle automatisch zum nächsten ungelösten Konflikt weiterspringen und ihn lösen. Das ist hilfreich, wenn Sie immer nur eine Quelle wählen möchten. Wenn Sie beide Quellen brauchen, oder das Ergebnis nach der Auswahl noch bearbeiten möchten, dann sollten Sie diese Funktion ausschalten. Bevor &kdiff3; zum nächsten ungelösten Konflikt weiterspringt, wird das Ergebnis der Auswahl für eine kurze Zeit angezeigt. Die Verzögerungszeit kann im Abschnitt Vergleich und Zusammenführung in den Einstellungen bestimmt werden: Geben Sie für Verzögerung für das automatische Weiterspringen (ms) einen Wert zwischen 0 und 2000 Millisekunden an. Tipp: Wenn Sie sich viele Mausklicks sparen möchten, dann benutzen Sie eine kurze Verzögerungszeit und die Tastenkürzel &Ctrl;1/2/3 zum Auswählen der Quellen A/B/C. + + + +Markieren, Kopieren und Einfügen +In den Vergleichsfenstern wird kein Cursor angezeigt, daher müssen Markierungen mit der Maus gemacht werden. Drücken Sie am Beginn der Markierung die &RMB; und halten Sie sie gedrückt, ziehen Sie die Maus dann bis zum Ende der Markierung und lassen Sie hier die Maustaste wieder los. Ein einzelnes Wort kann auch einfach durch einen Doppelklick darauf markiert werden. Im Ergebnisfenster können Sie zum Markieren auch die Tastatur benutzen. Drücken Sie dazu die &Shift;-Taste und verändern Sie die Markierung mit den Pfeiltasten. Wenn die Auswahl den auf dem Bildschirm angezeigten Bereich überschreitet, schieben Sie den Mauszeiger über den Rand des Fensters. Dann blättert &kdiff3; in dieser Richtung. Für eine sehr große Auswahl können Sie auch die Navigationstasten zusammen mit gedrückter Maustaste verwenden. Benutzen Sie zum Beispiel die Tasten &PgDn; und &PgUp;, um schnell zu einer bestimmten Position zu gehen. Haben Sie die gewünschte Endposition erreicht, lassen Sie die Maustaste los. Um den gesamten Text im aktuellen Fenster auszuwählen, benutzen Sie im Menü Bearbeiten Alles auswählen (&Ctrl;A). Um die Markierung in die Zwischenablage zu kopieren, müssen Sie den Knopf Kopieren (&Ctrl;C oder &Ctrl;&Ins;) drücken. Es gibt auch die Option Auswahl automatisch kopieren im Abschnitt Editor im Einrichtungsdialog. Wenn diese aktiviert ist, wird, was immer Sie markieren, automatisch in die Zwischenablage kopiert und das manuelle Kopieren entfällt. Seien Sie mit dieser Option aber vorsichtig, denn Sie könnten so den Inhalt der Zwischenablage versehentlich überschreiben. Ausschneiden (&Ctrl;X or &Shift;∇) kopiert in die Zwischenablage und löscht den markierten Text. Einfügen (&Ctrl;V or &Shift;&Ins;) fügt den Text aus der Zwischenablage an der aktuellen Cursor-Position ein bzw. ersetzt die aktuelle Markierung. Wenn Sie den Inhalt der Zwischenablage in eines der Diff-Eingabefenster fügen, wird er hier angezeigt und der Vergleich wird sofort wieder neu gestartet. Dies ist nützlich, wenn Sie einen beliebigen Text irgend woher mit einem anderen Text vergleichen möchten, ohne dafür zuerst Dateien zu erstellen. + + +Speichern +Speichern ist erst möglich, wenn alle Konflikte gelöst sind. Falls die Datei bereits existiert und die Option Sicherungskopie erstellen im Abschnitt Ordner im Einrichtungsdialog aktiviert ist, dann erhält die bestehende Datei die Erweiterung .orig. Wenn bereits eine .orig-Datei existiert, wird diese überschrieben. Wenn Sie einen weiteren Vergleich starten bzw. beenden und noch nicht gespeichert haben, dann fragt &kdiff3;, ob Sie Speichern, Abbrechen oder ohne zu speichern fortfahren möchten. (&kdiff3; fängt allerdings keine System-Signale ab. Wenn Sie &kdiff3; also mit dem Signal kill beenden, gehen Ihre nicht gespeicherten Daten verloren.) Zeilenenden werden entsprechend dem zugrunde liegenden Betriebssystem gespeichert. Unix-Varianten verwenden ein Zeilenvorschub-Zeichen \n, und Win32-basierte Systeme benutzen Wagenrücklauf + Zeilenvorschub \r\n +>. &kdiff3; behält die Zeilenenden der Quelldateien nicht bei, darum sollten Sie &kdiff3; auch nicht mit Binärdateien verwenden. + + +Suchen und Finden von Zeichenfolgen +Sie können in jedem Textfenster von &kdiff3; nach einer Zeichenfolge suchen. Der Menüeintrag BearbeitenSuchen ... (&Ctrl;F) öffnet einen Dialog, in dem Sie die zu suchende Zeichenfolge eingeben können. Sie können außerdem das Fenster auswählen, in dem gesucht wird. Eine Suche beginnt immer am Anfang. Mit dem Menüeintrag BearbeitenWeitersuchen ... (F3) können Sie zum nächsten Vorkommen der gesuchten Zeichenfolge springen. Wenn Sie eine Suche über mehrere Fenster aktiviert haben, wird erst das erste Fenster vom Begin bis zum Ende durchsucht, danach das nächste Fenster &etc; + + +Drucken +&kdiff3; unterstützt das Drucken von Unterschieden für Textdateien. Mit der Aktion DateiDrucken ... (&Ctrl;P) öffnen Sie einen Dialog, in dem der Drucker ausgewählt und weitere Einstellungen angepasst werden können. Es gibt mehrere Möglichkeiten, den Druckbereich einzustellen. Da sich die Druckerdialoge auf den verschiedenen Betriebssystemen unterscheiden, ist das Verfahren zur Einstellung des Druckbereichs auch unterschiedlich. + + Alles druckenDruckt alle Unterschiede + Aktuell:Druckt eine Seite, die mit der ersten sichtbaren Zeile des Fensters beginnt. Auf Systemen ohne diese Einstellung verwenden Sie dazu die Angabe von Zeile 10000 für das Drucken. + Auswahl:Wählen Sie vor dem Drucken Text mit der Maus wie für das Kopieren und Einfügen in einem der Diff-Eingabefenster, um die erste und letzte Zeile zu definieren. Ist kein Text in einem der Diff-Eingabefenster ausgewählt, ist diese Einstellung deaktiviert. Auf Systemen ohne diese Einstellung dann dies mit der Angabe einer Zeilennummer von 9999 erreicht werden. + Bereich:Bestimmt die erste und letzte Seite des Drucks. + +Weitere wichtige Einstellungen zum Drucken können wie üblich ausgewählt werden: + Schrift und Schriftgröße + Zeilennummern anzeigen + Zeilenumbruch + Farben + &etc; + +Das Querformat wird für das Ausdrucken empfohlen. + + +Optionen +Die Optionen und die Liste der zuletzt verwendeten Dateien wird beim Beenden automatisch gespeichert und beim nächsten Start wiederhergestellt. (Menü Einstellungen&kdiff3; einrichten ...) +Schriftart +Wählen Sie eine Schrift mit fester Breite. (Auf einigen Systemen stellt der Dialog auch Schriften mit variabler Breite zur Auswahl, Sie sollten diese aber nicht benutzen.) + + +Farben + + Editor und Unterschiedsansicht: + + Vordergrundfarbe:Üblicherweise Schwarz. + Hintergrundfarbe:Üblicherweise Weiß. + Hintergrundfarbe bei Unterschieden:Üblicherweise helles Grau. + Farbe für A:Üblicherweise dunkles Blau. + Farbe für B:Üblicherweise dunkles Grün. + Farbe für C:Üblicherweise dunkles Magenta. + Farbe für Konflikte:Üblicherweise Rot. + Hintergrundfarbe für aktuellen Bereich:Üblicherweise helles Gelb. + Hintergrundfarbe für Unterschiede im aktuellen Bereich:Üblicherweise dunkles Gelb. + Farbe für manuell ausgerichtete Unterschiede:Üblicherweise Orange. + + Ordnervergleichsansicht: + + Farbe für neueste Datei:Üblicherweise Grün. + Farbe für älteste Datei:Üblicherweise Rot. + Farbe für mittelalte Datei:Üblicherweise kräftiges Gelb. + Farbe für fehlende Datei:Üblicherweise Schwarz. + + +Die Änderung der Farbe für den Ordnervergleich wird erst beim Start des nächsten Ordnervergleichs wirksam. +An Systemen mit nur 16 oder 256 Farben könnten einige Farben nicht in ihrer reinen Form verfügbar sein sondern würden gerastert dargestellt werden. An diesen Systemen stellt der Knopf Voreinstellungen +> automatisch eine ungerasterte Farbe ein. + + +Editoreinstellungen + + Tabulator fügt Leerzeichen einWenn diese Option aktiviert ist, wird beim Drücken der -Taste die entsprechende Anzahl an Leerzeichen eingefügt. Ansonsten wird ein Tabulator-Zeichen eingefügt. + Tabulatorweite:Kann nach Ihren persönlichen Vorstellungen eingestellt werden. Voreingestellt ist 8. + Automatisch einrückenWenn Sie die &Enter;taste drücken, wird die Einrückung der vorangehenden Zeile automatisch auch für die nächste Zeile verwendet. + Auswahl automatisch kopierenWenn diese Option aktiviert ist, wird jede Auswahl automatisch in die Zwischenablage kopiert. Das manuelle Kopieren in die Zwischenablage entfällt dann. + Zeilenende-Kodierung:Sie können auswählen, welchen Zeilenende-Kodierung Sie zum Speichern bevorzugen. Der voreingestellte Wert ist die allgemein übliche Auswahl auf dem verwendeten Betriebssystem. + + + +Diff-Optionen +Beim Vergleichen von Dateien versucht &kdiff3; zuerst, alle vollständig identischen Zeilen in den Quelldateien zu finden. Nur bei diesem ersten Schritt können Leerräume ignoriert werden. Der zweite Schritt vergleicht jede Zeile. In diesem Schritt werden Leerräume nicht ignoriert. Auch beim Zusammenführen werden Leerräume nicht ignoriert. + + + Zahlen ignorieren, wie Leerräume behandelnIn der Voreinstellung ist diese Option deaktiviert. Im ersten Teil der Analyse werden Zahlen und zugehörige Zeichen ('0'-'9', '.', '-') ignoriert. Im Ergebnis werden die Unterschiede dennoch angezeigt, aber sie werden wie Leerräume behandelt. + C/C++-Kommentare ignorieren, wie Leerräume behandelnIn der Voreinstellung ist diese Option deaktiviert. Änderungen in Kommentaren werden wie Änderungen in Leerräumen behandelt. + Groß-/Kleinschreibung ignorieren, wie Leerräume behandelnIn der Voreinstellung ist diese Option deaktiviert. Unterschiede in einzelnen Zeichen (wie z. B. 'A' und 'a') werden wie Unterschiede in Leerräumen behandelt. + Vorverarbeitungsbefehl:Siehe nächster Abschnitt. + Vorverarbeitungsbefehl nur für Zeilenabgleich:Siehe nächster Abschnitt. + Aufwendig suchen (langsamer)Intensiv nach noch kleineren Unterschieden suchen. Die Option ist in der Voreinstellung aktiviert. Sie ist effektiv bei komplizierten und großen Dateien, aber langsam bei sehr großen Dateien. + B und C bei drei Eingabedateien abgleichenVersuchen, B und C abzugleichen, wenn drei Dateien verglichen oder zusammengeführt werden. Dies ist für Zusammenführungen nicht empfohlen, da diese so komplizierter werden können. (Voreingestellt ist dies deaktiviert.) + + + +Einstellungen für das Zusammenführen + + Verzögerung für das automatische Weiterspringen (ms):In diesem Modus bestimmt diese Einstellung, wie lange das Ergebnis der Auswahl angezeigt wird, bevor zum nächsten ungelösten Konflikt weitergesprungen wird. + Infofenster anzeigenFenster mit Informationen über die Anzahl der Konflikte anzeigen. + Leerraum-Autoauswahl bei 2 Dateien:Löst automatische alle Konflikte in Leerräumen, indem die gewählte Datei als Quelle benutzt wird. (Voreingestellt ist manuelle Auswahl.) Das ist nützlich, wenn Leerräume in vielen Dateien weniger wichtig sind. Wenn Sie dies nur von Zeit zu Zeit benötigen, dann nutzen Sie besser die Funktionen Für alle ungelösten Leerraum-Konflikte A/B/C wählen aus dem Menü Zusammenführen. Beachten Sie, dass die Automatische Auswahl auch Konflikte in Zahlen oder Kommentaren betrifft, wennie Optionen Zahlen ignorieren, wie Leerräume behandeln oder C/C++-Kommentare ignorieren, wie Leerräume behandeln aktiviert sind. + Regulärer Ausdruck für automatische Zusammenführung:Regulärer Ausdruck für Zeilen, für die automatisch eine Quelle ausgewählt werden soll. Siehe auch Automatische Zusammenführung. + Zusammenführung über regulären Ausdruck beim Start einer Zusammenführung durchführenIst diese Einstellung aktiviert, benutzt &kdiff3; beim Zusammenführen einen Regulären Ausdruck für automatische Zusammenführung, wenn die Zusammenführung gestartet wird. + Regulärer Ausdruck für Verlauf-Eintrag-Startzeile:Regulärer Ausdruck für die Startzeile des Versionsverwaltungs-Verlaufs. Normalerweise enthält diese Zeile das Schlüsselwort „$Log$“.Voreinstellung: „.*\$Log.*\$.*“ + Regulärer Ausdruck für Verlauf-Eintrag-Startzeile:Ein Verlaufseintrag für eine Versionsverwaltung besteht aus mehreren Zeilen. Geben Sie einen regulären Ausdruck an, um die erste Zeile (ohne die voranstehenden Kommentarzeichen) zu erkennen. Verwenden Sie runde Klammern, um Sortierschlüssel zu gruppieren. Fehlen diese Angaben, nimmt &kdiff3; an, dass die Verlauf-Einträge durch Leerzeilen getrennt sind. Siehe auch Automatische Zusammenführung .... + Sortierte Verlauf-ZusammenführungSortierung der Verlauf-Einträge für Versionsverwaltungssystemen aktivieren + Sortierschlüsselreihenfolge für Verlauf-Eintragsstart:Jedes runde Klammerpaar im regulären Ausdruck des Verlauf-Start-Eintrags gruppiert einen Schlüssel, der für die Sortierung verwendet werden kann. Geben Sie eine Liste der Schlüssel an (nummeriert in der Auftrittsreihenfolge, mit 1 beginnend), wobei das Komma als Trennzeichen verwendet wird. (⪚: „4,5,6,1,2,3,7“). Wenn der Eintrag leer ist, wird keine Sortierung durchgeführt. Siehe auch Automatische Zusammenführung .... + Versionsverwaltungs-Verlauf beim Start einer Zusammenführung zusammenführenIst diese Einstellung aktiviert, benutzt &kdiff3; beim der automatischen Zusammenführung des Verlaufs die zuvor genannten Einstellungen, wenn die Zusammenführung gestartet wird. + Maximale Anzahl Verlauf-Einträge:&kdiff3; kürzt die Verlaufsliste auf die angegebene Anzahl von Einträgen. Verwenden Sie den Wert -1, die Voreinstellung, um das zu verhindern. + Testen Sie Ihre regulären AusdrückeMit diesem Knopf wird ein Dialog angezeigt, in dem Sie die oben genannten regulären Ausdrücke verbessern und testen können. Kopieren Sie die relevanten Zeilen aus Ihrer Datei in die Beispielzeile. Das Übereinstimmungsergebnis zeigt sofort an, ob der Ausdruck passt. Das Sortierschlüsselergebnis zeigt den verwendeten Schlüssel für die Sortierung der Verlaufszusammenführung. + Befehl bei irrelevanter Zusammenführung:Geben Sie einen eigenen Befehl ein, der aufgerufen wird, wenn &kdiff3; feststellt, dass beim Zusammenführen von drei Dateien die Datei B keine wesentlichen Daten beiträgt, die nicht auch schon in C enthalten sind. Dieser Befehl wird mit den drei Dateinamen als Parameter aufgerufen, Daten die auf Regulärer Ausdruck für automatische Zusammenführung“ passen oder bereits im Verlauf enthalten sind, werden als unwesentlich betrachtet. + Automatisch speichern und beenden, wenn ohne Konflikte zusammengeführt werden kannAutomatisch speichern und beenden, wenn &kdiff3; für eine Dateizusammenführung von der Befehlszeile gestartet wurde und alle Konflikte automatisch ohne Benutzerinteraktion aufzulösen sind. (Ähnlich zur Befehlszeilen-Option ). + + + + +Ordner zusammenführen +Diese Optionen werden im Kapitel zum Einlesen von Ordnern und Durchführen einer Zusammenführung behandelt. Schauen Sie für Details unter Dokumentation zum Ordnervergleich und Zusammenführung nach. Es gibt hier dennoch eine Option die auch beim Speichern von einzelnen Dateien relevant ist: + + Sicherungskopie erstellen (.orig)Wenn eine Datei gespeichert wird und bereits eine ältere Version existiert, dann wird der Originalversion das Suffix .orig angehängt. Wenn bereits eine solche Sicherungsdatei mit dem Suffix .orig existiert, wird diese ohne weitere Sicherung gelöscht. + + + +Regional- und Spracheinstellungen + + Überall die gleiche Kodierung verwendenDie folgenden Kodierungseinstellungen können für jeden Eintrag separat eingestellt werden. Wenn man diese Option aktiviert, wird für alle Einträge die obere Einstellung verwendet. + Hinweis: Die lokale Kodierung ist „...“Über den Auswahlfeldern für die Kodierung erscheint ein kurzer Hinweis, was die lokale Kodierung ist. (Dies kann hier nicht geändert werden und hat für Sie rein informellen Charakter.) + Datei-Kodierung für A/B/C:Passen Sie die Datei-Kodierung für Quelldateien an. Dies beeinflusst, wie Sonderzeichen behandelt und interpretiert werden. Da die Kodierung für jede Datei einzeln einstellbar ist, können selbst Dateien mit unterschiedlicher Kodierung verglichen und zusammengeführt werden. + Dateikodierung für Zusammenführung und Speichern:Wenn Sie eine Datei bearbeitet haben, können Sie hier festlegen, welche Kodierung zum Speichern verwendet werden soll. + Dateikodierung für Vorverarbeitungs-Dateien:Wenn Sie Vorverarbeitungsbefehle definieren, könnten sie eventuell nicht mit Ihrem Codec funktionieren. (⪚ könnten Ihre Dateien 16-Bit Unicode sein, aber der Vorverarbeitungsbefehl kann nur mit 8-Bit &ASCII; umgehen.) Mit dieser Option kann man die Kodierung der Ausgabe von Vorverarbeitungsbefehlen festlegen. + Rechts-nach-Links-Sprache:Einige Sprachen werden von Rechts nach Links geschrieben. Wenn diese Option aktiviert ist, zeigt &kdiff3; den Text in Vergleichs- und Zusammenführungs-Fenstern von Rechts nach Links an. Wenn Sie &kdiff3; mit der Option starten, wird das gesamte Layout der Programmoberfläche von Rechts nach Links angezeigt. (Dies ist eine Funktion von Qt.) Diese Dokumentation wurde unter der Annahme geschrieben, dass Rechts-nach-Links-Sprache und umgedrehtes Layout abgeschaltet sind. Wenn Sie diese Optionen verwenden, müssen Sie also Referenzen auf Rechts und Links entsprechend umkehren. + + + + +Verschiedenes +Diese Optionen und Aktionen sind in den Menüs oder den Werkzeugleisten zu finden. + + Übersichts-Optionen:Dieses Auswahl ist nur verfügbar, wenn Sie drei Dateien vergleichen. Im normalen Modus werden alle Unterschiede in einer farblich kodierten Übersichts-Spalte angezeigt. Aber manchmal möchten Sie vielleicht nur die Unterschiede zwischen zwei von drei Dateien sehen. Nach Auswahl von A <-> B, A <-> C oder B <-> C wird neben der normalen noch eine zweite Übersichts-Spalte mit den benötigten Informationen angezeigt. + Zeilenumbruch für VergleichsanzeigeAktiviert den Zeilenumbruch in der Vergleichsanzeige, wenn die Länge einer Zeile die Breite des Fensters überschreitet. + Fenster A/B/C anzeigen:Manchmal möchte man den verfügbaren Platz auf dem Bildschirm lieber für lange Zeilen benutzen. Blenden Sie einfach die weniger wichtigen Fenster aus. Diese Option befindet sich im Menü Fenster. + Ausrichtung der Fensterteilung umschaltenOrdnet die Vergleichsfenster nebeneinander (A links von B links von C) oder übereinander (A über B über C) an. Dies kann auch zum Anzeigen von langen Zeilen nützlich sein. Diese Option befindet sich im Menü Fenster. + Aktuelle Datei zusammenführenFunktioniert auch dann, wenn Sie nur zwei Dateien vergleichen. Ein einfacher Klick startet die Zusammenführung und benutzt den Dateinamen der letzten Quelldatei als voreingestellten Namen für die Ausgabedatei. Wenn diese Funktion benutzt wird, um das Zusammenführen erneut zu starten, dann wird der Name der zuletzt benutzten Ausgabedatei beibehalten. + Leerräume anzeigenSchalten Sie dies ab, um Hervorhebungen von Änderungen in Leerräumen in den Text- oder Übersichtsspalten zu unterdrücken. (Hinweis: Dies gilt auch für Änderungen in Zahlen oder Kommentaren, wenn die Optionen Zahlen ignorieren, wie Leerräume behandeln oder C/C++-Kommentare ignorieren, wie Leerräume behandeln aktiviert sind.) + Leerzeichen und Tabulator-Zeichen anzeigen:Manchmal sind sichtbare Leerzeichen und Tabulatoren störend. Sie können die Anzeige dieser Zeichen abschalten. + Zeilennummern anzeigenSie können wählen, ob in den Quelldateien die Zeilennummern angezeigt werden sollen. + + + +Kurzbefehle festlegen +Zurzeit unterstützt nur die &frameworks;-Version benutzerdefinierbare Kurzbefehle (Menü EinstellungenKurzbefehle festlegen ...) + + + +Vorverarbeitungsbefehle +&kdiff3; unterstützt zwei Vorverarbeitungsbefehle. + + Vorverarbeitungsbefehl:Beim Lesen einer Datei wird sie zuerst diesem externen Befehl übergeben. In &kdiff3; wird dann die Ausgabe des Befehls sichtbar, und nicht die Datei selbst. Sie können Ihren eigenen Vorverarbeitungsbefehle schreiben, die genau Ihre Ansprüchen erfüllen. Sie können diese Funktion z. B. zum Herausschneiden störender Teile oder zum Korrigieren der Einrückung verwenden. + Vorverarbeitungsbefehl nur für Zeilenabgleich:Beim Lesen einer Datei wird sie zuerst diesem externen Befehl übergeben. Wenn auch ein normaler Vorverarbeitungsbefehl angegeben wurde (siehe oben), dann ist die Ausgabe des Befehls die Eingabe dieses Vorverarbeitungsbefehls. Die Ausgabe des Befehls wird nur beim Zeilenabgleich verwendet. Sie können Ihre eigenen Vorverarbeitungsbefehle schreiben, der genau Ihre Ansprüchen erfüllen. Jede Eingabe-Zeile muss eine zugehörige Ausgabe-Zeile haben. + + +Der Gedanke dahinter ist, dem Anwender mehr Flexibilität beim Einrichten der Diff-Ergebnisse zu ermöglichen. Doch dafür wird ein externes Programm benötigt, und die meisten Anwender möchten das nicht selbst programmieren. Die Gute Nachricht ist allerdings, dass in dem meisten Fällen sed oder perl vollkommen ausreichen. +Beispiel: Ein einfacher Testfall. Wir nehmen eine Datei a.txt (6 Zeilen): +aa + ba + ca + da + ea + fa + +Und Datei b.txt (3 Zeilen): +cg + dg + eg + +Ohne Vorverarbeitung würden die folgenden Zeilen nebeneinander stehen: +aa - cg + ba - dg + ca - eg + da + ea + fa + +Dies ist allerdings nicht das gewünschte Ergebnis, weil der erste Buchstabe die interessante Information darstellt. Um den Suchalgorithmus beim Abgleich zu unterstützen, ignorieren wir den zweiten Buchstaben. Dazu kann folgende Zeilen-Vorverarbeitung verwendet werden, der g durch a ersetzt: +sed 's/g/a/' + +Mit diesem Befehl würde das Ergebnis des Vergleichs so aussehen: +aa + ba + ca - cg + da - dg + ea - eg + fa + +Programmintern sieht der Vergleichsalgorythmus die Dateien erst nach dem Durchlauf de Zeilen-Vorverarbeitung, auf dem Vorverarbeitung würde auch die Daten auf dem Bildschirm ändern.) + +<command +>sed</command +>-Grundlagen +Dieser Abschnitt führt Sie nur in einige sehr grundlegende Funktionen von sed ein. Weiterführende Informationen finden Sie unter info:/sed oder https://www.gnu.org/software/sed/manual/html_mono/sed.html. Eine vorkompilierte Version für &Windows; finden Sie unter http://unxutils.sourceforge.net. Beachten Sie, dass die folgenden Beispiele voraussetzen, dass der Befehl sed sich in einem Ordner in der PATH-Variable befindet. Falls das nicht der Fall sein sollte, müssen Sie den vollständigen Pfad zu sed angeben. +In diesem Kontext wird nur der sed-Ersetzungs-Befehl benutzt: +sed 's/REGEXP/REPLACEMENT/FLAGS' + +Bevor Sie in &kdiff3; einen neuen Befehl benutzen, sollten Sie ihn zuerst in der Konsole testen. Hier kann der echo-Befehl sehr hilfreich sein. Beispiel: +echo abrakadabra | sed 's/a/o/' + -> obrakadabra + +Dieses Beispiel zeigt einen einfachen sed-Befehl, der das erste Vorkommen von a durch o ersetzt. Wenn Sie alle Vorkommen ersetzen möchten, müssen Sie den Schalter g benutzen: +echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + +Das |-Symbol ist der Pipe-Befehl, er übergibt die Ausgabe des ersten Befehls an die Eingabe des folgenden Befehls. Wenn Sie Ihren sed-Befehl mit einer längeren Datei testen möchten, dann können Sie unter &UNIX; cat und unter &Windows; type dazu benutzen. sed wird die Ersetzung in jeder Zeile der Datei durchführen. cat dateiname | sed optionen + + + +Beispielanwendungen von <command +>sed</command +> in &kdiff3; +Ignorieren weiterer Kommentartypen +Zurzeit unterstützt &kdiff3; nur C/C++-Kommentare. Mit Hilfe von Vorverarbeitungsbefehl nur für Zeilenabgleich können Sie andere Kommentar-Arten ignorieren. Dafür wandeln Sie diese in C/C++-Kommentare um. +Beispiel: Um Kommentare zu ignorieren, die mit # beginnen, würden Sie diese zu // umwandeln. Außerdem muss natürlich die Option C/C++-Kommentare ignorieren, wie Leerräume behandeln aktiviert sein, damit dies etwas bewirkt. Ein passender Befehl für den Vorverarbeitungsbefehl nur für Zeilenabgleich wäre zum Beispiel: +sed 's/#/\/\//' + +Weil das Zeichen / für sed ein Sonderzeichen ist, muss jedem / ein \ vorangestellt werden. Manchmal wird dies benötigt, um einem Sonderzeichen die besondere Bedeutung zu entziehen. Die einfachen Anführungszeichen (') sind nur beim Testen auf der Befehlszeile wichtig, weil die Shell sonst versucht, einige Zeichen zu verarbeiten. In &kdiff3; werden nur die Escape-Sequenzen wie' \"' und '\\' verarbeitet. + +Diff ohne Beachtung der Groß-/ Kleinschreibung +Verwenden Sie diesen Vorverarbeitungsbefehl für Zeilenabgleich um die Eingabe in Großbuchstaben umzuwandeln: +sed 's/\(.*\)/\U\1/' + +Das .* ist ein regulärer Ausdruck, der auf jede Zeichenfolge passt und in diesem Zusammenhang daher alle Zeichen in einer Zeile erfasst. Das \1 in der Ersetzungs-Zeichenfolge bezieht sich auf den gefundenen Text im ersten Klammerpaar. Das \U wandelt den gefundenen Text in Großbuchstaben um. + + +Ignorieren von Schlüsselwörtern aus Versionskontrolle-Systemen +CVS und andere Versionskontrolle-Systeme verwenden einige Schlüsselwörter, um automatisch erzeugte Zeichenfolgen einzufügen (info:/cvs/Keyword substitution). Alle folgen demselben Muster $SCHLÜSSELWORT erzeugter Text$. Nun wird also ein Vorverarbeitungsbefehl für Zeilenabgleich benötigt, der den automatisch erzeugten Text entfernt: +sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + +Das \| trennt die möglichen Schlüsselwörter. Sie können die Liste nach Bedarf ändern. Das \ vor dem $ ist nötig, weil $ ein Sonderzeichen ist und Ende der Zeile bedeuten würde. +Während Sie mit sed experimentieren, beginnen Sie vielleicht, es zu verstehen und vielleicht mögen Sie diese regulären Ausdrücke sogar. Sie sind sehr nützlich weil es viele Programme gibt, die sehr ähnliche Dinge unterstützen. + + +Ignorieren von Zahlen +Das Ignorieren von Zahlen ist eigentlich eine bereits eingebaute Funktion. Aber sie ist gut als Beispiel für einen weiteren Vorverarbeitungsbefehl für Zeilenabgleich geeignet. +sed 's/[0123456789.-]//g' + +Jedes Zeichen zwischen '[' und ']' ist eine Übereinstimmung, und jede Übereinstimmung wird durch nichts ersetzt, also quasi gelöscht. + + +Ignorieren von bestimmten Spalten +Manchmal ist ein Text nach strengen Regeln formatiert und enthält Spalten, die Sie grundsätzlich ignorieren möchten, und andere Spalten, die Sie für die Analyse heranziehen möchten. Im folgenden Beispiel werden die ersten fünf Spalten (Zeichen) ignoriert, dann 10 Spalten beibehalten, dann wieder fünf Spalten ignoriert und der Rest der Zeile wird beibehalten. +sed 's/.....\(..........\).....\(.*\)/\1\2/' + +Jeder Punkt '.' passt auf genau ein Zeichen. Die \1 und \2 in der Ersetzungs-Zeichenfolge beziehen sich auf den gefundenen Text im ersten und zweiten Klammerpaar und markieren so den beizubehaltenden Text. + + +Mehrere Ersetzungen kombinieren +Manchmal möchten Sie vielleicht mehrere Ersetzungen auf einmal durchführen. Dann können Sie das Semikolon ; benutzen, um die Ersetzungen voneinander zu trennen. Beispiel: +echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + +<command +>perl</command +> statt <command +>sed</command +> benutzen +Statt sed können Sie auch etwas anderes wie z. B. perl verwenden. +perl -p -e 's/REGEXP/REPLACEMENT/FLAGS' + + Allerdings sind bei perl einige Details anders. Wo sed \( und \) benötigt, braucht perl nur noch ( und ) ohne das vorangestellte \. Beispiel: +sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + +Reihenfolge der Ausführung von Vorverarbeitungsbefehlen +Die Daten werden durch interne und externe Vorverarbeitungsbefehle in dieser Reihenfolge durchgeschleust: + +Normale Vorverarbeitungsbefehle, +Vorverarbeitungsbefehl für Zeilenabgleich, +Groß-/Kleinschreibung ignorieren, wie Leerräume behandeln (Umwandlung in Großbuchstaben), +Erkennung von C/C++ Kommentaren, +Zahlen ignorieren, wie Leerräume behandeln, +Leerräume ignorieren + +Die Daten nach der normalen Vorverarbeitung werden für die Anzeige und zum Zusammenführen beibehalten. Die weiteren Operationen verändern nur die Daten, die der Zeilenabgleich-Algorithmus sieht. Beachten Sie: In seltenen Fällen wenn Sie einen normalen Vorverarbeitungsbefehlverwenden, sieht der Zeilenabgleich-Vorverarbeitung die Ausgabe der normalen Vorverarbeitung als Eingabe. + + +Warnung +Die Vorverarbeitungsbefehle sind sehr nützlich, aber wie bei jeder Funktion, die Text verändert oder Unterschiede ausblendet, können Sie versehentlich bestimmte Unterschiede nicht bemerken und im schlimmsten Fall wichtige Daten zerstören. Beim Zusammenführen werden Sie daher von &kdiff3; gewarnt, falls ein Vorverarbeitungsbefehl benutzt wurde. Sie werden gefragt, ob dieser deaktiviert werden soll oder nicht. Sie werden allerdings nicht gewarnt, wenn ein Vorverarbeitungsbefehl für den Zeilenabgleich benutzt wird. Das Zusammenführen ist nicht abgeschlossen bevor nicht alle Konflikte aufgelöst wurden. Falls Sie UnterschiedsansichtLeerräume anzeigen deaktivihaben, dann sind die vom Vorverarbeitungsbefehl nur für Zeilenabgleich entfernten Unterschiede ebenfalls unsichtbar. Wenn der Knopf Speichern während des Zusammenführens deaktiviert bleibt (durch nicht aufgelöste Konflikte), dann aktivieren Sie UnterschiedsansichtLeerräume anzeigen. Falls diese weniger wichtigen Unterschiede nicht zusammengeführt werden sollen, können Sie auch ZusammenführenFür alle ungelösten Leerraum-Konflikte A/B/C wählen im Menü auswählen. + + + + + +Mit &kdiff3; Ordner vergleichen und zusammenführen +Einführung zum Ordnervergleich oder -zusammenführung +Oftmals müssen Programmierer in einem Ordner viele Dateien bearbeiten. Aus diesem Grund können Sie mit &kdiff3; komplette Ordner rekursiv vergleichen und zusammenführen. Auch wenn das Vergleichen und Zusammenführen von ganzen Ordnern recht naheliegend und einleuchtend erscheint, gibt es einige Details, die Sie wissen sollten. Der wichtigste Punkt ist natürlich, dass sich jeder Durchlauf dieser Funktion gleich auf viele Dateien auswirkt. Wenn Sie keine Sicherungskopie der Originaldaten haben, könnte es schwer oder gar unmöglich werden, den Originalstand wiederherzustellen. Bevor Sie das Zusammenführen starten, sollten Sie also sicherstellen, dass Ihre Daten gesichert sind und das Sie alles rückgängig machen können. Ob Sie ein Archiv erstellen oder ein System zur Versionskontrolle benutzen, ist Ihre Entscheidung; selbst erfahrene Programmierer und Integratoren benötigen hin und wieder die alten Quelltexte. Bitte beachten Sie auch, dass selbst ich (der Autor von &kdiff3;) keine Garantie geben kann, dass das Programm fehlerlos ist. Entsprechend der &GNU;-GPL gibt es für dieses Programm KEINE GARANTIE. Also denken Sie daran: +
+ Irren ist menschlich, aber um etwas wirklich durcheinander zu bringen braucht man schon einen Computer ;-) +
+All diese Dinge kann &kdiff3; für Sie erledigen: &kdiff3; ... + + ... liest und vergleicht rekursiv zwei oder drei Ordner, + ... behandelt symbolische Verknüpfungen besonders vorsichtig, + ... lässt Sie Ihre Dateien per Mausklick durchsuchen, + ... macht für jedes Objekt einen Vorschlag zum Zusammenführen; Sie können den Vorschlag vor dem Start anpassen, + ... kann das Zusammenführen simulieren und zeigt die simulierten Änderungen an, ohne sie wirklich durchzuführen, + ... führt letztendlich die Zusammenführung durch und lässt Sie (wenn nötig) eingreifen, + ... führt ausgewählte Aktionen entweder mit allen (F7-Taste), oder nur mit den ausgewählten Objekten (F6-Taste) aus, + ... setzt das Zusammenführen nach einem manuellen Eingriff fort (F7-Taste), + ... erzeugt optional Sicherungskopien mit der Erweiterung .orig, + ... + +
+ +Ordnervergleich oder -zusammenführung starten +Dies ist dem Vergleichen und Zusammenführen von einzelnen Dateien sehr ähnlich. Sie müssen nur Ordner auf der Befehlszeile oder im Dialog Datei öffnen angeben. +Vergleichen/Zusammenführen von zwei Ordnern: +kdiff3 Ordner1 Ordner2 + kdiff3 Ordner1 Ordner2 -o Zielordner + +Wenn kein Zielordner angegeben wurde, benutzt &kdiff3; Ordner2. + + +Vergleichen/Zusammenführen von drei Ordnern: +kdiff3 Ordner1 Ordner2 Ordner3 + kdiff3 Ordner1 Ordner2 Ordner3 -o Zielordner + +Wenn drei Ordner zusammengeführt werden, dann wird Ordner1 als Basis benutzt. Wenn kein Zielordner angegeben wurde, verwendet &kdiff3; Ordner3 als Zielordner. + +Beachten Sie, dass nur der Vergleich von Ordnern automatisch startet, nicht das Zusammenführen. Um das Zusammenführen zu starten, müssen Sie den entsprechenden Menüeintrag auswählen oder die F7-Taste drücken. (Weitere Details folgen.) + + + +Angezeigte Informationen über Ordnerzusammenführung +Während dem Einlesen der Ordner informiert Sie ein kleines Nachrichtenfenster über den aktuellen Fortschritt. Wenn Sie das Scannen der Ordner abbrechen, werden nur die Dateien aufgelistet, die bis dahin verglichen wurden. Wenn das Scannen der Ordner abgeschlossen ist, zeigt &kdiff3; ein Listenfenster mit den Ergebnissen auf der linken Seite, ... + + + +... und den Details zu dem jeweils ausgewählten Objekt auf der rechten Seite: + + + + + +Die Spalte <quote +>Name</quote +> +Jede Datei und jeder Ordner, die beim Verarbeiten gefunden wurde, wird hier in einem Baum dargestellt. Sie können ein Objekt mit einem einfachen Mausklick auswählen. Die Ordnerstruktur wird normalerweise zusammengeklappt dargestellt. Sie können einen Ordner aufklappen, indem Sie auf das +/- klicken, oder auf das Objekt doppelklicken oder indem Sie die Pfeiltasten &Left;/&Right; benutzen. Das Menü Ordner enthält zwei Funktionen Alle Unterordner einklappen und Alle Unterordner aufklappen mit denen Sie alle Ordner auf- bzw. zuklappen können. Wenn Sie auf eine Datei doppelklicken, wird der Dateivergleich gestartet und es erscheint ein Vergleichsfenster. +Das Symbol in der Spalte Name spiegelt den Dateityp im ersten Ordner (A) wieder. Diese Typen sind möglich: + + Normale Datei + Normaler Ordner (Ordner-Symbol) + Verknüpfung zu einer Datei (Datei-Symbol mit einem Verknüpfungs-Pfeil) + Verknüpfung zu einem Ordner (Ordner-Symbol mit einem Verknüpfungs-Pfeil) + +Wenn der Dateityp in den anderen Ordnern unterschiedlich ist, dann ist dies in den Spalten A/B/C und in dem Detailfenster zu dem ausgewählten Objekt sichtbar. In einem solchen Fall kann die Zusammenführungsaktion nicht automatisch gewählt werden. Wenn das Zusammenführen gestartet wird, werden Sie über Probleme dieser Art nochmals informiert. + + +Die Spalten A/B/C und das Farbschema +Wie in dem obigen Bild zu sehen ist, werden in den Spalten A/B/C die Farben Rot, Grün, Gelb und Schwarz verwendet. + + Schwarz: Dieser Eintrag existiert nicht in diesem Ordner. + Grün: Neuester Eintrag. + Gelb: Älter als grün, neuer als rot. + Rot: Ältester Eintrag. + +Bei identischen Einträgen ist die Farbe allerdings auch identisch, auch wenn das Alter der Einträge unterschiedlich ist. Ordner werden als identisch betrachtet, wenn ihr gesamter Inhalt identisch ist. Dann haben auch Ordner die gleiche Farbe. Bei Ordnern ist das Alter unerheblich für seine Farbe. Die Idee zu diesem Farbschema basiert auf dirdiff. Die Farben spiegeln die Farben eines Blattes wieder, welches erst grün ist, dann gelb wird und später, wenn es alt ist, rot wird. + +Die Aktions-Spalte +Nach dem Vergleichen der Ordner schlägt &kdiff3; eine Zusammenführungsaktion vor. Dieser Vorschlag wird in der Aktions-Spalte angezeigt. Sie können den Vorschlag ändern, indem Sie auf den entsprechenden Eintrag klicken. Daraufhin erscheint ein kleines Menü, in dem Sie eine Aktion auswählen können. Die häufigsten Aktionen können Sie auch mit der Tastatur auswählen. &Ctrl;1/2/3/4/∇ wählt entsprechend A/B/C/Zusammenführen/Löschen aus. Die Aktion wird dann während des Zusammenführens ausgeführt. Welche Aktionen möglich sind, hängt von dem Eintrag und dem aktuellen Zusammenführungs-Modus ab. Mögliche Zusammenführungs-Modi sind + + Drei-Ordner-Zusammenführen Awird als die ältere Basis für die beiden anderen herangezogen). + Zwei-Ordner-Zusammenführen. + Zwei-Ordner-Abgleich-Modus (aktivieren Sie diesen Modus mit der Option Ordner abgleichen). + +Beim Zusammenführen von drei Ordnern sind diese Aktions-Vorschläge möglich: Wenn für ein Objekt... + + ... alle drei Ordner identisch sind: Kopieren von C + ... A und C identisch sind, aber nicht B: Kopieren von B (oder falls B nicht existiert, löschen des Ziels, falls es existiert) + ... A und B identisch sind, aber nicht C: Kopieren von C (oder falls C nicht existiert, löschen des Ziels, falls es existiert) + ... B und C identisch sind, aber nicht A: Kopieren von C (oder falls C nicht existiert, löschen des Ziels, falls es existiert) + ... nur A existiert: Löschen des Ziels (falls es existiert) + ... nur B existiert: Kopieren von B + ... nur C existiert: Kopieren von C + ... A, B und C nicht identisch sind: Zusammenführen + ... A, B und C nicht den gleichen Dateityp haben (⪚ wenn A ein Ordner und B eine Datei ist): Fehler: Konflikt der Dateitypen. Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden. + +Beim Zusammenführen von zwei Ordnern sind diese Aktions-Vorschläge möglich: Wenn für ein Objekt... + + ... beide Ordner gleich sind: Kopieren von B + ... A existiert, aber nicht B: Kopieren von A + ... B existiert, aber nicht A: Kopieren von B + ... A und B existieren aber nicht identisch sind: Zusammenführen + ... A und B nicht den gleichen Dateityp haben (⪚ wenn A ein Ordner und B eine Datei ist): Fehler: Konflikt der Dateitypen. Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden. + +Der Modus zum Abgleich ist aktiv, wenn nur zwei Ordner und kein expliziter Zielordner angegeben wurden und wenn Ordner abgleichen aktiv ist. Dann wählt &kdiff3; die nötige Aktion aus, damit nachher beide Ordner identisch sind. Wenn für einen Eintrag ... + + ... beide Ordner identisch sind: Es wird nichts unternommen. + ... A existiert, aber nicht B: Kopieren A nach B + ... B existiert, aber nicht A: Copy KopierenB nach A + ... A und B existieren, aber nicht identisch sind: Zusammenführen und das Ergebnis in beiden Ordnern speichern. (Der Anwender sieht als sichtbaren Dateinamen für die Ausgabedatei nur B, direkt nach dem Zusammenführen kopiert &kdiff3; B nach A.) + ... A und B nicht den gleichen Dateityp haben (⪚ wenn A ein Ordner und B eine Datei ist): Fehler: Konflikt der Dateitypen. Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden. + +Wenn zwei Ordner zusammengeführt werden und die Option Neuere Datei statt Zusammenführung auswählen (unsicher) aktiviert ist, dann untersucht &kdiff3; das Datum der Dateien und schlägt die neuere Datei zum Kopieren vor. Wenn die Dateien unterschiedlich sind, aber das gleiche Datum aufweisen, dann erscheint eine Fehlermeldung Fehler: Gleiches Datum, aber unterschiedliche Dateien.. Solange solche Fehler nicht beseitigt sind, kann das Zusammenführen der Ordner nicht gestartet werden. + + +Die Status-Spalte +Während des Zusammenführens wird eine Datei nach der anderen abgearbeitet. Sie Status-Spalte zeigt Fertig an, wenn das Zusammenführen erfolgreich war, und entsprechend andere Meldungen, wenn etwas Unerwartetes auftrat. Wenn das Zusammenführen abgeschlossen ist, sollten Sie eine letzte Überprüfung vornehmen und nachsehen, ob der Status aller Einträge in Ordnung ist. + + +Die Statistik-Spalte +Wenn im Einrichtungsdialog die Dateivergleichsmethode Vollständige Analyse gewählt ist, wird &kdiff3; weitere Spalten anzeigen. Diese enthalten die Anzahl ungelöster, gelöster, Nicht-Leerraum- und Leerraum-Konflikte. Die Spalte für gelöste Konflikte wird nur angezeigt, wenn drei Ordner verglichen oder zusammengeführt werden. + + +Auswahl angezeigter Dateien +Mehrere Einstellungen beeinflussen, welche Dateien hier angezeigt werden. Einige dieser Optionen finden Sie im Einrichtungsdialog. Das Menü Ordner enthält folgende Aktionen: + Identische Dateien anzeigen: Dateien, die in allen Eingabeordnern gleich sind. + Unterschiedliche Dateien anzeigen: Dateien, die unterschiedlich und in zwei oder mehreren Ordnern vorhanden sind + Dateien anzeigen, die nur in A existieren: Dateien, die in A, aber nicht in B oder C vorhanden sind. + Dateien anzeigen, die nur in B existieren: Dateien, die in B, aber nicht in A oder C vorhanden sind. + Dateien anzeigen, die nur in C existieren: Dateien, die in C, aber nicht in A oder B vorhanden sind. + +Aktivieren Sie nur die Anzeige-Optionen für die Einträge, die aufgeführt werden sollen. Wenn Sie zum Beispiel nur alle Einträge zeigen möchten, die entweder nur in A oder B vorhanden sind, müssen Sie Dateien anzeigen, die nur in A existieren und Dateien anzeigen, die nur in B existieren aktivieren und alle anderen Einstellungen (Identische Dateien anzeigen, Unterschiedliche Dateien anzeigen, Dateien anzeigen, die nur in C existieren) ausschalten. Die Anzeige wird bei diesen Änderungen sofort aktualisiert. Diese Einstellungen treffen auch mit einer Ausnahme für Ordner zu. Das Abschalten von Unterschiedliche Dateien anzeigen blendet keine vollständigen Ordner aus. Dies funktioniert nur für die Dateien in Ordnern. Beachten Sie, das von diesen Einstellungen nur die Auswahl von Identische Dateien anzeigen beim Beenden gespeichert wird und daher beim nächsten Start wieder auf den gleichen Wert gesetzt ist. Alle anderen Einstellungen sind beim Start von &kdiff3; aktiviert. + + + + + +Ordner zusammenführen +Sie können entweder den gerade ausgewählten Eintrag (Datei oder Ordner) zusammenführen, oder alle Einträge auf einmal. Wenn Sie alle Zusammenführungsaktionen ausgewählt haben (auch in allen Unterordnern), können Sie das Zusammenführen starten. Beachten Sie bitte: Wenn Sie keinen Zielordner angegeben haben, dann wird im Modus Drei-Ordner-Zusammenführen C als Ziel benutzt, beim Zwei-Ordner-Zusammenführen wird B als Ziel gewählt und beim Abgleichen wird A und/oder B als Ziel verwendet. Wenn Sie einen Zielordner ausgewählt haben, prüfen Sie bitte nachher, ob alle Einträge die im Zielordner sein sollten, auch in der Ordnerstruktur angezeigt werden. Es gibt einige Optionen durch die bestimmte Einträge übersprungen werden könnten. Überprüfen Sie diese Optionen um unliebsame Überraschungen zu vermeiden: + + Unterordner einbeziehen: Wenn diese Option deaktiviert ist, werden keine Dateien in Unterordnern bearbeitet. + Datei-Muster/Datei-Ausschlussmuster: Ein-/ und Ausschließen auf das Muster passender Einträge + Versteckte Dateien ausschließen + Anzeige-Optionen (Identische/Unterschiedliche Dateien anzeigen, Dateien anzeigen, die nur in A/B/C existieren) + +Wenn Sie die Einstellungen ändern, um mehr Dateien anzuzeigen, müssen die Anzeige mit OrdnerNeu einlesen aktualisieren. Die Grund dafür ist, dass &kdiff3; für diese auf Grund der Kriterien ausgeschlossenen Dateien keinen Vergleich ausführt, um schneller zu arbeiten. Wenn Sie die Muster für Dateien und Ordner geändert haben, wird die Dateiliste beim Schließen des Einstellungsdialogs sofort aktualisiert. Beachten Sie, dass beim Schreiben in einen vollständig neuen Ordner normalerweise auch die identischen Dateien kopiert werden sollen.Aktivieren Sie dafür die Einstellung +>Identische Dateien anzeigen. Ist der Zielordner eines der Eingabefenster, so ist dies nicht erforderlich, da die Dateien bereits vorhanden sind. Wenn Sie soweit zufrieden sind, ist der Rest einfach. Um alle Einträge zusammenzuführen: Wählen Sie Ordnerzusammenführung starten/fortsetzen im Menü Ordner oder drücken Sie das Tastenkürzel F7. Um nur den aktuellen Eintrag zusammenzuführen: Wählen Sie Aktion des aktuellen Elements ausführen oder drücken Sie F6. Wenn durch widersprüchliche Dateitypen immer noch ungültige Zusammenführungsaktionen existieren, erscheint eine Meldung die auf die fehlerhaften Elemente hinweist. Sie können für sie dann eine gültige Aktion auswählen. Wenn Sie alle Einträge zusammenführen, erscheint ein Dialogfenster mit den Optionen Start, Simulieren und Abbrechen. + + Wählen Sie Simulieren +> wenn Sie erst sehen möchten, was passiert, ohne das wirklich Änderungen vorgenommen werden. Sie erhalten dann eine ausführliche Liste aller Aktionen. + Ansonsten klicken Sie auf Start, um das Zusammenführen wirklich zu beginnen. + +&kdiff3; führt dann bestimmte Aktionen mit allen Einträgen durch. Wenn ein manueller Eingriff nötig ist (zusammenführen einer einzelnen Datei), dann öffnet sich ein Zusammenführen-Fenster (beachten Sie das Bildschirmfoto). Wenn Sie mit dem manuellen Zusammenführen einer Datei fertig sind, wählen Sie erneut Ordnerzusammenführung starten/fortsetzen oder drücken Sie F7. Wenn Sie noch nicht gespeichert haben, erscheint ein entsprechender Dialog. Dann führt &kdiff3; seine Arbeit mit dem nächsten Eintrag fort. Wenn &kdiff3; auf einen Fehler stösst, erscheint eine Nachricht und ausführliche Status-Informationen. Am Schluss der Liste sehen Sie einige Fehlermeldungen, die Ihnen helfen sollen, die Ursache des Problems auszumachen. Wenn Sie das Zusammenführen fortsetzen (F7-Taste), lässt &kdiff3; Ihnen die Wahl es erneut zu versuchen, oder den problematischen Eintrag zu überspringen. So haben Sie die Möglichkeit, eine andere Aktion für den Eintrag auszuwählen oder das Problem auf andere Weise zu lösen, bevor Sie mit dem Zusammenführen fortfahren. &kdiff3; informiert Sie mit einem Nachrichten-Fenster, wenn das Zusammenführen abgeschlossen ist. Falls einige Einträge individuell zusammengeführt wurden, merkt sich &kdiff3; diese Einträge in der aktuellen Sitzung und führt sie beim späteren Zusammenführen aller Einträge nicht nochmals zusammen. Selbst wenn hier das Zusammenführen übersprungen wurde oder nicht gespeichert wurde, werden diese Einträge als erledigt betrachtet. Nur wenn Sie die Zusammenführungsaktion ändern, werden diese Einträge erneut zusammengeführt. + + +Optionen zum Vergleichen und Zusammenführen von Ordnern +Der Einrichtungsdialog von &kdiff3; (Menü Einstellungen&kdiff3; einrichten ...) hat nun eine Seite namens Ordner mit diesen Optionen: + + + Unterordner einbeziehen:Stellen Sie ein, ob Ordner rekursiv durchsucht werden sollen. + Datei-Muster:Nur Dateien, die auf das angegebene Muster passen, werden im Elementbaum angezeigt. Es können mehrere Muster eingegeben werden. Trennen Sie die Muster mit einem Semikolon ;. Gültige Platzhalter sind:* und ?. (⪚ *.cpp;*.h). Die Voreinstellung ist *. Dieses Muster wird nicht für Ordner verwendet. + Datei-Ausschlussmuster:Dateien und Ordner, die diesem Muster entsprechen, werden nicht im Elementbaum angezeigt. Es kann mehr als ein Muster eingegeben werden, benutzen Sie das Semikolon ; als Trennzeichen . Gültige Platzhalter sind:* und ?. Voreinstellung ist *.orig;*.o;*.obj. + Ordner-Ausschlussmuster:Ordner, die diesem Muster entsprechen, werden nicht im Elementbaum angezeigt. Es kann mehr als ein Muster eingegeben werden, benutzen Sie das Semikolon ; als Trennzeichen . Gültige Platzhalter sind:* und ?. Voreinstellung ist „CVS;deps;.svn“. + Ignorier-Datei verwenden:Ignoriert Dateien und Ordner, die auch von Quelltextverwaltungssystem ignoriert werden. Viele automatisch erzeugte Dateien werden mit Hilfe von Ignorierlisten ignoriert. Der große Vorteil ist, dass dies für jeden Ordner mit einer lokalen Ignorier-Datei eingestellt werden kann. Weitere Informationen finden Sie in der Dokumentation zu Quelltextverwaltungssystemen. + Versteckte Dateien und Ordner einbeziehenIn einigen Dateisystemen haben Dateien ein Attribut Versteckt. In anderen Dateisystemen markiert ein vorangestellter Punkt . eine Datei als versteckt. Mit dieser Option können Sie festlegen, ob diese Dateien im Elementbaum angezeigt werden sollen oder nicht. Diese Option ist in der Voreinstellung eingeschaltet. + Datei-Verknüpfungen folgenBei Verknüpfungen auf Dateien: Wenn die Option abgeschaltet ist, werden symbolische Verknüpfungen verglichen. Wenn die Option eingeschaltet ist, werden die Dateien verglichen, auf die die Links zeigen. Dies ist in der Voreinstellung deaktiviert. + Ordner-Verknüpfungen folgenBei Verknüpfungen auf Ordner: Wenn die Option abgeschaltet ist, werden die symbolischen Verknüpfungen verglichen. Wenn die Option eingeschaltet ist, werden die Verknüpfungen wie normale Ordner behandelt und rekursiv durchsucht. Beachten Sie, dass &kdiff3; nicht auf mögliche Rekursionen prüft. Eine Verknüpfung auf einen Ordner, der eine Verknüpfung auf sich selbst enthält, führt zu einer Endlosschleife und &kdiff3; stürzt ab. Diese Option ist in der Voreinstellung abgeschaltet. + Groß-/Kleinschreibung bei DateinamenUnter &Windows; ist diese Einstellung standardmäßig deaktiviert und unter allen anderen Betriebssystemen aktiviert. + Dateivergleichsmethode: + + BinärvergleichDies ist die voreingestellte Vergleichsmethode. + Vollständige AnalyseFührt eine vollständige Analyse jeder Datei durch und zeigt die Statistik-Spalten an. (Die Anzahl der Konflikte als Aufgelöst, Ungelöst, Nicht-Leerraum und Leerraum.) Die vollständige Analyse ist langsamer als eine einfache binäre Analyse, und wesentlich langsamer, wenn sie auf Dateien angewendet wird, die keinen Text enthalten. Geben Sie ein entsprechendes Ausschlussmuster ein. + Größe und Änderungsdatum vertrauen (unsicher)Wenn Sie große Ordner über ein langsames Netzwerk vergleichen, geht es möglicherweise schneller, nur das Änderungsdatum und die Dateigröße zu vergleichen. Dieser Geschwindigkeitsvorteil kostet Sie allerdings ein gewisses Maß an Sicherheit. Bitte mit Vorsicht benutzen. Diese Option ist in der Voreinstellung abgeschaltet. + Größe vertrauen (unsicher)Ähnlich wie Änderungsdatum vertrauen. Es findet kein echter Vergleich statt. Die Dateien werden als identisch betrachtet, wenn sie gleich groß sind. Das kann z. B. nützlich sein, wenn beim Kopieren das Änderungsdatum verlorengegangen ist. Bitte mit Vorsicht benutzen. Diese Option ist in der Voreinstellung abgeschaltet. + + + Ordner abgleichenAktiviert den Synchronisieren-Modus wenn zwei Ordner verglichen werden und kein Zielordner angegeben wurde. In diesem Modus werden die Vorschläge zum Zusammenführen so ausgewählt, dass nachher beide Ordner identisch sind. Auch die Ergebnisse vom Zusammenführen von Dateien werden in beiden Ordnern gespeichert. Diese Option ist in der Voreinstellung abgeschaltet. + Neuere Datei statt Zusammenführung auswählen (unsicher):Falls es Unterschiede gibt, wird statt des Zusammenführens das Kopieren der neueren Datei als Aktion vorgeschlagen. Dies wird als unsicher betrachtet, denn es wird das Wissen vorausgesetzt, dass die andere Datei nicht auch verändert wurde. Sie sollten dies in jedem Fall prüfen. Diese Option ist in der Voreinstellung abgeschaltet. + Sicherungskopie erstellen (.orig)Wenn eine Datei oder ein Ordner ersetzt oder gelöscht wird, dann wird die Originalversion umbenannt und erhält die Erweiterung .orig. Wenn eine alte Sicherungsdatei mit der Erweiterung .orig bereits existiert, so wird diese ohne weitere Sicherung gelöscht. Das betrifft auch das normale Zusammenführen einzelner Dateien, nicht nur das Zusammenführen ganzer Ordner. Diese Option ist in der Voreinstellung eingeschaltet. + + + +Weitere Funktionen im Fenster Ordnerzusammenführung +Ordner- & Textansicht teilen sich Hauptfenster +Normalerweise bleibt die Ansicht der Ordner-Zusammenführen während der Zusammenführung einzelner Dateien sichtbar. Sie können den Fensterteiler mit der Maus verschieben. Wenn Sie das nicht wollen, können Sie die Option mit OrdnerOrdner- & Textansicht teilen sich Hauptfenster abschalten und mittels OrdnerZwischen Ordner- & Textansicht umschalten zwischen den beiden Ansichten umschalten. + +Vergleichen und Zusammenführen einer einzelnen Datei +Wahrscheinlich bevorzugen Sie, eine Datei einfach mittels Doppelklick zu vergleichen. Dennoch gibt es im Menü Ordner auch einen entsprechenden Menüeintrag. Sie können eine einzelne Datei auch direkt zusammenführen, ohne erst die Ordnerzusammenführen starten zu müssen. Dazu benutzen Sie die Funktion ZusammenführenAktuelle Datei zusammenführen . Sobald Sie das Ergebnis speichern, wird der Status auf Erledigt gesetzt und die Datei wird nicht nochmals zusammengeführt, wenn Sie das Ordnerzusammenführen starten. Dieser Status geht allerdings verloren, wenn Sie den Ordner erneut einlesen: Menü OrdnerNeu einlesen + +Vergleichen und Zusammenführen von Dateien mit verschiedenen Namen +Manchmal möchten Sie Dateien mit unterschiedlichen Namen vergleichen oder zusammenführen, ⪚ die aktuelle Datei und eine Sicherungsdatei im selben Ordner. Wählen Sie die Dateien, indem Sie auf das Symbol in der Spalte A, B oder Cklicken. Die erste ausgewählte Datei wird mit A und die zweite und dritte mit B und C gekennzeichnet, unabhängig von der Spalte, in der sie sich befinden. Nur bis zu drei Dateien können auf diese Art ausgewählt werden. Wählen Sie dann OrdnerExplizit ausgewählte Dateien vergleichen oder OrdnerExplizit ausgewählte Dateien zusammenführen. Diese Einträge sind auch im Kontextmenü enthalten, das Sie mit Klicken der &RMBn; auf die zuletzt ausgewählte Datei öffnen können. Der Vergleich oder die Zusammenführung einer Datei erfolgt im gleichen Fenster. Wird diese Methode auf Ordner angewendet, wird ein neues Fenster geöffnet. + +
+ + +Verschiedene Themen + +Netzwerktransparenz durch KIO-Eingabe-/Ausgabemodule +KIO-Ein-/Ausgabemodule +Die &frameworks;-Bibliothek KIO unterstützt Netzwerktransparenz mit Hilfe von KIO-Ein-/Ausgabemodulen. &kdiff3; benutzt dies zum Einlesen von Dateien und Ordnern. Auf diese Weise können Sie Dateien und Ordner zum Öffnen angeben, die sich auf lokalen oder entfernten Rechnern befinden. Beispiel: +kdiff3 test.cpp ftp://ftp.weitweg.org/test.cpp + kdiff3 tar:/home/hacker/archiv.tar.gz/ordner ./ordner + + +Die erste Befehlszeile vergleicht eine lokale Datei mit einer Datei auf einem &FTP;-Server. Die zweite Befehlszeile vergleicht einen Ordner innerhalb eines komprimierten Archivs mit einem lokalen Ordner. Weitere interessante KIO-Slaves sind: + +Dateien aus dem WWW (http:), +Dateien von &FTP; (ftp:), +Verschlüsselte Dateiübertragung (fish:, sftp:), +&Windows;-Ressourcen (smb:), +Lokale Dateien (file:), + +Des weiteren wäre möglich (wenn auch weniger nützlich): + +Man-Pages (man:), +Info-Seiten (info:), + + + +Wie man &URL;s schreibt +Eine &URL; hat eine andere Syntax als lokale Dateien und Ordner. Ein paar Dinge sollten Sie beachten: + +Ein Pfad kann relativ sein und . oder .. enthalten. Das ist mit &URL;s nicht möglich, diese sind immer absolut. Sonderzeichen müssen maskiert werden. ("#" -> "%23", space ->"%20", &etc;). Zum Beispiel hat eine Datei mit dem Namen #foo# die &URL; file:/%23foo%23. Wenn eine &URL; nicht wie erwartet funktioniert, versuchen Sie erst mal, diese im &konqueror; zu öffnen. + + + + +Fähigkeiten von KIO-Slaves +Netzwerktransparenz hat auch einen Nachteil: Nicht alle Ressourcen haben die gleichen Fähigkeiten. Manchmal aufgrund des Dateisystems auf dem Server, manchmal durch das verwendete Protokoll. Es folgt eine kurze Liste der Einschränkungen: + +Teilweise werden keine Verknüpfungen unterstützt. Oder es kann nicht unterschieden werden, ob ein Verknüpfung auf eine Datei oder einen Ordner zeigt. Dann wird immer eine Datei als Verknüpfungsziel angenommen. (ftp:, sftp:). Die Dateigröße kann nicht immer ermittelt werden. Eingeschränkte Unterstützung für Berechtigungen. Es gibt keine Möglichkeit, Berechtigungen oder Veränderungsdatum zu bearbeiten. Daher weichen die Berechtigungen oder das Veränderungsdatum vom Original ab. Beachten Sie hierzu die Option Größe vertrauen (unsicher). Dies ist nur bei lokalen Dateien möglich. + + + + + +&kdiff3; als KPart-Komponente benutzen +&kdiff3; ist ein KPart-Komponente. Zurzeit ist die KParts::ReadOnlyPart-Schnittstelle eingebaut. Der hauptsächliche Verwendungszweck ist zurzeit als Unterschiede-Betrachter in &kdevelop;. &kdevelop; startet zuerst immer den eingebauten Unterschiede-Betrachter. Um &kdiff3; zu starten, drücken Sie die &RMB; über dem Unterschiede-Betrachter und wählen dann In KDiff3Part anzeigen aus dem Kontextmenü. Normalerweise benötigt &kdiff3; zwei vollständige Eingabedateien. Wenn es allerdings als KPart-Komponente benutzt wird, nimmt &kdiff3; an, dass die Eingabedatei eine Patch-Datei im „Unified“-Format ist. Dann entnimmt &kdiff3; die Namen der Originaldateien aus der Patch-Datei. Mindestens eine der beiden Dateien muss existieren. Dann startet &kdiff3; das Programm patch um die fehlende Datei wiederherzustellen. Im &dolphin; können Sie auf eine Patch-Datei klicken und aus dem Kontextmenü Vorschau inKDiff3Part auswählen. Beachten Sie bitte, dass das nicht funktioniert, wenn keine der Originaldateien existiert. Außerdem ist dies unzuverlässig, wenn sich die Originaldateien seit Erzeugung der Patch-Datei verändert haben. Wenn &kdiff3; als KPart-Komponente ausgeführt wird, unterstützt es nur das Vergleichen von zwei Dateien, eine sehr kleine Werkzeugleiste und Menü. Das Zusammenführen oder das Vergleichen von Ordnern wird im KPart-Modus nicht unterstützt. + + + +&kdiff3; für &git; Diff und Merge benutzen +&kdiff3; kann für &git; Diff und Merge verwendet werden. +Fügen Sie dazu die folgenden Zeilen in Ihre Datei gitconfig ein: +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <path to kdiff3 binary in your system> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <path to kdiff3 binary in your system +> + +Um dann den Unterschied zwischen zwei Commits anzuzeigen, verwenden Sie git difftool first_hash second_hash --tool=kdiff3 --cc some_file_in_the_git_tree +Um einen Zweig mit &kdiff3; zusammenzuführen, verwenden Sie git merge branch_name && git mergetool --tool=kdiff3 +Nach dem Auflösen von Konflikten beim Zusammenführen mit der normalen Vorgehensweise können Sie die Änderungen einspielen. + + + + +Fragen und Antworten&reporting.bugs; &updating.documentation; + +Warum heißt das Programm &kdiff3;? Programme mit dem Namen KDiff und KDiff2 (nun heißt es &kompare;) gibt es bereits. Außerdem weist der Name &kdiff3; bereits darauf hin, dass es zusammenführen kann wie das Programm diff3 aus der Diff-Tool-Sammlung. + +Warum wurde KDiff3 unter der GPL lizenziert? Ich verwende GPL-Programme schon sehr lange und habe viel gelernt, indem ich in die Quellen anderer Programme geschaut habe. Dies ist mein Dankeschön an alle Programmierer die diesen Weg gegangen sind oder ihn mal so gehen werden. + +Einige Knöpfe und Funktionen fehlen. Was ist passiert? Sie haben das Programm aus den Quellen kompiliert und dabei vermutlich nicht den richtigen Präfix für die Installation angegeben. In der Voreinstellung wird durch cmake in /usr/local installiert, aber dann können die Ressourcen für die Benutzerschnittstellen nicht gefunden werden &ie; kdiff3ui.rc). In der README-Datei finden Sie nähere Informationen zum richtigen Präfix. + +Häufig werden ähnliche, aber nicht identische Zeilen nebeneinander angezeigt, und manchmal nicht. Warum? Wenn nur die Anzahl an Leerräumen unterschiedlich ist, werden diese Zeilen erstmal als identisch behandelt; wenn jedoch auch nur ein Nicht-Leerraum unterschiedlich ist, wird die Zeile als nicht identisch behandelt. Wenn ähnliche Zeilen nebeneinander angezeigt werden, ist das tatsächlich Zufall, kommt aber leider häufig vor. Siehe auch Zeilen manuell ausrichten. + +Warum müssen alle Konflikte gelöst sein, bevor das Ergebnis gespeichert werden kann? Der Editor merkt sich für jeden Unterschied in den Dateien wo er beginnt und wo er endet. Das ist nötig, um einen Konflikt einfach durch das Klicken in den Quelltext und Auswählen des Knopfes A/B/C) lösen zu können. Diese wichtige Information geht allerdings verloren, wenn das Ergebnis einfach als Textdatei gespeichert wird und es ist zuviel Aufwand, extra ein eigenes Dateiformat zu entwerfen, das diese Informationen speichern könnte. + +Wie kann ich die Ansichten für die Unterschiede und das Zusammenführen so abgleichen, dass in allen Ansichten die gleiche Textposition gezeigt wird? Klicken Sie in die Zusammenfassungs-Spalte links neben dem Text, weitere Informationen dazu finden Sie in diesem Abschnitt. + +Warum hat der Editor im Ergebnisfenster einer Zusammenführung keine Funktion Rückgängig? Der Aufwand dafür war bisher zu groß. Sie können eine bestimmte Version immer durch das Auswählen einer Quelle A/B/C) wiederherstellen. Um größere Mengen an Text zu bearbeiten, sollte ein anderer Editor verwendet werden. + +Nach dem Entfernen von Text wird plötzlich <Keine Zeile in der Quelle> angezeigt und der Text lässt sich nicht löschen. Was bedeutet das und wie kann das entfernt werden? Der Editor merkt sich für jeden gleichen und unterschiedlichen Abschnitt Anfang und Ende. <No src line> bedeutet, dass in diesem Abschnitt nichts mehr existiert, noch nicht mal mehr das Zeichen für den Zeilenvorschub. So etwas kann beim automatischen Zusammenführen oder beim Editieren passieren und ist kein Problem, denn der Text erscheint nicht in der gespeicherten Datei. Wenn Sie den Originaltext wiederherstellen möchten, klicken Sie in den Abschnitt und wählen die korrekte Quelle A/B oder C) aus. + +Warum unterstützt &kdiff3; keine Syntaxhervorhebung? &kdiff3; benutzt bereits viele Farben zum Hervorheben von Unterschieden. Noch mehr Hervorhebung wäre verwirrend und verfehlt den Zweck. Benutzen Sie dafür bitte einen anderen Editor. + +Kann ich &kdiff3; benutzen, um Dateien von OpenOffice.Org, &Microsoft; Word, &Microsoft; Excel, &PDF;, &etc; zu vergleichen? Obwohl &kdiff3; jede beliebige Datei analysiert, wird das Ergebnis Sie wahrscheinlich nicht zufrieden stellen. &kdiff3; wurde zum Vergleich von einfachen Textdateien entwickelt. OpenOffice.org, &Microsoft; Word, &Microsoft; Excel, &etc; speichern viel mehr Informationen in den Dateien, zum Beispiel Schriften, Bilder, Seiten, Farben &etc; Diese Informationen kann &kdiff3; nicht verarbeiten. Daher zeigt &kdiff3; den Inhalt der Dateien als einfachen Text an. Diese Anzeige kann nicht lesbar sein oder zumindest seltsam aussehen. Da heute viele Programme den Inhalt von Dokumenten in Dateien im &XML;-Format abspeichern, können diese Dateien auch als einfacher Text gelesen werden. Bei kleinen Änderungen kann &kdiff3; immer noch hilfreich sein. Um nur den Text ohne eingebettete Objekte wie Bilder zu vergleichen, wählen Sie mit BearbeitenAlles auswählen und BearbeitenKopierenalles aus und kopieren dann den Text in die Zwischenablage. In &kdiff3; fügen Sie dann den Text in eins der Diff-Eingabefenster ein, siehe auch Auswahl, Kopieren und Einfügen. + +Wo ist die Option Nur Unterschiede anzeigen für Ordner geblieben? Es gibt jetzt mehrere Anzeige-Optionen im Menü Ordner. Deaktivieren Sie Identische Dateien anzeigen, das führt zum gleichen Ergebnis wie früher Nur Unterschiede anzeigen. + +Wie kann ich eine große Auswahl im Diff-Eingabefenster erstellen, wenn das Blättern so lange dauert? Starten Sie die Auswahl wie üblich durch Klicken und Halten der &LMBn;. Benutzen Sie dann die Navigationstasten wie zum Beispiel &PgDn; oder &PgUp; und halten dabei die linke Maustaste gedrückt. Siehe auch Auswählen, Kopieren und Einfügen. + +Wird Ihre Frage hier nicht beantwortet? Bitte senden Sie mir Ihre Frage zu. Ich bin dankbar für jeden Kommentar. + + + + + + +Danksagungen und Lizenz + +&kdiff3; - Ein Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern +Programm-Copyright 2002-2007 Joachim Eibl joachim.eibl at gmx.de +Viele gute Ideen und Fehlerberichte kamen von Kollegen und vielen Leuten aus dem Wild Wild Web. Vielen Dank! + +Dokumentation Copyright © 2002-2007 Joachim Eibl joachim.eibl at gmx.de + +Dokumentation Copyright © 2017-2019 Michael Reeves reeves.87 at gmail.com + +Deutsche Übersetzung: Thomas Reitelbach tr@erdfunkstelle.de &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/de/docs/kdiff3/man-kdiff3.1.docbook b/po/de/docs/kdiff3/man-kdiff3.1.docbook new file mode 100644 index 0000000..4b95034 --- /dev/null +++ b/po/de/docs/kdiff3/man-kdiff3.1.docbook @@ -0,0 +1,451 @@ + + +]> + + + +KDiff3-Benutzerhandbuch +BurkhardLück Handbuchseite zu KDiff3. &Burkhard.Lueck.mail; +2019-02-22 +kdiff3 1.9 + + + +kdiff3 +1 + + + +kdiff3 +Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern + + + +kdiff3 file file file alias1 alias2 alias3 alias string file + + + +Beschreibung +Vergleicht zwei oder drei Eingabedateien oder Ordner. + + + + +Optionen + + + +Ignoriert. (Benutzerdefiniert.) + + + + +Ignoriert. (Benutzerdefiniert.) + + + + +Ignoriert. (Benutzerdefiniert.) + + + + +Ignoriert. (Benutzerdefiniert.) + + + + +Quellen zusammenführen. + + + + file +Explizite Basisdatei. Für Kompatibilität mit anderen Werkzeugen. + + + + file +Ausgabedatei. Beinhaltet -m ⪚: -o newfile.txt + + + + file +Ausgabedatei. (Für Kompatibilität mit anderen Werkzeugen.) + + + + +Kein Fenster anzeigen, wenn alle Konflikte automatisch auflösbar sind, benötigt file + + + + +Die Option --auto ignorieren und immer die grafische Oberfläche anzeigen. + + + + alias1 +Anderer angezeigter Dateiname für erste Datei (Basis). + + + + alias2 +Anderer angezeigter Dateiname für zweite Datei. + + + + alias3 +Anderer angezeigter Dateiname für dritte Datei. + + + + alias +Anderer angezeigter Dateiname: Kann für jede Quelle spezifiziert werden. + + + + string +Eine Einstellung Überschreiben. Je Einstellung verwendbar ⪚: AutoAdvance=1. + + + + +Liste aller Einstellungen und aktueller Werte anzeigen. + + + + file +Eine andere Einstellungsdatei verwenden. + + + + +Erste Datei (Basis, falls nicht verwendet wird) + + + + +Zweite Datei + + + + +Dritte Datei + + + + + + + +Siehe auch + +Weitere ausführliche Dokumentation finden Sie unter help:/kdiff3. Geben Sie diese &URL; entweder im &konqueror; ein oder starten Sie khelpcenter help:/kdiff3. +kf5options(7) +qt5options(7) + + + + +Autoren +Diese Handbuchseite wurde von &Burkhard.Lueck; &Burkhard.Lueck.mail; geschrieben + + + diff --git a/po/de/kdiff3.po b/po/de/kdiff3.po new file mode 100644 index 0000000..b410bed --- /dev/null +++ b/po/de/kdiff3.po @@ -0,0 +1,3636 @@ +# Thomas Diehl , 2003, 2004. +# Joachim Eibl , 2004, 2005, 2006. +# Thomas Reitelbach , 2004, 2006. +# Frederik Schwarzer , 2008, 2009, 2010, 2011, 2012, 2018, 2020, 2022. +# Burkhard Lück , 2008, 2009, 2011, 2012, 2013, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-03-02 11:28+0100\n" +"Last-Translator: Burkhard Lück \n" +"Language-Team: German \n" +"Language: de\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 21.12.2\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Frederik Schwarzer" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "schwarzer@kde.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Dateistatus holen: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Datei wird gelesen: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Datei wird geschrieben: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Nicht genügend Speicher" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Ordner wird erstellt: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Datei wird gelöscht: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Datei wird gelöscht: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Symbolische Verknüpfung wird erstellt: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Datei wird umbenannt: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Datei wird kopiert: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Datei wird gelesen: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Ordner anzeigen: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Datenverlust:\n" +"Falls das Problem reproduzierbar ist, nehmen Sie bitte Kontakt mit dem Autor " +"auf.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Schwerwiegender interner Fehler" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Schwerwiegender interner Fehler." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Schwerwiegender interner Fehler: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Datei: %1 Zeile %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Datei %1: Zeile nicht vorhanden" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodierung:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Zeilenende-Kodierung:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Basis)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kodierung: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Zeilenende-Kodierung: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Oberste Zeile" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Ende" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Datei öffnen" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Andere" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A nach B kopieren" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B nach A kopieren" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A löschen" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B löschen" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A & B löschen" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Zusammenführen nach A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Zusammenführen nach B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Zusammenführen nach A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Löschen (falls vorhanden)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Zusammenführen" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Zusammenführen (manuell)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Fehler: Konflikt der Dateitypen" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Fehler: Geändert und gelöscht" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Fehler: Gleiches Datum, aber unterschiedliche Dateien." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Fertig" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Fehler" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Übersprungen." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Nicht gespeichert." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "In Bearbeitung ..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Unerledigt." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Name" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Aktion" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Ungelöst" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Aufgelöst" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Nicht-Leerraum" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Leerraum" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Sie sind dabei, Ordner zusammenzuführen. Sind Sie sicher, dass Sie diese " +"Operation abbrechen und den Ordner erneut einlesen möchten?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Achtung" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Neu einlesen" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Zusammenführung fortsetzen" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Öffnen der Ordner fehlgeschlagen:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Ordner A „%1“ existiert nicht oder ist kein Ordner.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Ordner B „%1“ existiert nicht oder ist kein Ordner.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Ordner C „%1“ existiert nicht oder ist kein Ordner.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Fehler beim Öffnen des Ordners" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Wenn drei Ordner zusammengeführt werden, darf der Zielordner nicht mit A " +"oder B identisch sein.\n" +"Bitte überprüfen Sie das bevor Sie fortfahren." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parameter-Warnung" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Ordner werden eingelesen ..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Ordner A wird gelesen" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Ordner B wird gelesen" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Ordner C wird gelesen" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Einige Unterordner nicht lesbar in" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Überprüfen Sie bitte die Zugriffsrechte für die Unterordner." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Bereit." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Ordnervergleichsstatus\n" +"\n" +"Anzahl der Unterordner: %1\n" +"Anzahl gleicher Dateien:%2\n" +"Anzahl unterschiedlicher Dateien: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Anzahl der manuellen Zusammenführungen: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Dies beeinflusst alle Zusammenführungsaktionen." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Änderung aller Zusammenführungsaktionen" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Verarbeitung %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Einige Dateien können nicht bearbeitet werden." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Abbruch wegen zu vieler Fehler." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Diese Aktion ist momentan nicht zulässig." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Unzulässige Aktion" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Während des Kopierens ist ein Fehler aufgetreten." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Zusammenführungsfehler" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Unbekannte Zusammenführungsaktion. (Sollte nie passieren!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Unbekannte Zusammenführungsaktion." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Die Zusammenführung kann nun starten.\n" +"\n" +"Wählen Sie „Start“ wenn Sie die Anleitung gelesen haben und wissen was Sie " +"erwartet.\n" +"Wählen Sie „Simulieren“ um zu sehen, was passieren würde.\n" +"\n" +"Sie sollten aber wissen, dass dieses Programm noch Beta-Status hat und es " +"KEINE GARANTIE gibt! Erstellen Sie Sicherungskopien Ihrer wichtigen Daten!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Start der Zusammenführung" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Start" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulieren" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Das markierte Element hat einen unterschiedlichen Typ in den verschiedenen " +"Ordnern. Wählen Sie eine Aktion." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Für die markierte Datei ist zwar das Datum der letzten Änderung gleich, aber " +"die Dateien unterscheiden sich. Wählen Sie die Zusammenführungsaktion." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Das markierte Element wurde in einem Ordner geändert und im anderen " +"gelöscht. Wählen Sie eine Aktion." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Diese Aktion ist derzeit nicht möglich, weil noch eine Ordnerzusammenführung " +"läuft." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Beim letzten Element ist ein Fehler aufgetreten.\n" +"Möchten Sie mit diesem Element fortfahren, oder es überspringen?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Fortsetzung der Zusammenführung nach einem Fehler" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Mit letztem Element fortfahren" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Element überspringen" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Die Zusammenführung ist abgeschlossen." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Zusammenführung abgeschlossen." + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Die simulierte Zusammenführung ist abgeschlossen. Überprüfen Sie, ob Sie mit " +"den vorgeschlagenen Aktionen einverstanden sind." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Ein Fehler ist aufgetreten. Wählen Sie OK um Details zu sehen." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" +"Fehler: Beim Löschen von %1: Die Erstellung einer Sicherungskopie ist " +"fehlgeschlagen." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "Ordner rekursiv löschen ( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "Löschen ( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Fehler: Löschen des Ordners ist fehlgeschlagen, da er nicht gelesen werden " +"kann." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Fehler: Ordner löschen( %1 ) Operation fehlgeschlagen." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Fehler: Löschoperation fehlgeschlagen." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "Manuelles Zusammenführen( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr " Hinweis: Nach manuellem Zusammenführen mit F7 fortsetzen." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Fehler: Kopie( %1 -> %2 ) fehlgeschlagen. Das existierende Ziel kann nicht " +"gelöscht werden." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Verknüpfung kopieren( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Fehler: Verknüpfung kopieren: Nichtlokale Verknüpfungen werden nicht " +"unterstützt." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Fehler: Verknüpfung kopieren fehlgeschlagen." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopieren( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Fehler beim Umbenennen( %1 -> %2 ): Das existierende Ziel kann nicht " +"gelöscht werden." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "Umbenennen( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Fehler: Umbenennen fehlgeschlagen." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Fehler beim Erstellen des Ordners %1. Kann vorhandene Datei nicht löschen." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Ordner erstellen( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Fehler beim Erstellen des Ordners." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Ziel" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Ordner" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Typ" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Größe" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Letzte Änderung" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Verknüpfungsziel" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Datei" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Verknüpfung" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "nicht verfügbar" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Ziel): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Basis): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Ziel): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Ziel): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Ziel: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Status der Ordnerzusammenführung speichern unter ..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Ordnerzusammenführung starten/fortsetzen" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Aktion des aktuellen Elements ausführen" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Gewählte Datei vergleichen" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Aktuelle Datei zusammenführen" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Datei\n" +"zusammenführen" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Alle Unterordner einklappen" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Alle Unterordner ausklappen" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Für alle Elemente A wählen" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Für alle Elemente B wählen" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Für alle Elemente C wählen" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Aktion für alle Elemente automatisch wählen" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Keine Aktion für alle Elemente" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Identische Dateien anzeigen" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identische\n" +"Dateien" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Unterschiedliche Dateien anzeigen" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Dateien anzeigen, die nur in A existieren" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Dateien\n" +"nur in A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Dateien anzeigen, die nur in B existieren" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Dateien\n" +"nur in B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Dateien anzeigen, die nur in C existieren" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Dateien\n" +"nur in C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Explizit ausgewählte Dateien vergleichen" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Explizit ausgewählte Dateien zusammenführen" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nichts tun" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A && B löschen" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Nach A && B zusammenführen" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" +"Die vollständige URL kann nicht ermittelt werden. Es wurde kein Pfad " +"angegeben." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Datei %1 kann nicht gelesen werden" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Erstellung einer temporären Kopie von %1 ist fehlgeschlagen." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Öffnen von %1 ist fehlgeschlagen. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Fehler beim Lesen von %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Bei dem Versuch, eine Sicherungskopie zu erstellen, ist eine bereits " +"vorhandene Sicherungskopie nicht gelöscht worden.\n" +"Datei: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Als versucht wurde eine Sicherungskopie zu erstellen, ist das Umbenennen " +"fehlgeschlagen:\n" +"Dateien: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Aktuelle Einstellungen:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Fehler in der Einstellungsoption:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Option --auto verwendet, aber keine Ausgabedatei angegeben." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Option --auto wird beim Vergleich von Ordnern ignoriert." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Speichern fehlgeschlagen." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Öffnen dieser Dateien ist fehlgeschlagen:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fehler beim Öffnen der Datei" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Dateien für Vergleich öffnen ..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Neu laden" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Speichert das Ergebnis der Zusammenführung. Alle Konflikte müssen aufgelöst " +"sein." + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Speichert das aktuelle Dokument als ..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Unterschiede drucken" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Beendet das Programm" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Schneidet die Auswahl aus und kopiert sie in die Zwischenablage" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopiert den ausgewählten Bereich in die Zwischenablage" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Fügt den Inhalt der Zwischenablage an der aktuellen Position ein" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Alles in aktuellem Fenster auswählen" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Nach Text suchen" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Weitersuchen" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Blendet die Statusleiste ein/aus" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 einrichten ..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Zu aktuellem Unterschied springen" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Aktueller\n" +"Unterschied" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Zum ersten Unterschied springen" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Erster\n" +"Unterschied" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Zum letzten Unterschied springen" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Letzter\n" +"Unterschied" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Unterschiede in Leerräumen werden übersprungen, wenn „Leerräume anzeigen“ " +"ausgeschaltet ist.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Unterschiede in Leerräumen werden nicht übersprungen, auch wenn „Leerräume " +"anzeigen“ ausgeschaltet ist.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Zu vorherigem Unterschied springen" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Vorheriger\n" +"Unterschied" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Zu nächstem Unterschied springen" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Nächster\n" +"Unterschied" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Zu vorherigem Konflikt springen" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Vorheriger\n" +"Konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Zu nächstem Konflikt springen" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Nächster\n" +"Konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Zu vorherigem ungelösten Konflikt springen" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Vorheriger\n" +"Ungelöster" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Zu nächstem ungelösten Konflikt springen" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Nächster\n" +"Ungelöster" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Zeile(n) von A wählen" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Wähle\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Zeile(n) von B wählen" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Wähle\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Zeile(n) von C wählen" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Wähle\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Automatisch zu nächstem ungelösten Konflikt weiterspringen" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automatisch\n" +"zum nächsten" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Leer- und Tabulator-Zeichen anzeigen" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Leer-\n" +"räume" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Leerräume anzeigen" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Leerraum-\n" +"Unterschiede" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Zeilennummern anzeigen" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Zeilen-\n" +"nummern" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Einfache Konflikte automatisch lösen" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Alle Unterschiede zu Konflikten machen" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Zusammenführung über regulären Ausdruck starten" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Verlauf-Konflikte automatisch auflösen" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Unterschied bei der Auswahlmarkierung trennen" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Markierte Unterschiede verbinden" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Fenster A anzeigen" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Fenster B anzeigen" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Fenster C anzeigen" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normale Übersicht" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A/B-Übersicht" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A/C-Übersicht" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B/C-Übersicht" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Zeilenumbruch für Vergleichsanzeige" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Manuelle Ausrichtung hinzufügen" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Alle manuellen Ausrichtungen entfernen" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Nächstes Fenster aktivieren" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Vorheriges Fenster aktivieren" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Ausrichtung der Fensterteilung umschalten" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Ordner- && Textansicht teilen sich Hauptfenster" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Zwischen Ordner- && Textansicht umschalten" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Das Ergebnis der Zusammenführung wurde nicht gespeichert." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Speichern && Beenden" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Ohne zu speichern beenden" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Speichern des Ergebnisses der Zusammenführung ist fehlgeschlagen." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Sie führen eine Ordnerzusammenführung durch. Sind Sie sicher, dass Sie diese " +"beenden möchten?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Datei wird gespeichert ..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Datei wird unter neuem Namen gespeichert ..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Speichern unter ..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Eine Druckfunktion ist zurzeit noch nicht verfügbar." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Druckvorgang läuft ..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Seite %1 von %2 wird gedruckt" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Auswahl)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Drucken beendet." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Drucken abgebrochen." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Wird beendet ..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Werkzeugleiste anzeigen/ausblenden ..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Statusleiste anzeigen/ausblenden ..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3-Komponente" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Eine KPart-Komponente zur Anzeige von SVG-Grafiken" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 einrichten" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Die KDiff3-Komponente kann nicht gestartet werden.\n" +"Das ist normalerweise ein Installationsproblem. Bitte lesen Sie die README-" +"Datei, die den Quelltexten beiliegt." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Datei" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "&Ordner" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Zusammenführungsaktion für aktuelles Element" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Abgleichaktion für aktuelles Element" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "&Navigation" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "&Vergleichsansicht" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Zusammenführ&en" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Fenster" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Haupt-Werkzeugleiste" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignoriert. (Benutzerdefiniert.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"Copyright © 2002-2014 Joachim Eibl, Copyright © 2017 Michael Reeves " +"Portierung zu KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Quellen zusammenführen." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Explizite Basisdatei. Für Kompatibilität mit anderen Werkzeugen." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Ergebnisdateiname bei Zusammenführung. z. B.: -o neu.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Ergebnisdatei. (Für Kompatibilität mit anderen Werkzeugen.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Kein Fenster anzeigen, wenn alle Konflikte automatisch auflösbar sind. " +"(Benötigt -o)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" +"Die Option --auto ignorieren und immer die grafische Oberfläche anzeigen." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignoriert." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Anderer angezeigter Dateiname für erste Datei (Basis)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Anderer angezeigter Dateiname für zweite Datei." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Anderer angezeigter Dateiname für dritte Datei." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Anderer angezeigter Dateiname: Kann für jede Quelle spezifiziert werden." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Eine Einstellung ändern. Je Einstellung verwendbar. z. B.: --cs " +"„AutoAdvance=1“" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Liste aller Einstellungen und aktueller Werte anzeigen." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Eine andere Einstellungsdatei verwenden." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Erste Datei (Basis, falls nicht --base verwendet wird)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Zweite Datei" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Dritte Datei" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "kdiff3 --help zeigt all unterstützten Optionen." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Vergleich von spezieller und normaler Datei ist nicht möglich." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Vermischung von Verknüpfungen und Dateien" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Verknüpfung: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Größe." + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Datum & Größe: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Datei wird verglichen ..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Für alle A wählen" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Für alle B wählen" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Für alle C wählen" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Für alle ungelösten Konflikte A wählen" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Für alle ungelösten Konflikte B wählen" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Für alle ungelösten Konflikte C wählen" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Für alle ungelösten Leerraum-Konflikte A wählen" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Für alle ungelösten Leerraum-Konflikte B wählen" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Für alle ungelösten Leerraum-Konflikte C wählen" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Anzahl der verbleibenden ungelösten Konflikte: %1 (%2 davon Leerraum-" +"Konflikte)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Das Ergebnis wurde verändert.\n" +"Wenn Sie fortsetzen, gehen die Änderungen verloren." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Alle Quelldateien sind binär identisch." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Alle Quelldateien enthalten den gleichen Text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Die Dateien %1 und %2 sind binär identisch.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Die Dateien %1 und %2 enthalten den gleichen Text. \n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Gesamte Anzahl der Konflikte: %1\n" +"Anzahl der automatisch aufgelösten Konflikte: %2\n" +"Anzahl der ungelösten Konflikte: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konflikte" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Noch sind nicht alle Konflikte aufgelöst.\n" +"Die Datei wurde nicht gespeichert." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Es sind noch ungelöste Konflikte übrig" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Es besteht ein Zeilenende-Konflikt. Bitte wählen Sie manuell ein " +"Zeilenende.\n" +"Die Datei wurde nicht gespeichert." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Anlegen der Sicherungskopie ist fehlgeschlagen. Die Datei wurde nicht " +"gespeichert." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Fehler beim Speichern der Datei" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Fehler beim Schreiben." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Ausgabe:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Geändert]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Dateikodierung zum Speichern:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Codec von A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Codec von B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Codec von C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialog" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Basis):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Ziel (optional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Datei ..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Namen tauschen/kopieren ..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Optional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Ordner ..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Ein Versionsverwaltungs-Verlauf-Eintrag besteht aus mehreren Zeilen.\n" +"Geben Sie einen regulären Ausdruck an, um die erste Zeile (ohne die\n" +"voranstehenden Kommentarzeichen) zu erkennen.\n" +"Verwenden Sie runde Klammern um Sortierschlüssel zu gruppieren.\n" +"Wenn leer gelassen, nimmt KDiff3 an, dass die Verlauf-Einträge durch " +"Leerzeilen\n" +"getrennt sind. (Siehe Handbuch für Details.)" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Jedes Paar runder Klammern im regulären Ausdruck des Verlauf-Start-Eintrags\n" +"gruppiert einen Schlüssel, der für die Sortierung verwendet werden kann.\n" +"Geben Sie eine Liste der Schlüssel an (nummeriert in der " +"Auftrittsreihenfolge,\n" +"mit 1 beginnend), wobei das Komma als Trennzeichen verwendet wird. (z. B.: " +"„4,5,6,1,2,3,7“).\n" +"Wenn der Eintrag leer ist, wird keine Sortierung durchgeführt.\n" +"(Siehe Handbuch für Details)." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regulärer Ausdruck für Zeilen, für die KDiff3 automatisch eine Quelle " +"auswählen soll.\n" +"Wenn eine Konfliktzeile auf diesen regulären Ausdruck passt, wird\n" +"– sofern verfügbar – C, ansonsten B ausgewählt." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regulärer Ausdruck für die Startzeile des Versionsverwaltungs-Verlaufs.\n" +"Normalerweise enthält diese Zeile das Schlüsselwort „$Log$“.\n" +"Voreinstellung: „.*\\$Log.*\\$.*“" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Der schnelle braune Fuchs springt über den Fluss aber die kleine rote Henne " +"entkommt mit einem Schauer\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Schriftart ändern" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Schriftart: %1, %2, %3\n" +"\n" +"Beispiel:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Falls die speziellen Zeichen Ihrer Sprache nicht korrekt dargestellt werden, " +"können Sie diesen Wert ändern." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Einrichten" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Schriftart" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Schrift für Editor & Vergleichsfenster" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Schriftart der Anwendung" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Schriftart der Dateiansicht" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Farbe" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Farbeinstellungen" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editor und Unterschiedsansicht:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Vordergrundfarbe:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Hintergrundfarbe:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Hintergrundfarbe bei Unterschieden:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Farbe für A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Farbe für B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Farbe für C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Farbe für Konflikte:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Hintergrundfarbe für aktuellen Bereich:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Hintergrundfarbe für Unterschiede im aktuellen Bereich:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Farbe für manuell ausgerichtete Unterschiede:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Ordnervergleichsansicht:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Farbe für neueste Datei:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Änderung dieser Farbe wird erst beim Start des nächsten Ordnervergleichs " +"wirksam." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Farbe für älteste Datei:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Farbe für mittelalte Datei:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Farbe für fehlende Datei:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Verhalten des Editors" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabulator fügt Leerzeichen ein" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Falls aktiv wird bei Betätigen der Tabulator-Taste die passende Anzahl\n" +"Leerzeichen eingefügt. Sonst wird ein Tabulatorzeichen eingefügt." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tabulatorweite:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automatisch einrücken" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Wenn aktiv, wird die Einrückung der vorherigen Zeile bei neuen Zeilen " +"übernommen.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Auswahl automatisch kopieren" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Falls aktiv, wird die Auswahl automatisch sofort in die Zwischenablage " +"kopiert.\n" +"Sonst müssen Sie sie explizit kopieren, z. B. mit Strg-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Automatisch erkennen" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Legt die Kodierung für Zeilenenden beim Speichern fest.\n" +"DOS/Windows: CR+LF; Unix: LF; mit CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Vergleichseinstellungen" + +# Is part of another sentence, thus no full stop +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Zahlen ignorieren, wie Leerräume behandeln" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Zahlen werden während des Vergleichs wie Leerräume behandelt.\n" +"Dies kann sinnvoll sein, wenn Dateien viele Zahlen enthalten." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++-Kommentare ignorieren, wie Leerräume behandeln" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++-Kommentare wie Leerräume behandeln." + +# Is part of another sentence, thus no full stop +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Groß-/Kleinschreibung ignorieren, wie Leerräume behandeln" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Unterschiede bei Groß- und Kleinschreibung wie Änderungen in Leerräumen " +"behandeln. („a“<=>„A“)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Vorverarbeitungsbefehl:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Benutzerdefinierbare Vorverarbeitung: (Siehe Handbuch für Details.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Vorverarbeitungsbefehl nur für Zeilenabgleich:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Dieser Vorverarbeitungsbefehl wirkt nur in der Phase des Zeilenabgleichs.\n" +"(Siehe Handbuch für Details.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Aufwendig suchen (langsamer)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Der Vergleichsalgorithmus versucht aufwendig nach einem kleinem Satz von " +"Änderungen zu suchen. \n" +"Für sehr große Dateien kann der Vergleich viel langsamer sein." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "B und C bei drei Eingabedateien abgleichen" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Versuchen, B und C abzugleichen, wenn drei Dateien verglichen oder " +"zusammengeführt werden.\n" +"Dies ist für Zusammenführungen nicht empfohlen, da diese so komplizierter " +"werden können.\n" +"(Voreingestellt ist dies deaktiviert.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Zusammenführen" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Einstellungen für das Zusammenführen" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Verzögerung für das automatische Weiterspringen (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Wenn automatisches Weiterspringen aktiviert ist, wird das Ergebnis der " +"letzten Auswahl\n" +"für diese Dauer angezeigt, bevor weiter gesprungen wird. (0-2000 ms)" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Infofenster anzeigen" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Fenster mit Informationen über die Anzahl der Konflikte anzeigen." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Leerraum-Autoauswahl bei 2 Dateien:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Manuelle Auswahl" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Bei Datei-Zusammenführungen wird automatisch diese Vorauswahl für " +"ausschließlich Leerraum-Konflikte gewählt." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Leerraum-Autoauswahl bei 3 Dateien:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Regulärer Ausdruck für automatische Zusammenführung" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regulärer Ausdruck für automatische Zusammenführung:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Zusammenführung über regulären Ausdruck beim Start einer Zusammenführung " +"durchführen" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Zusammenführung über reguläre Ausdrücke sofort\n" +"beim Start einer Zusammenführung ausführen.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Versionsverwaltungs-Verlauf-Zusammenführung" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Regulärer Ausdruck für Verlauf-Start:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regulärer Ausdruck für Verlauf-Eintrag-Startzeile:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Sortierte Verlauf-Zusammenführung" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Schlüsselbasierte Sortierung der Versionsverwaltungs-Verlauf-Einträge" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Sortierschlüsselreihenfolge für Verlauf-Eintragsstart:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" +"Versionsverwaltungs-Verlauf beim Start einer Zusammenführung zusammenführen" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Startet eine Versionsverwaltungs-Verlauf-Zusammenführung beim Start einer " +"Zusammenführung" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Maximale Anzahl Verlauf-Einträge:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Nach angegebener Anzahl abschneiden. -1 bedeutet unbegrenzt." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Testen Sie Ihre regulären Ausdrücke" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Befehl bei irrelevanter Zusammenführung:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Wenn spezifiziert, wird dieser Befehl nach einer automatischen " +"Zusammenführung \n" +"ausgeführt, wenn keine relevanten Änderungen erkannt wurden.\n" +"Der Aufruf erfolgt mit den Parametern: Dateiname1 Dateiname2 Dateiname3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" +"Automatisch speichern und beenden, wenn ohne Konflikte zusammengeführt " +"werden kann" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Automatisch speichern und beenden, wenn KDiff3 für eine " +"Dateizusammenführung\n" +"von der Befehlszeile gestartet wurde und alle Konflikte automatisch ohne " +"Benutzerinteraktion aufzulösen sind.\n" +"(Ähnlich zur Befehlszeilen-Option „--auto“)." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Recursive Unterordner" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Falls aktiv, werden auch Unterordner eingelesen." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Datei-Muster:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Muster der zu analysierenden Dateien. \n" +"Platzhalterzeichen: „*“ und „?“\n" +"Es können mehrere Muster getrennt durch „;“ angegeben werden." + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Datei-Ausschlussmuster:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Muster der auszuschließenden Dateien. \n" +"Platzhalterzeichen: „*“ und „?“\n" +"Es können mehrere Muster getrennt durch „;“ angegeben werden." + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Ordner-Ausschlussmuster:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Muster der auszuschließenden Ordner. \n" +"Platzhalterzeichen: „*“ und „?“\n" +"Es können mehrere Muster getrennt durch „;“ angegeben werden." + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Ignorier-Datei verwenden" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Erweitert die Ausschlussmuster um alles, was auch das Quelltetxt-" +"Verwaltungssystem ignoriert.\n" +"Mit lokalen Ignorier-Dateien kann dies für einzelne Ordner eingestellt " +"werden." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Versteckte Dateien und Ordner einbeziehen" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Versteckte Dateien und Ordner werden einbezogen." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Datei-Verknüpfungen folgen" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Falls aktiv werden die Dateien auf die die Verknüpfung verweist, " +"verglichen.\n" +"Sonst nur die Verknüpfungen selbst." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Ordner-Verknüpfungen folgen" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Falls aktiv werden die Ordner auf die die Verknüpfung verweist, verglichen.\n" +"Sonst nur die Verknüpfungen selbst." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Groß-/Kleinschreibung bei Dateinamen" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Der Ordnervergleich vergleicht Dateien und Ordner wenn deren Namen gleich " +"sind.\n" +"Aktivieren Sie diese Einstellung, wenn es auch auf Groß-/Kleinschreibung im " +"Dateinamen ankommt. (Voreinstellung für Windows ist aus, sonst ein.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Alle Unterordner beim Laden ausklappen" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Falls aktiv werden alle Unterordner beim Start des Ordnervergleichs " +"ausgeklappt.\n" +"Ansonsten bleiben die Unterordner eingeklappt." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Ordner-Statusreport überspringen" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Falls aktiv wird der Ordnervergleichsstatus nicht angezeigt.\n" +"Ansonsten wird der Statusdialog beim Start angezeigt." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Dateivergleichsmethode" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binärvergleich" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binärvergleich aller Dateien (Voreinstellung)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Vollständige Analyse" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Vollständige Analyse durchführen und Statistik-Information in eigenen " +"Spalten anzeigen.\n" +"(Langsamer als Binärvergleich, viel langsamer bei Binärdateien.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Änderungsdatum vertrauen (unsicher)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Annehmen, dass Dateien identisch sind, wenn das Änderungsdatum und die Größe " +"übereinstimmen.\n" +"Dateien mit gleichem Inhalt aber unterschiedlichem Änderungsdatum werden als " +"unterschiedliche angezeigt.\n" +"Hilfreich bei großen Ordnern oder langsamen Verbindungen." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Größe und Datum vertrauen, aber binär vergleichen, wenn Datum nicht " +"übereinstimmt (unsicher)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Annehmen, dass Dateien identisch sind, wenn das Änderungsdatum und die Größe " +"übereinstimmen.\n" +"Unterscheiden sich die Daten, aber die Dateigrößen sind gleich, wird binär " +"verglichen.\n" +"Hilfreich bei großen Ordnern oder langsamen Verbindungen." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Größe vertrauen (unsicher)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Annehmen, dass Dateien identisch sind, wenn die Größe übereinstimmt.\n" +"Hilfreich bei großen Ordnern oder langsamen Verbindungen, wenn das " +"Änderungsdatum beim Kopieren modifiziert wird." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Ordner abgleichen" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Dateien werden in beiden Ordnern gespeichert, damit diese nachher identisch " +"sind.\n" +"Funktioniert nur, wenn zwei Ordner verglichen werden, und kein Ziel " +"angegeben ist." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Dateien mit Leerraum-Unterschieden als gleich markieren" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Wenn sich Dateien nur durch Leerräume unterscheiden, sollen diese wie " +"gleiche Dateien behandelt werden.\n" +"Dies ist nur wählbar, wenn vollständige Analyse ausgewählt ist." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Neuere Datei statt Zusammenführung auswählen (unsicher)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Falls aktiv, wird bei unterschiedlichen Dateien immer die neuere Datei " +"vorgeschlagen.\n" +"(Nicht empfehlenswert, wenn beide Versionen Änderungen enthalten könnten.)\n" +"Falls inaktiv wird eine Zusammenführung vorgeschlagen.\n" +"Nur beim Vergleich zweier Ordner wirksam." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Sicherungskopie erstellen (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Wenn eine Datei über eine existierende Datei gespeichert wird, bekommt die \n" +"bestehende Datei die Erweiterung „.orig“ und wird nicht gelöscht." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regionaleinstellungen" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Überall die gleiche Kodierung verwenden:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Durch Aktivierung dieser Option können alle Kodierungen durch Setzen der " +"ersten eingestellt werden. Dies auszuschalten erlaubt individuelle " +"Einstellungen." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Hinweis: Die lokale Kodierung ist „%1“" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Dateikodierung für A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ist diese Einstellung aktiviert, wird die Unicode-Kodierung (UTF-16 oder " +"UTF-8) bestimmt.\n" +"Ist die Datei nicht Unicode-kodiert, wird die Einstellung als Ausweichlösung " +"verwendet.\n" +"(Unicode-Erkennung hängt von den ersten Bytes der Datei ab.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Unicode automatisch erkennen" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Dateikodierung für B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Dateikodierung für C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Dateikodierung für Zusammenführung und Speichern:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automatisch wählen" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ist diese Einstellung aktiviert, wird die Kodierung der Eingabedatei " +"verwendet.\n" +"Ist diese nicht eindeutig zu bestimmen, wird der Benutzer beim Speichern " +"gefragt." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Dateikodierung für Vorverarbeitungs-Dateien:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Rechts-Nach-Links-Sprache" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Einige Sprachen werden von rechts nach links gelesen.\n" +"Diese Einstellung ändert die Anzeige und den Editor entsprechend." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integration" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Einstellungen für Integration" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Ignorierbare Befehlszeilenoptionen:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Liste der Befehlszeilenoptionen, die ignoriert werden sollen, wenn KDiff3\n" +"von anderen Werkzeugen aufgerufen wird.\n" +"Mehrere Werte können mit Trennzeichen „;“ angegeben werden.\n" +"Dies wird die Fehlermeldung „Unbekannte Option“ beim Start unterdrücken. " + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Auch mit der Escape-Taste beenden" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Schnelle Art zu beenden.\n" +"Für die, die es gewohnt sind, die Escape-Taste zu benutzen." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"Dies führt zum Zurücksetzen aller Einstellungen, nicht nur des aktuellen " +"Themas." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Vorverarbeitungsbefehl: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Die folgende(n) aktive(n) Einstellung(en) könnten Daten verändern:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Wahrscheinlich ist dies während der Dateizusammenführung nicht erwünscht.\n" +"Möchten Sie diese Einstellungen deaktivieren oder beibehalten und fortfahren?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Diese Einstellung ist bei Dateizusammenführungen unsicher" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Verwendung dieser Option während der Zusammenführung" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Unsichere Einstellung deaktivieren" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A wird geladen" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "A wird geladen: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B wird geladen" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "B wird geladen: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Vergleiche: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Zeilenvergleich: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C wird geladen" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "C wird geladen: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Vergleiche: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Vergleiche: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Zeilenvergleich: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Zeilenvergleich: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Alle Quelldateien enthalten den gleichen Text, sind aber nicht binär " +"identisch." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Die Dateien %1 und %2 haben den gleichen Text, sind aber nicht binär " +"identisch.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Einige Quelldateien scheinen keine reinen Textdateien zu sein.\n" +"Beachten Sie, dass KDiff3 nicht für den Binärdatenvergleich konzipiert ist.\n" +"Sie fahren auf eigenes Risiko fort." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Einige Eingabezeichen können nicht in gültigen Unicode umgewandelt werden.\n" +"Möglicherweise verwenden Sie die falsche Kodierung (z. B. UTF-8 für Nicht-" +"UTF-8-Dateien).\n" +"Speichern Sie das Ergebnis nicht, wenn Sie sich nicht sicher sind.\n" +"Die betroffenen Dateien liegen in %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Abbrechen" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Dateien werden geöffnet ..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Auswahl wird ausgeschnitten ..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Auswahl wird in Zwischenablage kopiert ..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Inhalt der Zwischenablage wird eingefügt ..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Zeilenumbruch (Abbrechen deaktiviert den Zeilenumbruch)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Maximale Breite wird für horizontale Bildlaufleiste berechnet" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Speichern && Fortsetzen" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Fortsetzen ohne zu speichern" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Suche abgeschlossen." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Suche abgeschlossen" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "In keinem der Unterschiedsfenster ist eine Auswahl markiert." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Fehler beim Hinzufügen einer manuellen Ausrichtung." + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Abbrechen" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "%1<->%2 tauschen" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "%1->Ziel kopieren" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "%1<->Ziel tauschen" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Einrichten ..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Ordner öffnen" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Ausgabedatei wählen" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Alle Dateien (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Suchtext:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Groß-/Kleinschreibung beachten" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "In A suchen" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "In B suchen" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "In C suchen" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Im Ergebnis suchen" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Suchen" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Testhilfe für reguläre Ausdrücke" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Beispielzeile für automatische Zusammenführung:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Um die automatische Zusammenführung zu testen, kopieren Sie eine Zeile aus " +"Ihrer Datei." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Übereinstimmungsergebnis:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Beispielzeile für Verlauf-Startzeile (mit Kommentarzeichen):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopieren Sie eine Verlauf-Startzeile aus Ihren Dateien,\n" +"inklusive der Kommentarzeichen am Anfang der Zeile." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Verlauf-Sortierschlüsselreihenfolge:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Beispiel-Verlaufeintragstartzeile (ohne Kommentarzeichen):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopieren Sie eine Verlaufeintragsstartzeile aus Ihren Dateien,\n" +"wobei Sie hier die Kommentarzeichen am Anfang weglassen." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sortierschlüsselergebnis:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Übereinstimmung erfolgreich." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Übereinstimmung fehlgeschlagen." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Öffnende und schließende runde Klammern in regulärem Ausdruck passen nicht " +"zusammen." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Speichern der Zwischenablage in temporäre Datei ist fehlgeschlagen." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Aus Zwischenablage" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 ist keine normale Datei." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Temporäre Datei ist %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Der Vorverarbeitungsbefehl ist möglicherweise fehlgeschlagen.\n" +"Bitte überprüfen Sie diesen Befehl:\n" +"\n" +" %1\n" +"\n" +"Diese Vorverarbeitung wird nun deaktiviert." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Die Datei %1 ist zu groß zum Bearbeiten und wird übersprungen." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Der Vorverarbeitungsbefehl für Zeilenabgleich ist möglicherweise " +"fehlgeschlagen.\n" +"Bitte überprüfen Sie diesen Befehl:\n" +"\n" +" %1\n" +"\n" +"Der Vorverarbeitungsbefehl für Zeilenabgleich wird nun deaktiviert." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" +"Nach einem schließenden Anführungszeichen wird ein Leerzeichen erwartet." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Nicht geschlossene Anführungszeichen." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Unerwartetes Anführungszeichen innerhalb des Arguments." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Kein Programm angegeben." \ No newline at end of file diff --git a/po/de/kdiff3fileitemactionplugin.po b/po/de/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..25c7969 --- /dev/null +++ b/po/de/kdiff3fileitemactionplugin.po @@ -0,0 +1,101 @@ +# Frederik Schwarzer , 2011, 2018. +# Burkhard Lück , 2013, 2018, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-03-02 11:28+0100\n" +"Last-Translator: Burkhard Lück \n" +"Language-Team: German \n" +"Language: de\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" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3 ..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Vergleichen mit %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Zusammenführen mit %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "„%1“ für später speichern" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-Wege-Zusammenführung mit Basis" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Vergleichen mit ..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Liste leeren" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Vergleichen" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3-Wege-Vergleich" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Über KDiff3-Menü-Modul ..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"KDiff3-Aktionsmodul für Dateieinträge: Copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Benutzung der Kontextmenü-Erweiterung:\n" +"Zum einfachen Vergleich zweier Dateien, wählen Sie „Vergleichen“.\n" +"Befindet sich die andere Datei an einer anderen Stelle, „speichern“ Sie die " +"erste Datei für später. Sie wird im Untermenü „Vergleichen mit ...“ " +"angezeigt. Verwenden Sie jetzt „Vergleichen mit“ mit der zweiten Datei.\n" +"Um eine 3-Wege-Zusammenführung vorzunehmen, „speichern“ Sie die Basisdatei " +"und die erste Branch-Datei und wenden dann „3-Wege-Zusammenführung mit " +"Basis“ auf die andere Branch-Datei an, die als Zusammenführungsziel " +"verwendet wird.\n" +"Diese Vorgehensweise ist die gleiche bei Ordner-Vergleichen und -" +"Zusammenführungen." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Über KDiff3-Aktionsmodul für Dateieinträge" \ No newline at end of file diff --git a/po/el/diff_ext.po b/po/el/diff_ext.po new file mode 100644 index 0000000..6cb49e0 --- /dev/null +++ b/po/el/diff_ext.po @@ -0,0 +1,128 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Stelios , 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-06-14 16:37+0300\n" +"Last-Translator: Stelios \n" +"Language-Team: Greek \n" +"Language: el\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 20.04.2\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Σύγκριση με %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Συγχώνευση με %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Τριπλή συγχώνευση με τη βάση" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Αποθήκευση '%1' για αργότερα" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Σύγκριση με ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Καθαρισμός λίστας" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Σύγκριση" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Τριπλή σύγκριση" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Σχετικά με το Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Αυτό το λογισμικό διανέμεται με την άδεια χρήσης BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Μερικές επεκτάσεις για το KDiff3 (c) 2006-2013 από τον Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Μεταφέρθηκε στο Qt5/Kf5 από τον Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Αρχική σελίδα για το Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Σχετικά με το Diff-Ext για το KDiff3 (64 Bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Σύγκριση επιλεγμένων αρχείων" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Σύγκριση '%1' με '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Αποθήκευση '%1' για μεταγενέστερη λειτουργά" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Αδυναμία έναρξης KDiff3. Εκτελέστε ξανά την εγκατάσταση του KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Εντολή" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Γραμμήεντολής" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext For KDiff3" \ No newline at end of file diff --git a/po/el/kdiff3.po b/po/el/kdiff3.po new file mode 100644 index 0000000..76c5fd4 --- /dev/null +++ b/po/el/kdiff3.po @@ -0,0 +1,3625 @@ +# translation of kdiff3.po to Greek +# +# Spiros Georgaras , 2005, 2006, 2007. +# Toussis Manolis , 2005, 2006, 2007, 2008, 2009. +# George Pantsis , 2008. +# Stelios , 2011, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-06-14 16:43+0300\n" +"Last-Translator: Stelios \n" +"Language-Team: Greek \n" +"Language: el\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.04.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Τούσης Μανώλης, Γιώργος Πάντσης" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "manolis@koppermind.homelinux.org, gpantsis@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Ανάκτηση κατάστασης αρχείου: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Ανάγνωση αρχείου: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Εγγραφή αρχείου: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Τέλος μνήμης" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Δημιουργία φακέλου: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Διαγραφή φακέλου: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Διαγραφή αρχείου: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Δημιουργία συμβολικού δεσμού: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Μετονομασία αρχείου: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Αντιγραφή αρχείου: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Ανάγνωση φακέλου: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Εμφάνιση καταλόγου: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Σφάλμα απώλειας δεδομένων:\n" +"Αν αναπαράγεται το σφάλμα, παρακαλώ επικοινωνήστε με τον συγγραφέα.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Σοβαρό εσωτερικό σφάλμα" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Σοβαρό εσωτερικό σφάλμα." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Σοβαρό εσωτερικό σφάλμα.: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Αρχείο %1: Γραμμή %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Αρχείο %1: Μη διαθέσιμη γραμμή" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Κωδικοποίηση:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Στιλ τέλους γραμμής:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "Α" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "Β" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "Γ" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "Α (Βάση)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Κωδικοποίηση %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Στιλ τέλους γραμμής: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Πρώτη γραμμή" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Τέλος" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Άνοιγμα αρχείων" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Άλλο" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Αντιγραφή του Α στο Β" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Αντιγραφή του Β στο Α" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Διαγραφή του Α" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Διαγραφή του Β" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Διαγραφή των Α & Β" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Συγχώνευση στο Α" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Συγχώνευση στο Β" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Συγχώνευση στα Α & Β" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Διαγραφή (αν υπάρχει)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Συγχώνευση" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Συγχώνευση (χειροκίνητη)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Σφάλμα: Σύγκρουση τύπου αρχείων" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Σφάλμα: τροποποιήθηκε και διαγράφτηκε" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Σφάλμα: Οι ημερομηνίες είναι ίδιες αλλά τα αρχεία όχι." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Έγινε" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Σφάλμα" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Παραλείφθηκε." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Δεν αποθηκεύτηκε." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Σε πρόοδο..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Προς υλοποίηση." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Όνομα" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Λειτουργία" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Κατάσταση" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Μη λυμένο" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Λυμένο" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Μη κενό" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Κενό" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Αυτή τη στιγμή κάνετε μια συγχώνευση φακέλου. Είστε σίγουροι ότι επιθυμείτε " +"την εγκατάλειψη της συγχώνευσης και την επανασάρωση του φακέλου;" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Προειδοποίηση" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Επανασάρωση" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Συνέχεια συγχώνευσης" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Το άνοιγμα των φακέλων απέτυχε:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Ο φάκελος Α «%1» δεν υπάρχει ή δεν είναι φάκελος.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Ο φάκελος Β «%1» δεν υπάρχει ή δεν είναι φάκελος.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Ο φάκελος Γ «%1» δεν υπάρχει ή δεν είναι φάκελος.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Σφάλμα ανοίγματος φακέλου" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Ο φάκελος προορισμού δεν πρέπει να είναι ίδιος με τους Α ή Β όταν " +"συγχωνεύονται τρεις φάκελοι.\n" +"Κάντε έναν έλεγχο ξανά πριν συνεχίσετε." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Προειδοποίηση παραμέτρου" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Σάρωση φακέλων..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Ανάγνωση φακέλου Α" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Ανάγνωση φακέλου Β" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Ανάγνωση φακέλου Γ" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Μερικοί υποφάκελοι δεν είναι αναγνώσιμοι στο" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Ελέγξτε τις άδειες χρήσης των υποφακέλων." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Έτοιμο." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Κατάσταση σύγκρισης φακέλων\n" +"\n" +"Πλήθος υποφακέλων: %1\n" +"Πλήθος ίδιων αρχείων: %2\n" +"Πλήθος διαφορετικών αρχείων: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Πλήθος χειροκίνητων συγχωνεύσεων: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Αυτό επηρεάζει όλες τις συγχωνεύσεις." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Αλλαγή όλων των λειτουργιών συγχώνευσης" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Επεξεργασία %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Αδυναμία επεξεργασίας κάποιων αρχείων." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Εγκατάλειψη εξαιτίας του μεγάλου πλήθους σφαλμάτων." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Αυτή η λειτουργία δεν είναι δυνατή αυτή τη στιγμή." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Μη δυνατή λειτουργία" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Ένα σφάλμα παρουσιάστηκε κατά την αντιγραφή." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Σφάλμα συγχώνευσης" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Άγνωστη λειτουργία συγχώνευσης. (Δε θα έπρεπε να συμβεί ποτέ!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Άγνωστη λειτουργία συγχώνευσης." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Η συγχώνευση είναι έτοιμη να ξεκινήσει.\n" +"\n" +"Επιλέξτε το \"Εκτέλεση\" αν διαβάσατε αρκετές οδηγίες και γνωρίζετε τι " +"κάνετε.\n" +"Επιλέγοντας την \"Εξομοίωση\" θα γίνει αναφορά του τι θα συμβεί.\n" +"\n" +"Σημειώστε ότι το αυτό το πρόγραμμα βρίσκεται ακόμη σε κατάσταση beta και δεν " +"υπάρχει ΕΓΓΥΗΣΗ ούτως ή άλλως! Κάντε εφεδρικά αντίγραφα για τα σημαντικά " +"δεδομένα σας!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Εκκίνηση συγχώνευσης" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Εκτέλεση" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Εξομοίωση" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Το τονισμένο αντικείμενο έχει διαφορετικό τύπο σε διαφορετικούς φακέλους. " +"Επιλέξτε τι θέλετε να κάνετε." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Οι ημερομηνίες τροποποίησης των αρχείων είναι ίδιες αλλά τα αρχεία δεν " +"είναι. Επιλέξτε τι θέλετε να κάνετε." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Το τονισμένο αντικείμενο άλλαξε σε έναν φάκελο και διαγράφτηκε σε έναν άλλο. " +"Επιλέξτε τι θέλετε να κάνετε." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Αυτή η λειτουργία δεν είναι αυτή τη στιγμή δυνατή γιατί η συγχώνευση φακέλων " +"εκτελείται αυτήν τη στιγμή." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Υπήρξε ένα σφάλμα στο τελευταίο βήμα.\n" +"Επιθυμείτε τη συνέχεια με το αντικείμενο που προκάλεσε το σφάλμα ή " +"επιθυμείτε την παράλειψή του;" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Συνέχεια συγχώνευσης μετά από ένα σφάλμα" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Συνέχεια με το τελευταίο αντικείμενο" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Παράλειψη αντικειμένου" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Η λειτουργία συγχώνευσης ολοκληρώθηκε." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Η συγχώνευση ολοκληρώθηκε" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Η εξομοίωση συγχώνευσης ολοκληρώθηκε: Ελέγξτε αν συμφωνείτε με τις " +"προτεινόμενες ενέργειες." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Παρουσιάστηκε ένα σφάλμα. Πατήστε το Εντάξει για να δείτε λεπτομερείς " +"πληροφορίες." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" +"Σφάλμα: Κατά τη διαγραφή του %1: Αποτυχία δημιουργίας εφεδρικού αντιγράφου." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "αναδρομική διαγραφή φακέλου( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "διαγραφή ( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Σφάλμα: η διαγραφή φακέλου απέτυχε κατά την προσπάθεια ανάγνωσης του " +"καταλόγου." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Σφάλμα: η λειτουργία rmdir( %1 ) απέτυχε." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Σφάλμα: η διαγραφή απέτυχε." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "χειροκίνητη συγχώνευση( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Σημείωση: Μετά από μία χειροκίνητη συγχώνευση ο χρήστης θα πρέπει να " +"συνεχίσει πατώντας F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Σφάλμα: η αντιγραφή ( %1 -> %2 ) απέτυχε. Η διαγραφή του υπάρχοντος " +"προορισμού απέτυχε." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Αντιγραφή δεσμού( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Σφάλμα: η αντιγραφή δεσμού απέτυχε: Οι απομακρυσμένοι δεσμοί δεν " +"υποστηρίζονται ακόμα." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Σφάλμα: η αντιγραφή δεσμού απέτυχε." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "αντιγραφή ( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Σφάλμα κατά την μετονομασία( %1 -> %2 ): Αδυναμία διαγραφής του υπάρχοντος " +"προορισμού." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "μετονομασία ( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Σφάλμα: Η μετονομασία απέτυχε." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Σφάλμα κατά τη δημιουργία του καταλόγου %1. Αδύνατη η διαγραφή υπάρχοντος " +"αρχείου." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Δημιουργία καταλόγου( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Σφάλμα κατά τη δημιουργία του φακέλου." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Προορ." + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Φάκελος" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Τύπος" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Μέγεθος" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Ιδιοτ" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Τελευταία τροποποίηση" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Δεσμός-προορισμός" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Αρχείο" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Δεσμός" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "μη διαθέσιμο" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Προορ): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "Α (Βάση): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "Β (Προορ): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "Β: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "Γ (Προορ): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "Γ: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Προορ: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Αποθήκευση κατάστασης συγχώνευσης φακέλου ως..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Έναρξη/συνέχεια συγχώνευσης φακέλου" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Εκτέλεση της λειτουργίας για το τρέχον αντικείμενο" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Σύγκριση του επιλεγμένου αρχείου" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Συγχώνευση του επιλεγμένου αρχείου" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Συγχώνευση\n" +"αρχείου" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Αναδίπλωση όλων των υποφακέλων" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Ανάπτυξη όλων των υποφακέλων" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Επιλογή του Α για όλα τα αντικείμενα" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Επιλογή του Β για όλα τα αντικείμενα" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Επιλογή του Γ για Όλα τα αντικείμενα" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Λειτουργία αυτόματης επιλογής για όλα τα αντικείμενα" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Καμία λειτουργία για όλα τα αντικείμενα" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Εμφάνιση ταυτόσημων αρχείων" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Ταυτόσημα\n" +"αρχεία" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Εμφάνιση διαφορετικών αρχείων" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Εμφάνιση αρχείων μόνο στο Α" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Αρχεία\n" +"μόνο στο Α" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Εμφάνιση αρχείων μόνο στο Β" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Αρχεία\n" +"μόνο στο Β" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Εμφάνιση αρχείων μόνο στο Γ" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Αρχεία\n" +"μόνο στο Γ" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Σύγκριση άμεσα επιλεγμένων αρχείων" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Συγχώνευση άμεσα επιλεγμένων αρχείων" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Να μη γίνει τίποτα" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Διαγραφή των A && B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Συγχώνευση σε A && B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Αδυναμία προσδιορισμού πλήρους url. Δεν ορίσθηκε γονέας." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Αποτυχία ανάγνωσης αρχείου: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Η δημιουργία του προσωρινού αντιγράφου για το %1 απέτυχε." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Αποτυχία ανοίγματος του %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Σφάλμα ανάγνωσης από το %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Αποτυχία διαγραφής παλαιότερου κατά τη δημιουργία εφεδρικού αντιγράφου.\n" +"Όνομα αρχείου: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Αποτυχία μετονομασίας κατά τη δημιουργία εφεδρικού αντιγράφου.\n" +"Ονόματα αρχείων: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Τρέχουσα διαμόρφωση:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Σφάλμα διαμόρφωσης επιλογής:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Χρησιμοποιήθηκε η επιλογή --auto, αλλά δεν καθορίστηκε αρχείο εξόδου." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Η επιλογή --auto αγνοήθηκε για τη σύγκριση φακέλων." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Η αποθήκευση απέτυχε." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Το άνοιγμα αυτών των αρχείων απέτυχε:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Σφάλμα ανοίγματος αρχείου" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Ανοίγει έγγραφα για σύγκριση..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Επαναφόρτωση" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Αποθηκεύει το αποτέλεσμα της συγχώνευσης. Όλες οι συγκρούσεις θα πρέπει να " +"έχουν επιλυθεί!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Αποθηκεύει το τρέχον έγγραφο ως..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Εκτύπωση των διαφορών" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Κλείνει την εφαρμογή" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Αποκοπή του επιλεγμένου τμήματος και τοποθέτηση στο πρόχειρο" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Αντιγραφή του επιλεγμένου τμήματος στο πρόχειρο" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Επικόλληση των περιεχομένων του πρόχειρου στην ενεργή θέση" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Επιλογή όλων στο τρέχον παράθυρο" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Αναζήτηση για μια συμβολοσειρά" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Αναζήτηση ξανά για μια συμβολοσειρά" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Ενεργοποιεί/απενεργοποιεί τη γραμμή κατάστασης" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Διαμόρφωση του KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Μετάβαση στην τρέχουσα διαφορά" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Τρέχουσα\n" +"διαφορά" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Μετάβαση στη πρώτη διαφορά" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Πρώτη\n" +"διαφορά" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Μετάβαση στην τελευταία διαφορά" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Τελευταία\n" +"διαφορά" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Παράλειψη των διαφορών στα κενά όταν είναι απενεργοποιημένη η \"Εμφάνιση " +"κενών\")" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Μη παράλειψη των διαφορών στα κενά ακόμη και αν είναι απενεργοποιημένη η " +"\"Εμφάνιση κενών\")" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Μετάβαση στη προηγούμενη διαφορά" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Προηγούμενη\n" +"διαφορά" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Μετάβαση στην επόμενη διαφορά" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Επόμενη\n" +"διαφορά" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Μετάβαση στην προηγούμενη σύγκρουση" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Προηγούμενη\n" +"σύγκρουση" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Μετάβαση στην επόμενη σύγκρουση" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Επόμενη\n" +"σύγκρουση" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Μετάβαση στην προηγούμενη μη λυμένη σύγκρουση" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Προηγούμενη\n" +"μη λυμένη" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Μετάβαση στην επόμενη μη λυμένη σύγκρουση" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Επόμενη\n" +"μη λυμένη" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Επιλογή γραμμής(ών) από το Α" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Επιλογή\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Επιλογή γραμμής(ών) από το Β" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Επιλογή\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Επιλογή γραμμής(ών) από το Γ" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Επιλογή\n" +"Γ" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Αυτόματη μετάβαση στην επόμενη μη λυμένη σύγκρουση μετά την επιλογή πηγής" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Αυτόματα\n" +"επόμενο" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Εμφάνιση κενών && χαρακτήρων οριοθέτησης" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Κενοί\n" +"χαρακτήρες" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Εμφάνιση κενών" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Κενές\n" +"διαφορές" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Εμφάνιση αριθμών γραμμής" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Αριθμοί\n" +"γραμμών" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Αυτόματη επίλυση απλών συγκρούσεων" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Ορισμός διαφορών στις συγκρούσεις" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Εκτέλεση κανονικής έκφρασης αυτόματης συγχώνευσης" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Αυτόματη επίλυση συγκρούσεων ιστορικού" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Διαίρεση διαφορών στην επιλογή" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Ένωση των επιλεγμένων διαφορών" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Εμφάνιση του παραθύρου Α" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Εμφάνιση του παραθύρου Β" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Εμφάνιση του παραθύρου Γ" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Κανονική επισκόπηση" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Επισκόπηση Α με το Β" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Επισκόπηση Α με το Γ" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Επισκόπηση Β με το Γ" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Αναδίπλωση λέξεων στα παράθυρα διαφοράς" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Προσθήκη χειροκίνητης στοίχισης διαφορών" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Καθαρισμός όλων των χειροκίνητων στοιχίσεων διαφορών" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Εστίαση στο επόμενο παράθυρο" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Εστίαση στο προηγούμενο παράθυρο" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Εναλλαγή προσανατολισμού διαίρεσης" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Διαίρεση προβολής φακέλου && κειμένου" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Εναλλαγή μεταξύ προβολής φακέλου && κειμένου" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Το αποτέλεσμα της συγχώνευσης δεν έχει αποθηκευτεί." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Αποθήκευση && έξοδος" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Έξοδος χωρίς αποθήκευση" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Αποτυχία αποθήκευσης του αποτελέσματος συγχώνευσης." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Αυτή τη στιγμή εκτελείται μια συγχώνευση φακέλων. Είστε σίγουροι ότι " +"επιθυμείτε να την εγκαταλείψετε;" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Αποθήκευση αρχείου..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Αποθήκευση αρχείου με ένα νέο όνομα..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Αποθήκευση ως..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Η εκτύπωση δεν πραγματοποιήθηκε." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Εκτύπωση..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Εκτύπωση σελίδας %1 από %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Επιλογή)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Η εκτύπωση ολοκληρώθηκε." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Εγκατάλειψη εκτύπωσης." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Έξοδος..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Εναλλαγή γραμμής εργαλείων..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Εναλλαγή της γραμμής κατάστασης..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Ένα KPart για την εμφάνιση SVG εικόνων" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Διαμόρφωση του KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Αδυναμία αρχικοποίησης του τμήματος του KDiff3\n" +"Αυτό συνήθως συμβαίνει εξαιτίας ενός προβλήματος εγκατάστασης. Παρακαλώ " +"διαβάστε το αρχείο README στο πακέτο του πηγαίου κώδικα για λεπτομέρειες." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Αρχείο" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Φάκελ&ος" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Λειτουργία συγχώνευσης του τρέχοντος αντικειμένου" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Λειτουργία συγχρονισμού του τρέχοντος αντικειμένου" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "Μετακίν&ηση" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Προβολή &διαφορών" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Συγχών&ευση" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Παράθυρο" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Κύρια γραμμή εργαλείων" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Παραλείφθηκε. (ορισμένο από τον χρήστη.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Εργαλείο για σύγκριση και συγχώνευση αρχείων και φακέλων" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Συγχώνευση της εισόδου." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Άμεσο αρχείο βάση. Για συμβατότητα με ορισμένα εργαλεία." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Αρχείο εξόδου. Εννοείται η επιλογή -m. Π.χ.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Αρχείο εξόδου, και πάλι. (Για συμβατότητα με ορισμένα εργαλεία.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Χωρίς γραφικό περιβάλλον αν όλες οι συγκρούσεις μπορούν να επιλυθούν " +"αυτόματα. (Απαιτεί το -o file)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Να αγνοηθεί το --auto και να εμφανίζεται πάντα το γραφικό περιβάλλον." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Αγνοήθηκε." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 1 (βάση)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Εναλλακτική ορατή αντικατάσταση ονόματος. Δώστε το μία φορά για κάθε είσοδο." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Αντικατάσταση μίας ρύθμισης διαμόρφωσης. Χρήση μία φορά για κάθε ρύθμιση. Π." +"χ.: --cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Εμφάνιση λίστας ρυθμίσεων διαμόρφωσης και τρεχουσών τιμών." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Χρήση ενός διαφορετικού αρχείου διαμόρφωσης." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "αρχείο1 για άνοιγμα (βάση, αν δεν καθοριστεί μέσω του --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "αρχείο2 για άνοιγμα" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "αρχείο3 για άνοιγμα" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Δείτε με kdiff3 --help τις επιλογές που υποστηρίζονται." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Αδυναμία σύγκρισης μη-κανονικού αρχείου με κανονικό." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Ανάμιξη δεσμών και κανονικών αρχείων." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Σύνδεσμος: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Μέγεθος. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Ημερομηνία & μέγεθος: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Σύγκριση αρχείου..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Επιλογή παντού του Α" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Επιλογή παντού του Β" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Επιλογή παντού το Γ" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Επιλογή του Α για όλες τις μη λυμένες διαφορές" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Επιλογή του Β για όλες τις μη λυμένες διαφορές" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Επιλογή του Γ για όλες τις μη λυμένες διαφορές" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Επιλογή του Α για όλες τις μη λυμένες διαφορές κενών" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Επιλογή του Β για όλες τις μη λυμένες διαφορές κενών" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Επιλογή του Γ για όλες τις μη λυμένες διαφορές κενών" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Αριθμός εναπομείναντων ανεπίλυτων συγκρούσεων: %1 ( %2 από τις οποίες " +"αφορούν κενά)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Η έξοδος έχει τροποποιηθεί.\n" +"Αν συνεχίσετε οι αλλαγές σας θα χαθούν." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Όλα τα αρχεία εισόδου είναι δυαδικά ίσα." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Όλα τα αρχεία εισόδου περιέχουν το ίδιο κείμενο." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Τα αρχεία %1 και %2 είναι δυαδικά ίσα.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Τα αρχεία %1 και %2 περιέχουν το ίδιο κείμενο. \n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Συνολικό πλήθος συγκρούσεων: %1\n" +"Πλήθος αυτόματα επιλυμένων συγκρούσεων: %2\n" +"Πλήθος ανεπίλυτων συγκρούσεων: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Συγκρούσεις" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<Χωρίς γραμμή πηγής>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<Σύγκρουση συγχώνευσης (μόνο κενών)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<Σύγκρουση συγχώνευσης>" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Δεν έχουν επιλυθεί ακόμη όλες οι συγκρούσεις.\n" +"Το αρχείο δεν αποθηκεύτηκε." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Συγκρούσεις που απομένουν" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Υπάρχει μια σύγκρουση στιλ τέλους γραμμής. Επιλέξτε ένα στιλ τέλους γραμμής " +"χειροκίνητα.\n" +"Το αρχείο δεν αποθηκεύτηκε." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Αποτυχία δημιουργίας εφεδρικού αντιγράφου. Το αρχείο δεν αποθηκεύτηκε." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Σφάλμα εγγραφής αρχείου" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Σφάλμα κατά την εγγραφή." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Έξοδος:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Τροποποιημένο]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Κωδικοποίηση για την αποθήκευση:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Σύγκρουση" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Κωδικοποιητής από Α: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Κωδικοποιητής από Β: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Κωδικοποιητής από Γ: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Διάλογος" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "Β:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "Α (Βάση):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Έξοδος (προαιρετική):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Αρχείο..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Εναλλαγή/Αντιγραφή ονομάτων..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "Γ (Προαιρετικό):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Φάκελος..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Μία καταχώρηση ιστορικού συγχώνευσης αποτελείται από πολλές γραμμές.\n" +"Καθορίστε την κανονική έκφραση για τον εντοπισμό της πρώτης γραμμής (χωρίς " +"το σχόλιο που προηγείται).\n" +"Χρησιμοποιείστε παρενθέσεις για την ομαδοποίηση των κλειδιών που επιθυμείτε " +"για την ταξινόμηση.\n" +"Αν ορισθεί σαν κενή, τότε το KDiff3 θεωρεί ότι οι καταχωρήσεις ιστορικού " +"διαχωρίζονται με κενές γραμμές.\n" +"Δείτε την τεκμηρίωση για λεπτομέρειες." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Κάθε ζεύγος παρενθέσεων της κανονικής έκφρασης για την έναρξη καταχώρησης " +"ιστορικού\n" +"δημιουργεί ένα κλειδί που μπορεί να χρησιμοποιηθεί για ταξινόμηση.\n" +"Καθορίστε τη λίστα των κλειδιών (τα οποία αριθμούνται με σειρά εμφάνισης\n" +"ξεκινώντας από το 1) χρησιμοποιώντας το ',' ως διαχωριστικό (π.χ. " +"\"4,5,6,1,2,3,7\").\n" +"Αν μείνει κενό, τότε δεν θα γίνει ταξινόμηση.\n" +"Δείτε την τεκμηρίωση για λεπτομέρειες." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Κανονική έκφραση για γραμμές όπου το KDiff3 θα πρέπει να επιλέξει αυτόματα " +"μία πηγή.\n" +"Αν μία γραμμή με σύγκρουση ταιριάζει στην κανονική έκφραση τότε θα επιλεχθεί " +"το Γ, αν\n" +"είναι διαθέσιμο, ενώ σε άλλη περίπτωση το Β." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Κανονική έκφραση για την έναρξη της καταχώρησης του ιστορικού συγχώνευσης.\n" +"Συνήθως αυτή η γραμμή περιέχει τη λέξη κλειδί \"$Log$\".\n" +"Η προκαθορισμένη τιμή είναι: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Όταν θα πάω κυρά μου στο παζάρι θα σου αγοράσω ένα κοκοράκι\n" +"το κοκοράκι κικιρικικι να σε ξυπνάει κάθε πρωί.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Αλλαγή γραμματοσειράς" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Γραμματοσειρά: %1, %2, %3\n" +"\n" +"Παράδειγμα:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Τροποποιήστε αυτό αν οι μη ASCII χαρακτήρες δεν εμφανίζονται σωστά." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Διαμόρφωση" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Γραμματοσειρά" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Γραμματοσειρά επεξεργαστή & εξόδου διαφορών" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Γραμματοσειρά εφαρμογής" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Γραμματοσειρά προβολής αρχείου" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Χρώμα" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Ρυθμίσεις χρωμάτων" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Προβολές επεξεργαστή και διαφορών:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Χρώμα προσκηνίου:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Χρώμα φόντου:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Χρώμα φόντου διαφορών:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Χρώμα Α:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Χρώμα Β:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Χρώμα Γ:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Χρώμα σύγκρουσης:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Τρέχον εύρος χρώματος φόντου:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Τρέχον εύρος χρώματος φόντου διαφορών:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Χρώμα για χειροκίνητα στοιχισμένα εύρη διαφορών:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Προβολή σύγκρισης φακέλων:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Χρώμα νεότερου αρχείου:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Η τροποποίηση αυτού του χρώματος θα έχει ισχύ κατά την επόμενη σύγκριση " +"φακέλων." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Χρώμα παλαιότερου αρχείου:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Χρώμα μέσου αρχείου:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Χρώμα αρχείων που λείπουν:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Επεξεργαστής" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Συμπεριφορά επεξεργαστή" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Το Tab εισάγει κενά" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Ενεργοποιημένο: Πατώντας το tab εισάγεται ο κατάλληλος αριθμός κενών.\n" +"Απενεργοποιημένο: Θα εισαχθεί ο χαρακτήρας στηλοθέτη (tab)." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Μέγεθος στηλοθέτη:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Αυτόματη χρήση εσοχών" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Ενεργοποιημένο: Η εσοχή της προηγούμενης γραμμής θα χρησιμοποιηθεί για μια " +"νέα γραμμή.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Αυτόματη αντιγραφή επιλογής" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Ενεργοποιημένο: Οποιαδήποτε επιλογή γράφεται άμεσα στο πρόχειρο.\n" +"Απενεργοποιημένο: Θα πρέπει να την αντιγράψετε εσείς π.χ. μέσω του Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Αυτόματη ανίχνευση" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Καθορίζει τον τύπο τέλους γραμμής όταν αποθηκεύεται ένα επεξεργασμένο " +"αρχείο.\n" +"DOS/Windows: CR+LF; UNIX: LF; με τα CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Ρυθμίσεις του Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Αγνόηση αριθμών (να θεωρούνται κενά)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Παράβλεψη αριθμών κατά τη φάση ταιριάσματος γραμμών. (Αντίστοιχο με την " +"παράβλεψη κενών).\n" +"Μπορεί να φανεί χρήσιμο κατά τη σύγκριση αρχείων με αριθμητικά δεδομένα." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Θεώρηση των σχολίων C/C++ σαν κενά." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Θεώρηση των σχολίων C/C++ σαν κενά." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Αγνόηση διάκρισης πεζών κεφαλαίων (να θεωρούνται κενά)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Χειρισμός των διαφορών σε πεζά/κεφαλαία ως αλλαγές κενών. ('α'<=>'Α')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Εντολή προεπεξεργαστή:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Προεπεξεργασία ορισμένη από το χρήστη. (Δείτε τα εγχειρίδια για " +"λεπτομέρειες)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Εντολή προεπεξεργαστή για ταίριασμα γραμμών:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Ο προεπεξεργαστής χρησιμοποιείται μόνο κατά το ταίριασμα γραμμών.\n" +"(Δείτε τα εγχειρίδια για λεπτομέρειες)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Εις βάθος ανάλυση (πιο αργό)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Ενεργοποιεί την επιλογή --minimal για το εξωτερικό diff.\n" +"Η ανάλυση μεγάλων αρχείων θα είναι αισθητά πιο αργή." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Στοίχιση Β και Γ για 3 αρχεία εισόδου" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Προσπάθεια στοίχισης των Β και Γ κατά τη σύγκριση ή συγχώνευση τριών αρχείων " +"εισόδου.\n" +"
Δεν προτείνεται για τις συγχωνεύσεις καθώς αυτή μπορεί να είναι πολύπλοκη " +"διαδικασία.\n" +"
(Προκαθορισμένα ανενεργό.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Συγχώνευση" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Ρυθμίσεις συγχώνευσης" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Καθυστέρηση αυτόματης μετάβασης (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Όταν βρίσκεστε στη λειτουργία αυτόματης μετάβασης εμφανίζεται το αποτέλεσμα " +"της τρέχουσας επιλογής\n" +"για τον καθορισμένο χρόνο, πριν την μεταπήδηση στην επόμενη σύγκρουση. " +"Εύρος: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Εμφάνιση παραθύρων διαλόγου πληροφοριών" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" +"Εμφανίζει ένα παράθυρο διαλόγου με πληροφορία για τον αριθμό των συγκρούσεων." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Προκαθορισμός κενών διαφορών συγχώνευσης 2 αρχείων:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Χειροκίνητη επιλογή" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Επιτρέπει στον αλγόριθμο συγχώνευσης την αυτόματη επιλογή μιας εισόδου για " +"διαφορές μόνο κενών." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Προκαθορισμός κενών διαφορών συγχώνευσης 3 αρχείων:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Κανονική έκφραση αυτόματης συγχώνευσης" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Κανονική έκφραση αυτόματης συγχώνευσης:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Εκτέλεση κανονικής έκφρασης αυτόματης συγχώνευσης στην αρχή της συγχώνευσης" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Εκτέλεση της συγχώνευσης για κανονικές εκφράσεις αυτόματης συγχώνευσης\n" +"αμέσως μετά την έναρξη της συγχώνευσης.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Συγχώνευση ιστορικού ελέγχου έκδοσης" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Κανονική έκφραση έναρξης ιστορικού:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Κανονική έκφραση για την έναρξη της καταχώρησης ιστορικού:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ταξινόμηση ιστορικού συγχώνευσης" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ταξινόμηση ιστορικού ελέγχου εκδόσεων κατά ένα κλειδί." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Σειρά ταξινόμησης ιστορικού ελέγχου εκδόσεων:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Συγχώνευση ιστορικού ελέγχου έκδοσης κατά την έναρξη συγχώνευσης" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Εκτέλεση συγχώνευσης ιστορικού ελέγχου έκδοσης κατά την έναρξη συγχώνευσης." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Μέγιστος αριθμός καταχωρήσεων ιστορικού:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Αφαίρεση μετά από καθορισμένο αριθμό. Χρησιμοποιήστε το -1 για απεριόριστο " +"αριθμό καταχωρήσεων." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Δοκιμή των κανονικών εκφράσεών σας" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Εντολή συγχώνευσης με σχετικού:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Αν καθοριστεί αυτό το σενάριο εκτελείται μετά την αυτόματη συγχώνευση\n" +"όταν δεν εντοπιστούν άλλες σχετικές τροποποιήσεις.\n" +"Καλείται με παραμέτρους τα: όνομααρχείου1 όνομααρχείου2 όνομααρχείου3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Αυτόματη αποθήκευση και έξοδος κατά τη συγχώνευση χωρίς συγκρούσεις" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Όταν το KDiff3 εκκινήσει για κάποια συγχώνευση αρχείου από τη γραμμή " +"εντολών\n" +"και όλες οι συγκρούσεις είναι επιλύσιμες χωρίς είσοδο από το χρήστη τότε " +"γίνεται αυτόματη αποθήκευση και έξοδος.\n" +"(Παρόμοιο με την επιλογή της γραμμής εντολών \"--auto\"." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Αναδρομικά στους φακέλους" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Αν θα αναλυθούν οι υποφάκελοι ή όχι." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Μοτίβα αρχείου:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Μοτίβα αρχείων που θα αναλυθούν. \n" +"Σύμβολα υποκατάστασης: '*' και '?'\n" +"Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Αντίστροφα μοτίβα αρχείου:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Μοτίβα αρχείων που θα εξαιρεθούν από την ανάλυση. \n" +"Σύμβολα υποκατάστασης: '*' και '?'\n" +"Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Αντίστροφα μοτίβα φακέλου:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Μοτίβα φακέλων που θα εξαιρεθούν από την ανάλυση. \n" +"Σύμβολα υποκατάστασης: '*' και '?'\n" +"Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Χρήση Ignore αρχείου" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Επέκταση του αντίστροφου μοτίβου σε οτιδήποτε που θα αγνοηθεί από τον έλεγχο " +"εκδόσεων.\n" +"Μέσω των τοπικών ignore αρχείων αυτό μπορεί να αφορά κάποιον φάκελο." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Αναζήτηση κρυφών αρχείων και φακέλων" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Βρίσκει κρυφά αρχεία και φακέλους." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Ακολούθηση δεσμών αρχείων" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Ενεργοποιημένο: Σύγκριση του αρχείου στο οποίο δείχνει ο δεσμός.\n" +"Απενεργοποιημένο: Σύγκριση των δεσμών." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Ακολούθηση δεσμών φακέλων" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Ενεργοποιημένο: Σύγκριση του φακέλου στον οποίο δείχνει ο δεσμός.\n" +"Απενεργοποιημένο: Σύγκριση των δεσμών." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Σύγκριση αρχείων με ευαισθησία κεφαλαίων/πεζών" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Η σύγκριση φακέλων θα εκτελέσει σύγκριση αρχείων ή φακέλων όταν ταιριάζουν " +"τα ονόματά τους.\n" +"Ενεργοποιήστε αυτή την επιλογή όταν τα ονόματα των αρχείων πρέπει να " +"ταιριάζουν. (Προκαθορισμένο για τα Windows είναι ανενεργό, ενώ σε άλλη " +"περίπτωση είναι ενεργό.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Ανάπτυξη όλων των υποφακέλων στη φόρτωση" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Ενεργοποιημένο: Ανάπτυξη όλων των υποφακέλων όταν ξεκινά το diff για " +"φακέλους.\n" +"Απενεργοποιημένο: Οι υποφάκελοι να παραμείνουν συμπτυγμένοι." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Να παραλείπεται η αναφορά κατάστασης φακέλων" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Ενεργοποιημένο: Να μην εμφανίζεται η κατάσταση σύγκρισης φακέλων.\n" +"Απενεργοποιημένο: Να εμφανίζεται ο διάλογος κατάστασης στην έναρξη." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Λειτουργία σύγκρισης αρχείου" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Δυαδική σύγκριση" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Δυαδική σύγκριση του κάθε αρχείου (προκαθορισμένο)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Πλήρης ανάλυση" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Πραγματοποιεί πλήρη ανάλυση και εμφανίζει στατιστικά σε επιπλέον στήλες.\n" +"(Πιο αργό από τη δυαδική σύγκριση, και πολύ πιο αργό για δυαδικά αρχεία)." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Εμπιστοσύνη στο μέγεθος και την ημερομηνία τροποποίησης (μη ασφαλές)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Θεώρησε ότι τα αρχεία είναι ίσα αν η ημερομηνία τροποποίησης και το μέγεθος " +"των αρχείων είναι ίσα.\n" +"Αρχεία με ίσα περιεχόμενα αλλά διαφορετικές ημερομηνίες τροποποίησης θα " +"εμφανίζονται ως διαφορετικά.\n" +"Χρήσιμο για μεγάλους φακέλους ή αργά δίκτυα." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Δείξτε εμπιστοσύνη στο μέγεθος και στην ημερομηνία, αλλά χρησιμοποιήστε " +"δυαδική σύγκριση αν η ημερομηνία δεν είναι ίδια (μη ασφαλές)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Θεωρείστε ότι τα αρχεία είναι ίσα αν η ημερομηνία τροποποίησης και το " +"μέγεθος των αρχείων είναι ίσα.\n" +"Αν οι ημερομηνίες δεν είναι ίσες αλλά τα μεγέθη είναι, τότε να γίνει χρήση " +"δυαδικής σύγκρισης.\n" +"Χρήσιμο για μεγάλους φακέλους ή αργά δίκτυα." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Δείξτε εμπιστοσύνη στο μέγεθος (μη ασφαλές)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Θεώρησε ότι τα αρχεία είναι ίσα αν το μέγεθος των αρχείων είναι ίσο.\n" +"Χρήσιμο για μεγάλους φακέλους ή αργά δίκτυα όπου η ημερομηνία τροποποιείται " +"κατά τη λήψη." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Συγχρονισμός φακέλόγων" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Προσφέρει την αποθήκευση αρχείων και στους δύο φακέλους\n" +"ώστε στο τέλος οι δύο φάκελοι να είναι ίδιοι.\n" +"Δουλεύει μόνο κατά τη σύγκριση δύο φακέλων χωρίς να έχει καθοριστεί " +"προορισμός." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Οι διαφορές των κενών θεωρούνται ίσες" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Αν τα αρχεία διαφέρουν μόνο σε κενούς χαρακτήρες θεωρούνται ότι είναι ίσα.\n" +"Αυτό είναι ενεργοποιημένο μόνο όταν επιλεγεί η πλήρης ανάλυση." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Αντιγραφή του νεότερου αντί για συγχώνευση (μη ασφαλές)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Να μη γίνει ανάλυση, αλλά απλά να ληφθεί το νεότερο αρχείο.\n" +"(Χρησιμοποιήστε το μόνο αν ξέρετε τι κάνετε!)\n" +"Δουλεύει μόνο όταν συγκρίνονται δύο φάκελοι." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Δημιουργία εφεδρικών αντιγράφων (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Όταν ένα αρχείο αποθηκευτεί με το όνομα ενός υπάρχοντος αρχείου, το υπάρχον " +"αρχείο θα μετονομαστεί με επέκταση '.orig' αντί να διαγραφεί." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Τοπικές ρυθμίσεις" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Χρήση της ίδιας κωδικοποίησης παντού:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Ενεργοποιώντας αυτή την επιλογή επιτρέπει την αλλαγή όλων των κωδικοποιήσεων " +"αλλάζοντας μόνο την πρώτη.\n" +"Απενεργοποιήστε αυτή την επιλογή αν χρειάζεστε διαφορετικές επί μέρους " +"επιλογές." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Σημείωση: Η τοπική κωδικοποίηση είναι «%1»" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Κωδικοποίηση αρχείου για το Α:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Αν ενεργοποιηθεί θα γίνει ανίχνευση της κωδικοποίησης Unicode (UTF-16 or " +"UTF-8).\n" +"Αν το αρχείο δεν είναι Unicode θα χρησιμοποιηθεί η επιλεγμένη κωδικοποίηση.\n" +"(Η ανίχνευση του Unicode εξαρτάται από τα πρώτα byte του αρχείου.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Αυτόματη ανίχνευση Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Κωδικοποίηση αρχείου για το Β:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Κωδικοποίηση αρχείου για το Γ:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Κωδικοποίηση αρχείου για την έξοδο συγχώνευσης και την αποθήκευση:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Αυτόματη επιλογή" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Αν ενεργοποιηθεί, θα χρησιμοποιηθεί η κωδικοποίηση του αρχείου εισόδου.\n" +"Σε περίπτωση αμφιβολίας θα εμφανιστεί ένα παράθυρο διαλόγου όπου ο χρήστης " +"θα πρέπει να επιλέξει την κωδικοποίηση για την αποθήκευση." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Κωδικοποίηση για τα αρχεία του προεπεξεργαστή:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Γλώσσας αναγνώσιμη από δεξιά στα αριστερά" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Μερικές γλώσσες διαβάζονται από δεξιά στα αριστερά.\n" +"Αυτή η ρύθμιση θα τροποποίηση τον προβολέα και τον επεξεργαστή κατάλληλα." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Ενσωμάτωση" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Ρυθμίσεις ενσωμάτωσης" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Επιλογές γραμμής εντολών για αγνόηση:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Λίστα τον επιλογών της γραμμής εντολών που θα πρέπει να αγνοηθούν όταν το " +"KDiff3 χρησιμοποιείται από άλλα εργαλεία.\n" +"Μπορούν να ορισθούν πολλές τιμές διαχωρισμένες με το ';'\n" +"Αυτό καταστέλλει το σφάλμα \"Άγνωστης επιλογής\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Έξοδος επίσης και με το πλήκτρο Esc" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Γρήγορη μέθοδος εξόδου.\n" +"
Γι' αυτούς που έχουν συνηθίσει τη χρήση του πλήκτρου Esc." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"Αυτό επαναφέρει όλες τις επιλογές. Όχι μόνο αυτές του τρέχοντος θέματος." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Εντολή προεπεξεργαστή: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Οι ακόλουθες επιλογές που κάνατε ίσως τροποποιήσουν δεδομένα:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Το πιθανότερο είναι ότι αυτό δεν είναι επιθυμητό κατά τη συγχώνευση.\n" +"Θέλετε να απενεργοποιήσετε αυτές τις επιλογές ή να συνεχίσετε όπως είναι;" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Μη ασφαλής επιλογή για συγχώνευση" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Χρήση αυτών των επιλογών κατά τη συγχώνευση" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Απενεργοποίηση μη ασφαλών επιλογών" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Φόρτωση του Α" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Φόρτωση του Α: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Φόρτωση του Β" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Φόρτωση του Β: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Διαφορά: Α <-> Β" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Διαφορά γραμμής: Α <-> Β" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Φόρτωση του Γ" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Φόρτωση του Γ: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Διαφορά: Α <-> Γ" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Διαφορά: Β <-> Γ" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Διαφορά γραμμής: Β <-> Γ" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Διαφορά γραμμής: Α <-> Γ" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Όλα τα αρχεία εισόδου περιέχουν το ίδιο κείμενο, αλλά δεν είναι δυαδικά ίσα." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Τα αρχεία %1 και %2 περιέχουν το ίδιο κείμενο, αλλά δεν είναι δυαδικά ίσα.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Μερικά από τα αρχεία εισόδου δε φαίνεται να είναι αρχεία κειμένου.\n" +"Σημειώστε ότι το KDiff3-merge δε φτιάχτηκε για δυαδικά δεδομένα.\n" +"Αν συνεχίσετε θα είναι με δική σας ευθύνη." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", Β" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", Γ" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Κάποιοι χαρακτήρες εισόδου δεν ήταν δυνατό να μετατραπούν σε έγκυρο " +"unicode.\n" +"Ίσως χρησιμοποιείτε λανθασμένο τύπο κωδικοποίησης (π.χ. UTF-8 για μη UTF-8 " +"αρχεία).\n" +"Μην αποθηκεύσετε το αποτέλεσμα αν δεν είστε βέβαιοι. Συνεχίστε με δική σας " +"ευθύνη.\n" +"Τα επηρεαζόμενα αρχεία εισόδου είναι στο %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Εγκατάλειψη" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Άνοιγμα αρχείων..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Αποκοπή επιλογής..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Αντιγραφή της επιλογής στο πρόχειρο..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Εισαγωγή των περιεχομένων του προχείρου..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Αναδίπλωση λέξεων (Η ακύρωση απενεργοποιεί την αναδίπλωση λέξεων)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Υπολογισμός μέγιστου πλάτους για την οριζόντια γραμμήκύλισης" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Αποθήκευση && συνέχεια" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Συνέχεια χωρίς αποθήκευση" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Η αναζήτηση ολοκληρώθηκε." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Η αναζήτηση ολοκληρώθηκε" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Δεν έχει επιλεγεί τίποτα σε κανένα παράθυρο εισαγωγής διαφορών." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Σφάλμα κατά την προσθήκη χειροκίνητου εύρους διαφορών" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Ακύρωση" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Εναλλαγή %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Αντιγραφή %1->Έξοδο" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Εναλλαγή %1<->Έξοδος" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Διαμόρφωση..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Άνοιγμα φακέλου" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Επιλογή αρχείου εξόδου" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "όλα/allfiles (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Αναζήτηση κειμένου:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Διάκριση πεζών/κεφαλαίων" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Αναζήτηση στο Α" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Αναζήτηση στο Β" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Αναζήτηση στο Γ" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Έξοδος αναζήτησης" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Αναζήτηση" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Δοκιμή κανονικής έκφρασης" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Παράδειγμα γραμμής αυτόματης συγχώνευσης:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Για τη δοκιμή αυτόματης συγχώνευσης, αντιγράψτε μια γραμμή όπως αυτή " +"χρησιμοποιείται στα αρχεία σας." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Αποτέλεσμα ταιριάσματος:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Παράδειγμα γραμμής αρχής ιστορικού (χωρίς το σχόλιο που προηγείται):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Αντιγραφή μίας γραμμής αρχής ιστορικού όπως αυτή χρησιμοποιείται στα αρχεία " +"σας,\n" +"χωρίς να περιληφθεί το σχόλιο που προηγείται." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Σειρά κλειδιών ταξινόμησης ιστορικού:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Παράδειγμα γραμμής αρχής καταχώρησης ιστορικού (χωρίς το σχόλιο που " +"προηγείται):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Αντιγράψτε μία γραμμή αρχής καταχώρησης ιστορικού όπως αυτή χρησιμοποιείται " +"στα αρχεία σας,\n" +"χωρίς να περιλάβετε το σχόλιο που προηγείται." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Αποτέλεσμα κλειδιού ταξινόμησης:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Επιτυχία ταιριάσματος." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Αποτυχία ταιριάσματος." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Αδυναμία ταιριάσματος παρενθέσεων ανοίγματος και κλεισίματος στην κανονική " +"έκφραση." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Η εγγραφή δεδομένων στο προσωρινό αρχείο απέτυχε." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Από το πρόχειρο" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "Το %1 δεν είναι κανονικό αρχείο." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Προσωρινό αρχείο είναι το: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Η προεπεξεργασία απέτυχε. Ελέγξτε αυτή την εντολή:\n" +"\n" +" %1\n" +"\n" +"Η εντολή προεπεξεργασίας θα απενεργοποιηθεί τώρα." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Το αρχείο %1 είναι πολύ μεγάλο για επεξεργασία. Παραλείπεται." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Η δυνατότητα προεπεξεργασίας αντιστοίχησης γραμμών απέτυχε. Ελέγξτε αυτή την " +"εντολή:\n" +"\n" +" %1\n" +"\n" +"Η δυνατότητα προεπεξεργασίας αντιστοίχησης γραμμών θα απενεργοποιηθεί τώρα." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Αναμένεται κενό έπειτα από το κλείσιμο των εισαγωγικών." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Ανοιχτά εισαγωγικά." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Μη αναμενόμενος χαρακτήρας εισαγωγικού με το όρισμα." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Δεν έχει προσδιοριστεί πρόγραμμα." \ No newline at end of file diff --git a/po/el/kdiff3fileitemactionplugin.po b/po/el/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..61e4f09 --- /dev/null +++ b/po/el/kdiff3fileitemactionplugin.po @@ -0,0 +1,106 @@ +# el translation of kdiff3fileitemactionplugin.po +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# +# Stelios , 2011, 2019, 2020, 2021. +# Dimitrios Glentadakis , 2012. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-06-23 09:30+0300\n" +"Last-Translator: Stelios \n" +"Language-Team: Greek \n" +"Language: el\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 20.04.2\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Σύγκριση με %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Συγχώνευση με %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Αποθήκευση του '%1' για αργότερα" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Τριπλή συγχώνευση με τη βάση" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Σύγκριση με..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Καθαρισμός λίστας" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Σύγκριση" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Τριπλή σύγκριση" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Σχετικά με το πρόσθετο για το μενού του KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Πρόσθετο ενέργειας αντικειμένου αρχείου KDiff3: Copyright (C) 2011 Joachim " +"Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Χρησιμοποιώντας την επέκταση του μενού:\n" +"Για απλή σύγκριση δύο επιλεγμένων αρχείων επιλέξτε «Σύγκριση».\n" +"Αν το άλλο αρχείο βρίσκεται κάπου αλλού «Αποθηκεύστε» το πρώτο αρχείο για " +"αργότερα. Θα εμφανιστεί στο υπομενού «Σύγκριση με...». Τότε χρησιμοποιήστε " +"το «Σύγκριση με» στο δεύτερο αρχείο.\n" +"Για τριπλή συγχώνευση πρώτα »Αποθηκεύστε» το βασικό αρχείο, έπειτα τον προς " +"συγχώνευση κλάδο και επιλέξτε «Τριπλή συγχώνευση με τη βάση» στον άλλο κλάδο " +"ο οποίος θα χρησιμεύσει ως προορισμός.\n" +"Το ίδιο ισχύει και για τη σύγκριση και συγχώνευση φακέλων." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Σχετικά με το πρόσθετο ενέργειας αντικειμένου αρχείου του KDiff3" \ No newline at end of file diff --git a/po/en_GB/diff_ext.po b/po/en_GB/diff_ext.po new file mode 100644 index 0000000..1507508 --- /dev/null +++ b/po/en_GB/diff_ext.po @@ -0,0 +1,128 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Steve Allewell , 2018, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-06-12 14:40+0100\n" +"Last-Translator: Steve Allewell \n" +"Language-Team: British English \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: Lokalize 21.04.1\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Compare with %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Merge with %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "3-way merge with base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Save '%1' for later" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Compare with ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Clear list" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Compare" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3 way comparison" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "About Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "This software is distributable under the BSD-2-Clause license.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Ported to Qt5/Kf5 by Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "About Diff-Ext for KDiff3 (64 Bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Compare selected files" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Compare '%1' with '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Save '%1' for later operation" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Could not start KDiff3. Please rerun KDiff3 installation." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Command" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "CommandLine" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext For KDiff3" \ No newline at end of file diff --git a/po/en_GB/kdiff3.po b/po/en_GB/kdiff3.po new file mode 100644 index 0000000..66e4c4d --- /dev/null +++ b/po/en_GB/kdiff3.po @@ -0,0 +1,3561 @@ +# translation of kdiff3.po to British English +# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. +# +# Malcolm Hunter , 2003. +# Jonathan Riddell , 2003. +# Andrew Coles , 2004, 2005, 2009, 2010. +# Steve Allewell , 2014, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-20 16:49+0000\n" +"Last-Translator: Steve Allewell \n" +"Language-Team: British English \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: Lokalize 20.12.2\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Andrew Coles, Steve Allewell" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "andrew_coles@yahoo.co.uk, steve.allewell@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Getting file status: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Reading file: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Writing file: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Out of memory" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Making folder: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Removing folder: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Removing file: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Creating symbolic link: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Renaming file: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Copying file: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Reading folder: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listing directory: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Severe Internal Error" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Severe Internal Error." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Severe Internal Error.: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "File %1: Line %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "File %1: Line not available" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Encoding:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Line end style:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Encoding: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Line end style: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Top line" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "End" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Open File" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Other" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copy A to B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copy B to A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Delete A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Delete B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Delete A & B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Merge to A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Merge to B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Merge to A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Delete (if exists)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Merge" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Merge (manual)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Error: Conflicting File Types" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Error: Changed and Deleted" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Error: Dates are equal but files are not." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Done" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Error" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Skipped." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Not saved." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "In progress..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "To do." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Name" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operation" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Unsolved" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Solved" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Nonwhite" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "White" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Warning" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Rescan" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continue Merging" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Opening of folders failed:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Folder A \"%1\" does not exist or is not a folder.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Folder B \"%1\" does not exist or is not a folder.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Folder C \"%1\" does not exist or is not a folder.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Folder Opening Error" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parameter Warning" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Scanning folders..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Reading Folder A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Reading Folder B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Reading Folder C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Some subfolders were not readable in" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Check the permissions of the subfolders." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Ready." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Number of manual merges: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "This affects all merge operations." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Changing All Merge Operations" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Processing %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Some files could not be processed." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Aborting due to too many errors." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "This operation is currently not possible." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operation Not Possible" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "An error occurred while copying." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Merge Error" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Unknown merge operation. (This must never happen!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Unknown merge operation." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Starting Merge" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Do It" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulate It" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"The highlighted item has a different type in the different folders. Select " +"what to do." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"This operation is currently not possible because folder merge is currently " +"running." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continue merge after an error" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continue With Last Item" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Skip Item" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Merge operation complete." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Merge Complete" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulated merge complete: Check if you agree with the proposed operations." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "An error occurred. Press OK to see detailed information." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Error: While deleting %1: Creating backup failed." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "delete folder recursively( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "delete( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Error: delete folder operation failed while trying to read the folder." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Error: rmdir( %1 ) operation failed." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Error: delete operation failed." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "manual merge( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Note: After a manual merge the user should continue by pressing F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Error: copyLink failed: Remote links are not yet supported." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Error: copyLink failed." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copy( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Error during rename( %1 -> %2 ): Cannot delete existing destination." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rename( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Error: Rename failed." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Error during makeDir of %1. Cannot delete existing file." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Error while creating folder." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Folder" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Type" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Size" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Last Modification" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Link-Destination" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "File" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Link" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "not available" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Save Folder Merge State As..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Start/Continue Folder Merge" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Run Operation for Current Item" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Compare Selected File" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Merge Current File" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Merge\n" +"File" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Fold All Subfolders" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Unfold All Subfolders" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Choose A for All Items" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Choose B for All Items" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Choose C for All Items" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Auto-Choose Operation for All Items" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "No Operation for All Items" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Show Identical Files" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identical\n" +"Files" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Show Different Files" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Show Files only in A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Files\n" +"only in A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Show Files only in B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Files\n" +"only in B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Show Files only in C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Files\n" +"only in C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Compare Explicitly Selected Files" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Merge Explicitly Selected Files" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Do Nothing" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Delete A && B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Merge to A && B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Unable to determine full URL. No parent specified." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Failed to read file: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Creating temp copy of %1 failed." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Opening %1 failed. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Error reading from %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Current Configuration:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Config Option Error:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Option --auto used, but no output file specified." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Option --auto ignored for folder comparison." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Saving failed." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Opening of these files failed:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "File open error" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Opens documents for comparison..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Reload" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Saves the merge result. All conflicts must be solved!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Saves the current document as..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Print the differences" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Quits the application" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Cuts the selected section and puts it to the clipboard" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copies the selected section to the clipboard" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Pastes the clipboard contents to current position" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Select everything in current window" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Search for a string" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Search again for the string" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Enables/disables the statusbar" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configure KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Go to Current Delta" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Current\n" +"Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Go to First Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"First\n" +"Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Go to Last Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Last\n" +"Delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Skips white space differences when \"Show White Space\" is disabled.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Go to Previous Delta" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Prev\n" +"Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Go to Next Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Next\n" +"Delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Go to Previous Conflict" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Prev\n" +"Conflict" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Go to Next Conflict" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Next\n" +"Conflict" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Go to Previous Unsolved Conflict" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Prev\n" +"Unsolved" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Go to Next Unsolved Conflict" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Next\n" +"Unsolved" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Select Line(s) From A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Choose\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Select Line(s) From B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Choose\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Select Line(s) From C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Choose\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Automatically Go to Next Unsolved Conflict After Source Selection" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Auto\n" +"Next" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Show Space && Tabulator Characters" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"White\n" +"Characters" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Show White Space" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"White\n" +"Deltas" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Show Line Numbers" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Line\n" +"Numbers" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automatically Solve Simple Conflicts" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Set Deltas to Conflicts" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Run Regular Expression Auto Merge" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automatically Solve History Conflicts" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Split Diff At Selection" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Join Selected Diffs" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Show Window A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Show Window B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Show Window C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normal Overview" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A vs. B Overview" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A vs. C Overview" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B vs. C Overview" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Word Wrap Diff Windows" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Add Manual Diff Alignment" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Clear All Manual Diff Alignments" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Focus Next Window" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Focus Prev Window" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Toggle Split Orientation" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Folder && Text Split Screen View" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Toggle Between Folder && Text View" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "The merge result has not been saved." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Save && Quit" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Quit Without Saving" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Saving the merge result failed." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"You are currently doing a folder merge. Are you sure, you want to abort?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Saving file..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Saving file with a new filename..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Save As..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Printing not implemented." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Printing..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Printing page %1 of %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selection)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Printing completed." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Printing aborted." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Exiting..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Toggling toolbar..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Toggle the statusbar..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "A KPart to display SVG images" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configure KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Could not initialise the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&File" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "F&older" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Current Item Merge Operation" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Current Item Sync Operation" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&ovement" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iffview" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "M&erge" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Window" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Main Toolbar" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignored. (User defined.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Tool for Comparison and Merge of Files and Folders" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Merge the input." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Explicit base file. For compatibility with certain tools." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Output file. Implies -m. E.g.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Output file, again. (For compatibility with certain tools.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "No GUI if all conflicts are auto-solvable. (Needs -o file)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignore --auto and always show GUI." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignored." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Visible name replacement for input file 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Visible name replacement for input file 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Visible name replacement for input file 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Alternative visible name replacement. Supply this once for every input." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Show list of config settings and current values." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Use a different config file." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "file1 to open (base, if not specified via --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "file2 to open" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "file3 to open" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "See kdiff3 --help for supported options." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Unable to compare non-normal file with normal file." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mix of links and normal files." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Link: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Size. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Date & Size: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Comparing file..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Choose A Everywhere" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Choose B Everywhere" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Choose C Everywhere" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Choose A for All Unsolved Conflicts" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Choose B for All Unsolved Conflicts" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Choose C for All Unsolved Conflicts" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Choose A for All Unsolved Whitespace Conflicts" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Choose B for All Unsolved Whitespace Conflicts" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Choose C for All Unsolved Whitespace Conflicts" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"The output has been modified.\n" +"If you continue your changes will be lost." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "All input files are binary equal." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "All input files contain the same text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Files %1 and %2 are binary equal.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Files %1 and %2 have equal text.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflicts" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Not all conflicts are solved yet.\n" +"File not saved." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflicts Left" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Creating backup failed. File not saved." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "File Save Error" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Error while writing." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Output:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modified]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Encoding for saving:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflict" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Codec from A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Codec from B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Codec from C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialogue" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Output (Optional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "File..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Swap/Copy Names..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Optional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Folder..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use brackets to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Each pair of brackets used in the regular expression for the history start " +"entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Change Font" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Font: %1, %2, %3\n" +"\n" +"Example:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Change this if non-ASCII characters are not displayed correctly." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configure" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Font" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Editor & Diff Output Font" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Application font" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "File view font" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Colour" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Colour Settings" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editor and Diff Views:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Foreground colour:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Background colour:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Diff background colour:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Colour A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Colour B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Colour C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Conflict colour:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Current range background colour:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Current range diff background colour:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Colour for manually aligned difference ranges:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Folder Comparison View:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Newest file colour:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Changing this colour will only be effective when starting the next folder " +"comparison." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Oldest file colour:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Middle age file colour:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Colour for missing files:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Editor Behaviour" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab inserts spaces" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tab size:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Auto indentation" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "On: The indentation of the previous line is used for a new line.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Auto copy selection" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Autodetect" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff Settings" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignore numbers (treat as white space)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignore C/C++ comments (treat as white space)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Treat C/C++ comments like white space." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignore case (treat as white space)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Treat case differences like white space changes. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Preprocessor command:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "User defined pre-processing. (See the docs for details.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Line-matching preprocessor command:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Try hard (slower)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Align B and C for 3 input files" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Merge" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Merge Settings" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Auto advance delay (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Show info dialogues" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Show a dialogue with information about the number of conflicts." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "White space 2-file merge default:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Manual Choice" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "White space 3-file merge default:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automatic Merge Regular Expression" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Auto merge regular expression:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Run regular expression auto merge on merge start" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Version Control History Merging" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "History start regular expression:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "History entry start regular expression:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "History merge sorting" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Sort version control history by a key." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "History entry start sort key order:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Merge version control history on merge start" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Run version control history automerge on merge start." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Max number of history entries:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Cut off after specified number. Use -1 for infinite number of entries." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Test your regular expressions" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Irrelevant merge command:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Auto save and quit on merge without conflicts" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Recursive folders" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Whether to analyse subfolders or not." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "File pattern(s):" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Pattern(s) of files to be analysed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "File-anti-pattern(s):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Folder-anti-pattern(s):" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Use Ignore File" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Find hidden files and folders" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Finds hidden files and folders." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Follow file links" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Follow folder links" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Case sensitive filename comparison" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Unfold all subfolders on load" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Skip folder status report" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialogue on start." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "File Comparison Mode" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binary comparison" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binary comparison of each file. (Default)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Full analysis" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Trust the size and modification date (unsafe)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Trust the size (unsafe)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Synchronise folders" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "White space differences considered equal" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copy newer instead of merging (unsafe)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Backup files (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regional Settings" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Use the same encoding for everything:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Note: Local Encoding is \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "File Encoding for A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Auto Detect Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "File Encoding for B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "File Encoding for C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "File Encoding for Merge Output and Saving:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Auto Select" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialogue will ask the user to choose the encoding for " +"saving." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "File Encoding for Preprocessor Files:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Right To Left Language" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integration" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integration Settings" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Command line options to ignore:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Quit also via Escape key" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "This resets all options. Not only those of the current topic." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "PreprocessorCmd: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "The following option(s) you selected might change data:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Option Unsafe for Merging" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Use These Options During Merge" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Disable Unsafe Options" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Loading A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Loading A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Loading B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Loading B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linediff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Loading C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Loading C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "All input files contain the same text, but are not binary equal." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Files %1 and %2 have equal text, but are not binary equal. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Abort" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Opening files..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Cutting selection..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Copying selection to clipboard..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Inserting clipboard contents..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Word wrap (Cancel disables word wrap)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Calculating max width for horizontal scrollbar" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Save && Continue" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continue Without Saving" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Search complete." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Search Complete" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Nothing is selected in either diff input window." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Error while adding manual diff range" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancel" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Swap %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copy %1->Output" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Swap %1<->Output" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configure..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Open Folder" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Select Output File" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "all/allfiles (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Search text:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Case sensitive" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Search A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Search B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Search C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Search output" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Search" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Regular Expression Tester" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Example auto merge line:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "To test auto merge, copy a line as used in your files." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Match result:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Example history start line (with leading comment):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copy a history start line as used in your files,\n" +"including the leading comment." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "History sort key order:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Example history entry start line (without leading comment):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sort key result:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Match success." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Match failed." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Opening and closing brackets do not match in regular expression." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Writing clipboard data to temp file failed." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "From Clipboard" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 is not a normal file." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Temp file is: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "File %1 too large to process. Skipping." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Expecting space after closing quote." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Unmatched quote." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Unexpected quote character within argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "No program specified." \ No newline at end of file diff --git a/po/en_GB/kdiff3fileitemactionplugin.po b/po/en_GB/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..81c002c --- /dev/null +++ b/po/en_GB/kdiff3fileitemactionplugin.po @@ -0,0 +1,101 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Steve Allewell , 2014, 2018, 2019, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-20 16:50+0000\n" +"Last-Translator: Steve Allewell \n" +"Language-Team: British English \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: Lokalize 20.12.2\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Compare with %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Merge with %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Save '%1' for later" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-way merge with base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Compare with..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Clear list" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Compare" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3 way comparison" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "About KDiff3 menu plugin..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "About KDiff3 File Item Action Plugin" \ No newline at end of file diff --git a/po/eo/kdiff3.po b/po/eo/kdiff3.po new file mode 100644 index 0000000..91588ef --- /dev/null +++ b/po/eo/kdiff3.po @@ -0,0 +1,3349 @@ +# Translation of kdiff3 into esperanto. +# Axel Rousseau , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2009-11-15 12:06+0100\n" +"Last-Translator: Axel Rousseau \n" +"Language-Team: esperanto \n" +"Language: eo\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: pology\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Axel Rousseau" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "axel@esperanto-jeunes.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Making folder: %1" +msgstr "Dosierujo" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Removing folder: %1" +msgstr "Dosierujo" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading folder: %1" +msgstr "Dosierujo" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "Ne disponebla" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodigo:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Kodigo:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fino" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open File" +msgstr "Dosiero" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Mergi" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Farita." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Eraro" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nomo" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operacio" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stato" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Averto" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Reserĉi" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Saving file..." +msgid "Scanning folders..." +msgstr "Konservante dosieron..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder A" +msgstr "Dosierujo" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder B" +msgstr "Dosierujo" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder C" +msgstr "Dosierujo" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Preta." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "Okazis eraro. Press OK to see detailed information.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error while creating folder." +msgstr "Eraro okazis dum legado de %1" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipo" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Grandeco" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Dosiero" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "Ne disponebla" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nenion fari" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Eraro okazis dum legado de %1" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"While trying to make a backup, deleting an older backup failed. \n" +"Dosiernomo: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"While trying to make a backup, deleting an older backup failed. \n" +"Dosiernomo: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Reŝargi" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Finas la programon" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Eltondos la elektaĵon kaj enpoŝigos ĝin" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopios la apartigatan regionon poŝen" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "Elpoŝigos la poŝan enhavon al la aktuala pozicio" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "(Mal)ŝaltos la statbreton" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Konservante dosieron..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Konservante dosieron kun nova dosiernomo..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Konservi kiel..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Presante..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Elektaĵo" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Finante..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Inversigante ilobreton..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Inversigante la statobreton..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +#| msgid "Configure" +msgid "Configure KDiff3" +msgstr "Agordi" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Dosiero" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Mergi" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Fe&nestro" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Ĉefa ilobreto" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Ignori" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Not all conflicts are solved yet.\n" +"Dosiero ne konservita.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Eligo" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding for saving:" +msgstr "Kodigo:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikto" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Dosiero..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unikodo" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Agordi" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Tiparo" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Koloro" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Malfona koloro:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Fona koloro:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Redaktilo" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Fe&nestro" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Mergi" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading A: %1" +msgstr "Kodigo:" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading B: %1" +msgstr "Kodigo:" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading C: %1" +msgstr "Kodigo:" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Ĉesigi" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Eltondanta elekton..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopianta elekton al tondujo..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Enmetanta tondujan enhavon..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Rezigni" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Agordu..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open Folder" +msgstr "Dosiero" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Usklecodistinga" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Serĉi" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/es/diff_ext.po b/po/es/diff_ext.po new file mode 100644 index 0000000..a467623 --- /dev/null +++ b/po/es/diff_ext.po @@ -0,0 +1,135 @@ +# Spanish translations for diff_ext.po package. +# Copyright (C) 2018 This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Sofia Priego , %Y. +# Automatically generated, 2018. +# Eloy Cuadra , 2018, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: diff_ext\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-04-29 17:14+0100\n" +"Last-Translator: Sofia Priego \n" +"Language-Team: Spanish \n" +"Language: es\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 21.04.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar con %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Fusionar con %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusión de 3 vías con la base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Guardar «%1» para más tarde" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Comparar con..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Borrar la lista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparación de 3 vías" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Acerca de Diff-Ext..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright © 2003-2006, Sergey Zorin. Todos los derechos " +"reservados.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" +"Este software se puede distribuir bajo la licencia BSD de 2 cláusulas.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Algunas extensiones para KDiff3 © 2006-2013 por Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Adaptado a Qt5/Kf5 por Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Página web de Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Acerca de Diff-Ext para KDiff3 (64 bits)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Comparar los archivos seleccionados" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Comparar «%1» con «%2»" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Guardar «%1» para su uso posterior" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" +"No se ha podido iniciar KDiff3. Vuelva a realizar la instalación de KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Orden" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Línea de órdenes" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext para KDiff3" \ No newline at end of file diff --git a/po/es/docs/kdiff3/index.docbook b/po/es/docs/kdiff3/index.docbook new file mode 100644 index 0000000..2e8bd6c --- /dev/null +++ b/po/es/docs/kdiff3/index.docbook @@ -0,0 +1,2931 @@ + +KDiff3"> + + +]> + + + + + + +El manual de &kdiff3; + + +Michael Reeves
reeves.87@gmail.com
Joachim Eibl
joachim.eibl at gmx.de +
+
+ Santiago Fernández Sancho
santi@kde-es.org
Traductor
+
+ + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +2019-02-22 +1.08.02 + + + +&kdiff3; es una herramienta para ver diferencias y fusionar archivos y directorios que: +Compara y fusiona dos o tres archivos o directorios de texto. +Muestra las diferencias línea a línea y carácter a carácter (!). +Proporciona una utilidad de fusión automática. +Tiene un editor para resolver de forma cómoda los conflictos de fusión. +Proporciona transparencia de red a través de KIO. +Tiene opciones para resaltar u ocultar los cambios en los espacios en blanco o en los comentarios. +Permite usar Unicode, UTF-8 y otras codificaciones de archivo. +Imprime diferencias. +Permite claves de control de versiones e historial de fusiones. + +Este documento describe la versión 1.8 de &kdiff3;. + + + + + +KDE +kdiff3 +diferencia +fusión +CVS +triple diferencia +comparar +archivos +directorios +control de versiones +fusión del árbol +diferencias en línea +sincronización +kpart +kio +transparencia de red +editor +espacio en blanco +comentarios + + +
+ +Introducción +¿Otra interfaz para diff? +Ya existen varias herramientas gráficas para diff. ¿Por qué elegir &kdiff3;? Déjeme decirle por qué lo escribí. &kdiff3; se inició debido a la dificultad para hacer la fusión. La fusión es necesaria cuando varias personas trabajan sobre los mismos archivos en un proyecto. Una fusión puede ser algo automatizado, cuando la herramienta de fusión no solo tiene nuevos archivos modificados (llamados «ramas»), sino también el archivo original (llamado «base»). La herramienta de fusión seleccionará automáticamente cualquier modificación que se haga solo en una rama. Cuando varios colaboradores cambian la misma línea, la herramienta detecta un conflicto que deberá resolverse manualmente. La fusión se vuelve difícil porque, por ejemplo, un colaborador cambió muchas cosas y corrigió el sangrado en algunos lugares. Otro colaborador también cambió mucho texto en el mismo archivo, y todo esto dio como resultado varios conflictos durante la fusión. La herramienta que utilizaba, solo mostraba las líneas cambiadas, pero no los cambios hechos en estas líneas. Y no había información sobre los cambios en el sangrado. La fusión era una pequeña pesadilla. Por eso empecé. La primera versión podía mostrar las diferencias en un línea y las diferencias en los espacios en blanco. Después se añadieron otras características para incrementar la utilidad. Por ejemplo, si desea comparar algún texto rápidamente, podrá copiarlo al portapapeles y pegarlo en otra ventana de diff. Una característica que requería un enorme esfuerzo era la capacidad de comparar y fusionar directorios, que convirtió el programa en un navegador de archivos completo. Espero que &kdiff3; le funcione también. ¡Diviértase! Joachim Eibl (2003) + + +Capturas de pantalla y características +Esta captura de pantalla muestra la diferencia entre dos archivos de texto. +(Utilizando una versión temprana de &kdiff3;): + + + + +Existe 3 formas de fusión totalmente implementadas. Resulta útil si dos personas modifican código de forma independiente. El archivo original (la base) se usa para ayudar a &kdiff3; a seleccionar automáticamente los cambios correctos. El editor de fusión que hay debajo de la ventana de diferencias le permite resolver los conflictos, a la vez que le muestra la salida. También podrá editar la salida. Esta captura de pantalla muestra tres archivos de entrada que se pueden fusionar: + + + + + +&kdiff3; también le ayuda a comparar y fusionar directorios completos. Esta captura muestra &kdiff3; durante la fusión de un directorio: + + + + + + +Más características +Visor de diferencias línea a línea y carácter a carácter +Usando las posibilidades de un visor gráfico a color &kdiff3;, muestra con exactitud cuál es la diferencia. Cuando haga algunas revisiones de código, obtendrá algo parecido a esto. + + + + + +Ver diferencias de espacios en blanco de un vistazo +Los espacios y tabulaciones que difieren se muestran visiblemente. Cuando las líneas difieren solo en la cantidad de espacios en blanco puede verse de un vistazo en la columna resumen en la parte izquierda (no más preocupaciones cuando se hagan cambios en el sangrado). + + + + + +Triple diferencia +Analiza tres archivos y ve dónde está la diferencia. Las ventanas izquierda/central/derecha se llamarán A/B/C y tendrán los colores azul/verde/gris respectivamente. Si un archivo es igual y el otro es diferente en una línea, el color mostrado en el archivo será diferente. El color rojo significa que ambos archivos son diferentes. + + + + + +Fusión cómoda de dos o tres archivos de entrada +&kdiff3; puede utilizarse para fusionar dos o tres archivos de entrada y hacer la fusión todo lo automática que sea posible. El resultado se presentará en una ventana editable donde se podrán resolver la mayor parte de los conflictos con una pulsación de ratón: Seleccione los botones A/B/C de la barra de botones para seleccionar la fuente que se utilizará. También podrá seleccionar más de una fuente. Como la ventana de salida es un editor aunque los conflictos puedan necesitar correcciones más profundas, este hecho puede resolverse aquí sin ninguna herramienta adicional. + + +Y... + + Navegación rápida a través de los botones. + Una pulsación del ratón en la columna resumen sincronizará todas las ventanas para mostrar la misma posición. + Seleccione una copia desde cualquier ventana y péguela en la ventana de fusión del resultado. + Columna de vista general que muestra los cambios y conflictos. + Los colores pueden ajustarse a sus preferencias. + Tamaño de pestaña ajustable. + Opción de insertar espacios en lugar de tabuladores. + Abrir archivos cómodamente a través de un diálogo o especificando archivos en la línea de órdenes. + Buscar cadenas en todas las ventanas de texto. Buscar (Ctrl-F) y Buscar siguiente (F3). + Mostrar los números de línea. + Pegar el portapapeles y arrastrar texto a una ventana de diferencias. + Transferencia de red a través de KIO. + Puede utilizarse como visor de diff en KDevelop 3. + Ajuste de línea para las líneas largas. + Uso de Unicode, UTF-8 y otras codificaciones. + Uso de idiomas que se escriben de derecha a izquierda. + ... + + + + + +Comparación y fusión de archivos + +Opciones de la línea de órdenes + +Comparar 2 archivos: +kdiff3 archivo1 archivo2 + + + +Fusionar 2 archivos: +kdiff3 archivo1 archivo2 -m + kdiff3 archivo1 archivo2 -o archivosalida + + + +Comparar 3 archivos: +kdiff3 archivo1 archivo2 archivo3 + + + +Fusionar 3 archivos: +kdiff3 archivo1 archivo2 archivo3 -m + kdiff3 archivo1 archivo2 archivo3 -o archivosalida + +Tenga en cuenta que archivo1 será tratado como base de archivo2 y archivo3. + + +Caso especial: Archivos con el mismo nombre +Si todos los archivos tienen el mismo nombre pero están en directorios diferentes, puede reducir el tipo de trabajo especificando el nombre del archivo solo para el primer archivo. Por ejemplo: +kdiff3 directorio1/nombrearchivo directorio2 directorio3 + + + +Línea de órdenes para iniciar la comparación o fusión de un directorio: +Es muy similar, pero ahora sobre directorios. +kdiff3 directorio1 directorio2 + kdiff3 directorio1 directorio2 -o directoriodestino + kdiff3 directorio1 directorio2 directorio3 + kdiff3 directorio1 directorio2 directorio3 -o directoriodestino + +Para la comparación y fusión de directorios puede continuar leyendo aquí. + + +Opciones de la línea de órdenes +Para obtener más información sobre las opciones de la línea de órdenes utilice: +kdiff3 --help + +Ejemplo de salida: +Opciones: + -m, --merge Fusiona la entrada. + -b, --base archivo Archivo base explícito. Por compatibilidad con ciertas herramientas. + -o, --output archivo Archivo de salida. Supone -m. Ejem.: -o nuevoarchivo.txt + --out archivo Archivo de salida, de nuevo. (Por compatibilidad con ciertas herramientas.) + --auto Sin interfaz si todos los conflictos se resuelven de forma automática. (Necesita -o archivo) + --qall No resuelve los conflictos automáticamente. (Por compatibilidad...) + --L1 alias1 Reemplazo de nombre visible para la entrada del archivo 1 (base). + --L2 alias2 Reemplazo de nombre visible para la entrada del archivo 2. + --L3 alias3 Reemplazo de nombre visible para la entrada del archivo 3. + -L, --fname alias Reemplazo de nombre visible alternativo. Proporcione este una vez para cada entrada. + --cs string Sobrescribe la configuración. Utilícelo una vez para cada opción. Por ejemplo: --cs "AutoAdvance=1" + --confighelp Muestra la lista de las opciones de configuración y sus valores actuales. + --config file Utiliza un archivo de configuración diferente. + +La opción le permite ajustar un valor de configuración que de otra forma solo sería ajustable a través del diálogo de configuración. Pero asegúrese de que cuando &kdiff3; finalice se guarden los valores con las configuraciones nuevas. Con puede encontrar los nombres de los elementos disponibles y los valores actuales. +A través de puede especificar un archivo de configuración diferente. Cuando utilice con frecuencia diferentes configuraciones para &kdiff3; esto le permitirá cambiar entre ellas. + +Opciones de la línea de órdenes que se ignoran +Mucha gente quiere utilizar &kdiff3; con algún sistema de control de versiones. Pero cuando el sistema de control de versiones llama a &kdiff3; utilizando los parámetros de la línea de órdenes &kdiff3; no los reconoce, y termina con un error. Las preferencias de integración le permiten especificar los parámetros de línea de órdenes que &kdiff3; debería ignorar. Aparecerán en la ayuda de uso, de forma similar a este ejemplo: +--foo Ignored. (Definida por el usuario.) + + + Opciones de la línea de órdenes a ignorar:Una lista de opciones separadas por punto y coma «;». Cuando aparezca una de estas opciones en una línea de órdenes, &kdiff3; la ignorará y se ejecutará sin informar de ningún error (el valor predeterminado es «u;query;html;abort»). + +Si esto no es suficiente, se recomienda escribir un script para el intérprete de órdenes que traduzcan esta opción. + + + + +Diálogo abrir +Como se pueden seleccionar varios archivos de entrada, el programa tiene un diálogo de apertura especial: + + + +El diálogo abrir le permite editar los nombres de los archivos manualmente, seleccionando un archivo a través del navegador de archivos («Archivo...») o permitir la elección de los archivos recientes a través de las listas desplegables. Si abre el diálogo nuevamente, el nombre actual continúa ahí. El tercer archivo de entrada no es necesario. si la entrada para «C» permanece vacía, solo se efectuará el análisis de diferencia de dos archivos. Puede seleccionar un directorio a través de «Dir...». Si se especifica un directorio para A entonces comienza la comparación/fusión de directorios. Si en A especifica un archivo y en B, C o en la salida se especifica un directorio, &kdiff3; usa el nombre del archivo de A en los directorios especificados. Si está seleccionado «Fusionar», la línea de «Salida» será editable. Pero no se necesita especificar el nombre de archivo de salida de forma inmediata. Puede posponerlo hasta que lo guarde. El botón «Configurar...» abre el diálogo de opciones, de forma que pueda seleccionar las opciones antes de realizar el análisis. + + +Pegar y soltar la entrada +Algunas veces deseará comparar partes de un texto que no sea propiamente un archivo. &kdiff3; también le permite pegar texto desde el portapapeles a la ventana de entrada de diff que tenga el foco. El análisis de las diferencias se producirá inmediatamente. En el diálogo abrir no necesitará especificar archivos entonces, ciérrelo con el botón «Cancelar». También podrá utilizar arrastrar y soltar: Arrastre un archivo desde un administrador de archivos o seleccione texto en un editor y arrástrelo a la ventana de entrada. ¿Cuál es la idea? Algunas veces un archivo contiene dos funciones similares, pero comprobar las similitudes es un esfuerzo enorme si primero debe crear los archivos y luego cargarlos. Ahora bastará con copiar, pegar y comparar las secciones relevantes. Nota: En estos momentos no podrá arrastrar nada desde &kdiff3;. Solo está permitido en la ventana de entrada diff. Aviso: Algunos editores todavía interpretan arrastrar y soltar en otro programa como cortar (en lugar de copiar) y pegar. En este caso sus datos originales se perderían. + + +Interpretar la información en las ventanas de entrada + + + +Línea de informaciónEn la parte superior de cada ventana de texto se encuentra la «línea de información». Las líneas de información de las ventanas de entrada contienen una letra «A», «B» y «C», el nombre del archivo, un botón para el navegador, y el número de línea de la primera línea visible en la ventana (recuerde que la ventana «C» es opcional). Cada línea de información aparecerá con un color diferente. Cuando selecciona otro archivo a través del navegador o termina de editar el nombre del archivo pulsando entrar, el nuevo archivo se cargará y se comparará con el(los) archivo(s) que ya estaba(n) cargado(s). ColoreadoLas tres ventanas de entrada tienen asignadas las letras «A», «B» y «C». «A» tiene color azul, «B» verde y «C» magenta (estos son los valores predeterminados, pero puede cambiarlos en el menú Preferencias). Cuando se detecta una diferencia el color mostrado en el archivo de entrada cambia. Cuando los dos archivos presentan diferencias el color utilizado para expresar esto es rojo de manera predeterminada («Color de conflicto» en las preferencias). Este esquema de color es especialmente práctico en el caso de que tenga tres archivos de entrada, tal y como se verá en la próxima sección (Fusionar). Columna resumenA la izquierda de cada texto se encuentra la «columna resumen». Si las diferencias se producen en una línea, la columna resumen muestra el color correspondiente. Si la diferencia es solo de espacios en blanco, se marca el resumen. Para los lenguajes de programación en los que los espacios no son importantes es práctico para apreciar de un vistazo si se modificó algo importante. (En C/C++ los espacios en blanco solo son interesantes en el interior de las cadenas, comentarios, para el preprocesador y en otra serie de extrañas situaciones). La línea vertical que separa la columna resumen y el texto se interrumpe si el archivo de entrada no tiene líneas. Cuando se activa el ajuste de línea, esta línea vertical aparecerá punteada en las líneas ajustadas. Columna de visión generalEn el lado derecho podemos encontrar la columna «visión general», a la izquierda de la barra de desplazamiento. Muestra la columna de resumen comprimida de la entrada «A». todas las diferencias y conflictos se pueden apreciar de un vistazo. Cuando solo se utilizan dos ventanas de entrada, todas las diferencias aparecerán en rojo, ya que cada diferencia supondrá un conflicto. Un rectángulo negro marca la parte visible de las entradas. Para los archivos con entradas muy largas, cuando el número de líneas es más grande que la altura de la columna visión general en pixels, varias líneas de entrada compartirán una línea de visión general. Un conflicto tendrá más prioridad que las simples diferencias, que a su vez tendrán prioridad sobre lo no cambiado, de forma que no se pierdan las diferencias o los conflictos aquí. Pulsando sobre la columna de visión general se mostrará el correspondiente texto. Líneas alineadas manualmenteAlgunas veces el algoritmo sitúa líneas incorrectas unas al lado de otras. O desea comparar un trozo de texto con otro texto que está en una posición completamente diferente en el otro archivo. Para estas situaciones puede indicar a &kdiff3; manualmente que alinee algunas líneas. Marque el texto que quiera alinear con el ratón, como si estuviera copiando y pegando, en la primera vista de diferencia y seleccione «Añadir alineación manual de diferencias» en el menú «Diffview» (acceso rápido de teclado &Ctrl;Y). Aparecerá una barra naranja en la columna resumen al lado del texto seleccionado. Repita esto para la segunda y (si está disponible) para la tercera vista. &kdiff3; recalculará inmediatamente las diferencias cada vez que haga esto, y alineará las líneas elegidas. Por supuesto, alguna de las líneas que antes coincidían puede que ya no coincidan. En la actualidad, la fusión no permite el uso de ayuda manual de diff. Secciones de división y unión manualEn algunos casos &kdiff3; verá muy pocas o demasiadas secciones diff para fusionar. Si este es el caso, puede unir o dividir las secciones existentes. Añada secciones nuevas seleccionando primero el texto de las líneas situadas junto a las ventanas de entrada (para copiarlo al portapapeles). A continuación elija «Dividir Diff en la selección» en el menú «Fusionar». Las divisiones se añadirán encima de la primera línea bajo el texto seleccionado. Si solo desea añadir una sección, seleccione el texto por el que comienza la sección que desea dividir. Para unir secciones en las ventanas de entrada seleccione varias líneas en las secciones que desea unir (puede unir varias secciones en un solo paso). A continuación elija «Unir las diferencias seleccionadas» en el menú «Fusionar». + + + +Fusionar y la ventana del editor de la salida fusionada + + + +La ventana del editor de la salida fusionada (bajo las ventanas de la entrada de diferencias) también tiene una línea de información sobre ella que mostrará «Salida», el nombre del archivo y «[Modificado]» si edita algo. Normalmente contendrá texto que podrá fusionarse automáticamente con facilidad, pero algunas veces también contendrá conflictos. La opción de guardar se ha desactivado hasta que se hayan resuelto todos los conflictos (use los botones «Ir al conflicto anterior/siguiente sin resolver» para encontrar los conflictos pendientes). Con solo dos archivos de entrada, cada diferencia es también un conflicto que debe resolverse manualmente. Con tres archivos de entrada el primer archivo se utiliza como base, mientras que el segundo y tercer archivos de entrada contienen las modificaciones. Si en cualquier línea solo tienen cambios la entrada B o la C, pero no ambas, se seleccionará automáticamente la fuente cambiada. Solo cuando B y C tengan cambios en las mismas líneas, la herramienta detectará un conflicto que debe resolverse manualmente. Cuando B y C sean iguales, pero diferentes a A, se seleccionará C. La columna resumenEl editor de la salida de la fusión también tiene una columna resumen a su izquierda. Mostrará la letra de la entrada de la que se seleccionó la línea, o nada si las tres fuentes son iguales en esa línea. Para los conflictos mostrará un signo de interrogación «?» y la línea mostrará «<Conflicto de fusión>», en rojo. Puesto que resolver los conflictos línea a línea es muy arduo, las líneas se agruparán en grupos que tengan las mismas diferencias y conflictos característicos. Pero los conflictos causados solo por espacios en blanco se separarán de los conflictos no causados por espacios en blanco para facilitar la fusión de los archivos cuando el sangrado cambia en muchas líneas. Configurar el grupo actual, sincronizado de fusión y posición de vista de diferenciasCuando se pulsa en la columna resumen con el botón izquierdo del ratón en la ventana a la que pertenezca este grupo, se seleccionarán todas las ventanas y se mostrará el comienzo de este grupo (esto implica un salto automático en la posición de la ventana si el principio del grupo no se encuentra visible). El grupo se convierte en el «grupo actual». Se resalta con la «gama (diff) de color del fondo actual» y aparecerá una barra negra en la parte izquierda del texto. Seleccionar las entradas A, B o C para el conflicto actual y la ediciónLa barra de botones bajo el menú incluye tres botones para seleccionar las entradas que contienen las letras «A», «B» y «C». Pulse el botón selector de entrada para insertar (o eliminar si ya se ha insertado) las líneas de la fuente respectiva. Para seleccionar las líneas de varias entradas pulse los botones correspondientes en el orden que necesite. Por ejemplo, si desea que las líneas de «B» aparezcan antes de las líneas de «A» en la salida, pulse primero «B» y luego «A». Si estaba utilizando la opción avance automático («Automáticamente ir al conflicto siguiente sin resolver después de una selección de origen»), debería desactivarla antes de elegir líneas desde varias entradas o editar líneas después de su elección. Si no lo hace, &kdiff3; saltará al siguiente conflicto después de elegir la primera entrada. Suele ser práctico para editar directamente la salida resultante de la fusión. La columna resumen mostrará «m» para cada línea que se haya modificado manualmente. Cuando, por ejemplo, las diferencias estén alineadas de forma que la simple elección no sea satisfactoria, puede marcar el texto necesario y utilizar copiar y pegar de forma normal para situarlo en la salida de la fusión. Algunas veces, cuando una línea se elimina, ya sea por la fusión o por la edición manual, y no hay más líneas en este grupo, aparecerá el texto <Sin línea fuente>. Se coloca en lugar del grupo de forma que pueda cambiar de idea y seleccionar de nuevo la fuente. Este texto no aparecerá en el archivo guardado o en cualquier selección que copie y pegue. El texto «<Conflicto de fusión>» aparecerá en el portapapeles si copia y pega texto que la contenga. Pero tenga cuidado al hacerlo. Seleccionar las entradas A, B o C para todos los conflictosLa fusión normal se inicia resolviendo los conflictos sencillos automáticamente. Pero el menú «Fusionar» proporciona algunas acciones para otras necesidades habituales. Si ha seleccionado la misma fuente para más conflictos, podrá seleccionar «A», «B» o «C» en cualquier sitio, o solo para los conflictos pendientes de resolver, o para los conflictos sin resolver que sean debidos a espacios. Si desea decidir cada delta por sí mismo, puede «Establecer deltas a conflictos». O si desea volver a las elecciones automáticas de &kdiff3; seleccione «Resolver automáticamente conflictos simples». &kdiff3; reiniciará la fusión. Para las acciones que cambien sus modificaciones anteriores, &kdiff3; le pedirá confirmación antes de proceder. Nota: Cuando seleccione fuente para los conflictos de espacios en blanco sin resolver y las opciones «Ignorar números» o «Ignorar comentarios C/C++», los cambios en los números o en los comentarios se tratarán también como espacios en blanco. Fusión automática de las claves de control de versión y del historial (registro)Muchos sistemas de control de versión permiten usar palabras claves especiales en el archivo (p. ej.: «$Date$$», «$Header$», «$Author$», «$Log$», etc.) Durante la descarga el sistema de control de versiones (VCS) cambia estas líneas. Por ejemplo, «$Date$» se cambiará por «$Date: 2005/03/22 18:45:01 $». Como esta línea será diferente en cada versión del archivo, podría requerir interacción manual durante la fusión. &kdiff3; ofrece fusión automática para estos elementos. Para las líneas que coincidan con la opción «Fusionar automáticamente expresión regular» en todos los archivos de entrada de &kdiff3; se elegirá la línea desde B o -si está disponible- desde C (adicionalmente es necesario que las líneas en cuestión si las comparamos con las líneas anteriores no han de tener conflictos). Esta fusión automática también se puede ejecutar de forma inmediata después de iniciar la fusión (active la opción «Ejecutar expresión regular de fusión automática al iniciar la fusión») o posteriormente a través del menú de fusión «Ejecutar expresión regular de fusión automática»). También se permite la fusión automática del historial de control de versión (también llamado «registro»). El historial de fusión automática se puede ejecutar automáticamente cuando se inicie la fusión activando la opción «Resolver automáticamente los conflictos del historial». Normalmente el historial de control de versión comienza con una línea que contiene la palabra clave «$Log$». Esta deberá coincidir con la opción «El historial comienza con la expresión regular». &kdiff3; detecta que las siguientes líneas se encuentran en el historial analizando los caracteres importantes que se encuentran delante de la palabra clave «$Log$». Si el mismo «comentario importante» también aparece en las siguientes líneas, también estas se incluirán en el historial. Durante cada descarga el VCS escribe una única línea especificando la versión, fecha, e información horaria seguida de líneas con comentarios del usuario. Estas líneas forman una entrada de historial. Esta sección del historial crece cada vez que descarga de forma que las entrada más recientes aparecerán en la parte superior (después de la línea de inicio del historial). Cuando dos o más desarrolladores que están realizando un desarrollo paralelo descargan una rama de un archivo la fusión del historial contendrá varias entradas que aparecerán como conflictos durante la fusión de las ramas. Como esta fusión puede ser muy aburrida, &kdiff3; le permite usar dos posibles estrategias: Insertar la información del historial de ambos colaboradores en la parte superior u ordenar la información del historial por una clave definida por el usuario. El método que simplemente inserta las entradas es fácil de configurar. &kdiff3; solo necesita un método para detectar qué líneas pertenecen a una entrada del historial. La mayor parte de los VCS insertan una línea vacía después de cada entrada del historial. Si no hay otras líneas vacías, este criterio es suficiente para &kdiff3;. Seleccione «Entrada del historial que inicia una expresión regular». Si el criterio de la línea vacía no es suficiente, puede especificar una expresión regular para detectar el inicio de la entrada del historial. Tenga en cuenta que &kdiff3; eliminará las entradas duplicadas del historial. Si una entrada aparece varias veces en el historial de un archivo de entrada, solo permanecerá una entrada en la salida. Si desea ordenar el historial, debe especificar cómo se debe construir la clave de ordenación. Utilice paréntesis en «Entrada del historial que inicia una expresión regular» para agrupar partes del a expresión regular que se deberían utilizar posteriormente para la tecla de ordenación. A continuación especifique «Orden de la clave de ordenación que inicia la entrada del historial» especificando una lista de números separados por una coma «,» para referirse a la posición del grupo en la expresión regular. Debido a que no es sencillo de hacer al primer intento, podrá comprobar y mejorar la expresión regular y la generación de clave en un diálogo dedicado pulsando el botón «Comprobar sus expresiones regulares». Ejemplo: Supongamos que tenemos un historial similar a este: +/************************************************************************** +** HISTORIAL: $Log: \vista_principal_de_tom\MiAplicación\src\algoritmocomplejo.cpp $ +** +** \main\rama_integración_12 2 Abr 2001 10:45:41 tom +** rama fusionada simon_rama_15. +** +** \main\henry_correccionerrores_rama_7\1 30 Mar 2001 19:22:05 henry +** mejora la velocidad de la subrutina convertToMesh(). +** Eliminación de fallo. +**************************************************************************/ + La línea de comienzo del historial es la que coincida con la expresión regular ".*\$Log.*\$.*". Las siguientes son las entradas del historial. La línea con «$Log$» -la palabra clave comienza con dos «*» seguidos de un espacio. &kdiff3; utiliza la cadena con el primer espacio no vacío como «comentario importante» y asume que el historial finaliza en la primera línea sin este comentario importante. En este ejemplo la última línea finaliza con una cadena que también comienza con dos «*», pero en lugar de un carácter de espacio le siguen más «*». Por tanto, esta línea finalizará el historial. Si no es necesaria la ordenación del historial, la entrada del historial comenzará con una línea de expresión regular como esta (esta línea se divide en dos porque, en caso contrario, no se podría ajustar) +\s*\\main\\\S+\s+[0-9]+ (Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + Para obtener detalles sobre las expresiones regulares, por favor, consulte la documentación de las expresiones regulares de Trolltech. Tenga en cuenta que «\s» (con la «s» minúscula) coincidirá con cualquier espacio y «\S» (con «S» mayúscula) coincidirá con lo que no sean espacios en blanco. En nuestro ejemplo la entrada del historial deberá contener primero la versión de información de la expresión regular "\\main\\\S+", la fecha formada por el día «[0-9]+», mes «(Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)» y año «[0-9][0-9][0-9][0-9]», la hora «[0-9][0-9]:[0-9][0-9]:[0-9][0-9]» y, finalmente, el nombre de registro del desarrollador «.*». Observe que el «comentario importante» (en el ejemplo «**») lo eliminará &kdiff3; antes de buscar la coincidencia, de ahí que la expresión regular comience con con una expresión regular para ninguno o más espacios en blanco «.*». Puesto que los caracteres de comentario puede ser diferentes en cada archivo (por ejemplo, C/C++ utilizan caracteres de comentarios diferentes a los que utiliza Perl script) &kdiff3; tiene en cuenta los caracteres de los comentarios y no debería especificarlos en la expresión regular. Si necesita un historial ordenado, se calculará la clave de ordenación. Para esta las partes relevantes en la expresión regular se deben agrupar entre paréntesis (los paréntesis adicionales puede mantenerse aunque desactive la ordenación del historial). +(Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + Los paréntesis ahora contendrán: 1. versión de información, 2. día, 3. mes, 4. año, 5. hora, 6. nombre. Pero si deseamos ordenarlos por fecha y hora, necesitará construir una clave con los elementos en un orden de aparición diferente: Primero el año, seguido del mes, día, hora, información de versión y nombre. De ahí que el orden de la clave de ordenación que se deba especificar sea «4,3,2,5,1,6». Ya que los nombres de los meses no son buenos para la ordenación («Abr» iría primero) &kdiff3; detectará que son nombres de meses y utilizará números en su lugar («Abr»->«04»). Si se encuentra un número puro se transformará en un valor de 4 dígitos con ceros significativos para la ordenación. Finalmente la clave de ordenación resultante que iniciará la primera entrada del historial será: 2001 04 0002 10:45:41 rama_integración_12 tom + +Para obtener más detalles consulte también Preferencias de fusión. + + + +Navegación y edición +La mayor parte de la navegación puede realizarse con las barras de desplazamiento y el ratón, pero también puede navegar con las teclas. Si pulsa en cualquier ventana puede utilizar los cursores izquierdo, derecho, arriba, abajo, página arriba, página abajo, inicio, fin, Ctrl-Inicio, Ctrl-Fin tal y como lo haría en otros programas. La columna vista general situada al lado de la barra vertical de desplazamiento en los archivos de entrada también puede utilizarse para navegar pulsando sobre ella. También puede utilizar la rueda del ratón para desplazarse arriba y abajo. En el editor de la salida de fusión también puede utilizar las otras teclas para la edición. Puede cambiar entre los modos insertar y sobrescribir con la tecla Insertar (el modo predeterminado es insertar). Una pulsación del botón izquierdo del ratón en la columna resumen sincronizará todas las ventanas para mostrar el inicio del mismo grupo de líneas (tal y como se explicaba en la sección «Configurar el grupo actual, sincronizado de fusión y posición de vista de diferencias»). La barra de botones también contiene siete botones de navegación con los que podrá saltar a la diferencia actual/primera/última, a la siguiente/anterior diferencia (Ctrl-Flecha abajo/Ctrl-Flecha arriba), al siguiente/anterior conflicto (Ctrl-Página abajo/Ctrl-Página arriba), o al siguiente/anterior conflicto sin resolver. Tenga en cuenta que para &kdiff3; un «conflicto» que no se pudo resolver automáticamente al comienzo de la fusión continúa siendo un «conflicto» aunque se haya resuelto. De aquí la necesidad de distinguir los «conflictos sin resolver» +Avance automático +También existe el botón «Automáticamente ir al conflicto siguiente sin resolver después de una selección origen» (avance automático). Si activa esto, cuando se seleccione una fuente &kdiff3; saltará automáticamente al siguiente conflicto sin resolver. Esto puede ayudarle cuando desee seleccionar una sola fuente. Cuando necesite ambas fuerte, o desee editar después de la selección, probablemente querrá desactivar esto. Antes de continuar con el siguiente conflicto sin resolver &kdiff3; muestra el resultado de su elección durante un momento. Este retardo es ajustable en las preferencias Diff y fusión: Puede especificar en «Retardo auto avanzado» en milisegundos un valor entre 0 y 2.000. Pista: ¿Cansado de tanta pulsación? Utilice un retardo de avance automático pequeño y los accesos rápidos Ctrl-1/2/3 para seleccionar A/B/C para muchos de los conflictos. + + + +Seleccionar, copiar y pegar +Las ventanas de entrada no muestran un cursor, por ello las selecciones se hacen pulsando el botón izquierdo del ratón al inicio, manteniendo pulsado el botón del ratón y moviéndose al final, momento en el que soltará el botón del ratón. También puede seleccionar una palabra con una doble pulsación. En la salida del editor de la fusión puede realizar la selección a través del teclado manteniendo pulsado el botón «mayúsculas» y navegando con las teclas de cursor. Si la selección excede el rango visible puede desplazar el ratón sobre los bordes de la ventana que harán que &kdiff3; se desplace en esta dirección. Para las selecciones muy largas puede utilizar las teclas de navegación mientras mantiene pulsado el ratón. Por ejemplo, use RePág y AvPág para ir rápidamente a una posición determinada. Al final de la posición suelte el botón del ratón. Para seleccionarlo todo en la ventana actual utilice el menú «Editar»->«Seleccionar todo» (Ctrl-A). Para copiar al portapapeles debe pulsar el botón «Copiar» (Ctrl-C o Ctrl-Insertar). Pero también existe la opción «Auto copiar selección». Si está activado, todo lo que seleccione se copiará inmediatamente y no necesitará realizar la copia explícitamente. Ponga atención cuando lo utilice ya que el contenido del portapapeles puede destruirse accidentalmente. «Cortar» (Ctrl-X o Mayúsculas-Borrar) copia el texto seleccionado al portapapeles y lo borra. «Pegar» (Ctrl-V o Mayúsculas-Insertar) inserta el texto del portapapeles en la posición del cursor o sobre la selección actual. Si pega algo en cualquier ventana de entrada de diferencia se mostrará el contenido del portapapeles en esta ventana y la comparación se reiniciará inmediatamente. Es práctico si desea guardar rápidamente un trozo de texto de alguna parte y compararlo con algo sin crear los archivos en primer lugar. + + +Guardar +Guardar solo estará permitido cuando se hayan resuelto todos los conflictos. Si el archivo ya existe y la opción «Archivos de copia de seguridad» está activada, se cambiará el nombre del archivo existente con la extensión «.orig»; pero si ya existe dicho archivo, se borrará. Cuando salga o inicie otro análisis de diferencias y los datos no se hayan guardado, &kdiff3; le preguntará si desea guardar, cancelar o continuar sin guardar (&kdiff3; no captura ninguna señal. Por eso, si ejecuta «kill» sobre &kdiff3;, sus datos se perderán). Los finales de línea se guardan de acuerdo con el método utilizado por el sistema operativo. Para Unix, cada línea termina con un carácter de nueva línea «\n», mientras que para los sistemas basados en Win-32 cada línea termina con un retorno de carro + un nueva línea «\r\n». &kdiff3; no conserva los finales de línea de los archivos de entrada, lo que significa que no debería utilizar &kdiff3; con archivos binarios. + + +Buscar cadenas +Puede buscar una cadena en cualquier ventana de texto de &kdiff3;. La orden «Buscar...» («Ctrl-F) en el menú Editar abre un diálogo que le permite especificar la cadena a buscar. La búsqueda siempre comenzará en la parte superior. Utilice la orden «Buscar siguiente» («F3») para buscar la siguiente aparición. si selecciona la búsqueda en varias ventanas se comenzará a buscar en la primera ventana de arriba hacia abajo antes de iniciar la búsqueda en la parte superior de la siguiente ventana, etc. + + +Impresión +&kdiff3; permite imprimir las diferencias de los archivos de texto. La orden «Imprimir» (Ctrl-P) en el menú archivo abre un diálogo que permite seleccionar la impresora y ajustar otras opciones. Existen varias posibilidades de ajustar el rango. Debido a las diferencias existentes en los diálogos de impresión de los diversos sistemas operativos, el método para realizar determinadas selecciones variará. + + Todo:Imprime todo. + Actual:Imprime un página comenzando en la primera línea visible de la ventana (en sistemas sin esta opción se puede suplir este inconveniente especificando la página número 10000 para imprimir). + Selección:Antes de realizar esta elección de impresión seleccione el texto con el ratón (como para copiar y pegar) en una de las ventanas de entrada de diferencias para definir las líneas inicial y final. Si no hay texto seleccionado en una de las ventanas de diferencia, no estará disponible esta opción (en sistemas sin esta opción se puede conseguir el mismo resultado especificando la página 9999). + Intervalo:Especifique la primera y última página. + +Otras opciones importantes para la impresión son las habituales: + Letra, tamaño de letra + Mostrar números de línea + Ajuste de texto + Colores + etc. + +También se recomienda la impresión en formato apaisado. + + +Opciones +Las opciones y la lista de archivos recientes se guardarán cuando salga del programa, y se volverán a cargar cuando lo inicie (Menú Preferencias->Configurar &kdiff3; ...). +Fuente +Seleccione un tipo de letra de ancho fijo (en algunos sistemas este diálogo puede mostrar tipos de letra de ancho variable, pero no debería utilizarlas). + + Fuente cursiva para deltas:Si selecciona esto, las diferencias de texto se dibujarán con la versión cursiva del tipo de letra. Si el tipo de letra no permite el uso de cursiva, no hará nada. + + + + +Colores + + Color del primer plano:Habitualmente negro. + Color de fondo:Habitualmente blanco. + Color del fondo de diff:Habitualmente gris claro. + Color A:Habitualmente azul oscuro. + Color B:Habitualmente verde oscuro. + Color C:Habitualmente magenta oscuro. + Color de conflicto:Habitualmente rojo. + Rango actual de color de fondo:Habitualmente amarillo claro. + Rango actual de color de fondo de diff:Habitualmente amarillo oscuro. + Color para intervalos de diferencias seleccionados manualmente:Habitualmente naranja. + Color del archivo más nuevo en la comparación de directorios:Habitualmente verde. + Color del archivo más antiguo en la comparación de directorios:Habitualmente rojo. + Color de los archivos de antigüedad media en la comparación de directorios:Habitualmente amarillo oscuro. + Color para los archivos que faltan en la comparación de directorios:Habitualmente negro. + +Los cambios de color para la comparación de directorios no tendrán efecto hasta la siguiente vez que inicie la comparación de directorios. +En sistemas que solo tengan 16 o 256 colores, algunos de ellos no estarán disponibles en su forma exacta. En estos sistemas, el botón «Predeterminados» seleccionará un color puro. + + +Preferencias del editor + + El tabulador inserta espacios:Si está desactivado y pulsa la tecla tabulador, se insertará un carácter de tabulación; en caso contrario, se insertará la cantidad adecuada de caracteres. + Tamaño del tabulador:Se puede ajustar para sus necesidades. El valor predeterminado es 8. + Sangrado automático:Cuando pulsa Entrar; o Return el sangrado de la línea anterior se utiliza para la nueva línea. + Copiar la selección automáticamente:Cada selección se copia inmediatamente al portapapeles de forma que no necesitará copiarlo explícitamente. + Estilo del final de línea:Al guardar puede seleccionar qué estilo de línea prefiere. El valor predeterminado es la elección habitual para el sistema operativo utilizado. + + + +Preferencias de fusión +Cuando se comparan archivos, &kdiff3; primero intenta hacer coincidir las líneas que sean iguales en todos los archivos de entrada. Solo durante este paso se ignorarán los espacios en blanco. El segundo paso compara cada línea. En este paso los espacios en blanco no se ignorarán. Los espacios en blanco tampoco se ignorarán durante la fusión. + + + Ignorar números:De forma predeterminada estará desactivado. Los caracteres numéricos («0-9», «.», «-») se ignorarán en la primera parte del análisis en la que se efectuará la coincidencia de líneas. Sin embargo en el resultado las diferencias sí se mostrarán, pero serán tratadas como espacios en blanco. + Ignorar comentarios de C/C++:De forma predeterminada estará desactivado. Los cambios en los comentarios se tratarán como cambios de espacios en blanco. + Ignorar mayúsculas:De forma predeterminada estará desactivado. Las diferencias de mayúsculas y minúsculas de los caracteres (como «A» y «a») se tratarán como cambios de espacios en blanco. + Orden del preprocesador:Vea la siguiente sección. + Orden de preprocesador de coincidencia de línea:Vea la siguiente sección. + Intentar más a fondo:Intenta encontrar más a fondo una delta más pequeña (de forma predeterminada estará activada). Debería ser efectivo para archivos grandes y complicados. Y lento para archivos muy grandes. + + + +Preferencias de fusión + + Retardo auto avanzado (ms):Cuando está activado el modo de «auto avanzado» aquí se especifica durante cuanto tiempo se mostrará el resultado de la selección antes de saltar al siguiente conflicto sin resolver. + Fusionar de forma predeterminada espacios en blanco de dos/tres archivos:Resuelve automáticamente todos los conflictos de los espacios en blanco seleccionando el archivo especificado (el modo predeterminado es el manual). Práctico si los espacios no son realmente importantes en los archivos. Si solo necesita esto ocasionalmente mejor utilice «Seleccionar A/B/C para todos conflictos de los espacios en blanco sin resolver» en el menú Fusionar. Tenga en cuenta que si ha activado «Ignorar números» o «Ignorar comentarios de C/C++» esta elección automática también se aplica a los conflictos en los números y en los comentarios. + Expresión regular de fusión automática:Expresión regular para las líneas en las que &kdiff3; debería elegir automáticamente una fuente. Consulte también Fusión automática. + Ejecutar expresión regular de fusión automática al iniciar la fusión:Si está activado &kdiff3; ejecutará la fusión automática utilizando la «expresión regular de fusión automática» cuando se inicie una fusión. + Expresión regular de inicio de historial:Expresión regular para el inicio de la entrada del historial de fusiones. Normalmente, esta línea contiene la palabra clave «$Log$». El valor predeterminado es «.*\$Log.*\$.*». + Expresión regular de inicio de entrada del historial:Una entrada del historial de fusión está formada por varias líneas. Especifique la expresión regular para detectar la primera línea (sin el comentario importante). Utilice paréntesis para agrupar las claves que desee utilizar para la ordenación. Si está vacío, &kdiff3; asume que las líneas vacías separan entradas del historial. Consulte también Fusión automática. + Ordenación del historial de fusión:Activar ordenación del historial del control de versiones + orden de la clave de ordenación del inicio de la entrada del historial:Cada paréntesis utilizado en la expresión regular para la entrada del inicio del historial agrupa una clave que puede utilizarse para la ordenación. Especifique la lista de claves (están numeradas en orden de aparición comenzando con 1) y utilizando «,» como separador (p. ej. «4,5,6,1,2,3,7»). Si permanece vacío, no se realizará ordenación. Consulte también fusión automática. + Historial del control de versión de fusión al iniciar la fusiónSi está activado, &kdiff3; ejecuta automáticamente la fusión del historial utilizando las opciones antes mencionadas cuando se inicia una fusión. + Número máximo de entradas en el historial:&kdiff3; corta la lista del historial después del número especificado de entradas. Utilice -1 para evitar el corte (el valor predeterminado es -1). + Compruebe sus expresiones regularesEste botón muestra un diálogo que le permite mejorar y comprobar la expresión regular. Copie los datos de sus archivos en las líneas de ejemplo. Los «Resultados coincidentes» si la coincidencia se produjo o no. El «Resultado de la clave de ordenación» mostrará la clave utilizada para la ordenación del historial de fusión. + Orden de fusión irrelevante:Especifique una orden que debería ser llamada cuando &kdiff3; detecte que para el archivo B no contiene datos relevantes ya que están incluidos en C. La orden se llama con los tres nombres de archivo como parámetros. Los datos deberán coincidir con la «expresión regular de fusión automática» o con el historial, si no se considera relevante. + + + + +Fusión de directorios +Estas opciones están relacionadas con la exploración del directorio y el manejo de la fusión: Vea la Comparación/fusión de directorios de documentos para obtener los detalles. También existe una opción relevante para guardar archivos sencillos: + + Archivos de copia de seguridad:Cuando se guarde un archivo y ya exista una versión antigua, se cambiará el nombre de la versión original con la extensión «.orig». Si ya existía un archivo de copia de seguridad antigua con la extensión «.orig», se borrará. + + + +Configuraciones regionales + + Idioma:Ajusta el idioma de la interfaz de usuario. Cambiar esta opción no afectará a la ejecución del programa. Tendrá que salir y reiniciar &kdiff3; para que el cambio tenga efecto (esta opción no está disponible en la versión de Frameworks de &kdiff3;). + Usar la misma codificación para todo:Las siguientes opciones de codificación se pueden ajustar de forma separada para cada elemento, o si esta opción está activada, todos los valores tomarán el primer valor. + Codificación local:Sobre los selectores de código aparece una nota que le indica cuál es la codificación local (no es ajustable, ya que se utiliza para informarle de su codificación en caso de que no la conozca, y necesite seleccionarla). + Codificación de archivo para A/B/C:Ajusta la codificación para los archivos de entrada. Esto tiene efecto en la interpretación de los caracteres especiales. Como puede ajustar cada codificación por separado puede comparar y fusionar archivos guardados con diferentes codificaciones. + Codificación de archivo para la salida de la fusión y guardar:Cuando haya editado un archivo, podrá ajustar qué codificación se utilizará al guardarse en el disco. + Codificación de archivo para los archivos del preprocesador:Cuando defina el preprocesador puede que no sea capaz de operar con su codificación (ejem: Sus archivos son de unicode de 16 bit y su preprocesador solo puede utilizar ascii de 8 bit). Con esta opción puede definir la codificación de la salida del preprocesador. + Idioma de derecha a izquierda:Algunos idiomas se escriben de derecha a izquierda. Cuando esta opción está activada, &kdiff3; dibuja el texto de derecha a izquierda en las ventanas de entrada de diff y en la ventana de la salida de la fusión. Tenga en cuenta que si inicia &kdiff3; con la opción de línea de órdenes «--reverse» toda la distribución se hará de derecha a izquierda también (esta es una característica proporcionada por Qt). Este manual se escribió asumiendo que «Idioma de derecha a izquierda» o invertir distribución están desactivados. Por ello, algunas referencias a «izquierda» o «derecha» se reemplazarán por sus respectivas homólogas si utiliza estas opciones. + + + + +Varios +Estas opciones y acciones están disponibles en los menús o en la barra de botones. + + Mostrar números de líneas:Puede seleccionar si los números deberían mostrarse en los archivos de entrada. + Mostrar caracteres espacio y tabulador por diferencias:Algunas veces los espacios visibles y los tabuladores molestan. Puede desactivarlos. + Mostrar espacio en blanco:Desactívelo para suprimir cualquier resaltado o cambio de «solo espacio en blanco» en el texto o en las columnas de vista general (tenga en cuenta que esto también se aplicará a los cambios en los números y comentarios si están activadas las opciones «Ignorar números» o «Ignorar comentarios C/C++»). + Opciones de la vista general:Estas elecciones están disponibles cuando compara tres archivos. En el modo normal todas las diferencias se muestra en un color codificado en la columna de vista general. Pero algunas veces puede estar interesado en las diferencias entre solo dos de los tres archivos. Seleccionando vista «A vs. B», «A vs. C» o «B vs. C» se mostrará una segunda columna de vista general con la información requerida situado al lado de la visión general normal. + Ajuste de palabras en las ventanas diff:Ajusta las líneas cuando su longitud excede del ancho de una ventana. + Mostrar ventana A/B/C:Algunas veces deseará utilizar mejor el espacio de la pantalla para las líneas largas. Oculte las ventanas que no sean importantes (en el menú Ventanas). + Cambiar orientación de división:Cambia entre las ventanas diff mostrándolas una cerca de la otra (A a la izquierda de B, y a la izquierda de C) o una sobre otra (A sobre B y sobre C). También debería servir de ayuda para las líneas largas (en el menú Ventanas). + Iniciar fusión rápida:Algunas veces puede estar viendo las deltas y decidir fusionarlas. «Fusionar el archivo actual» en el menú Directorio también funcionará si solo compara dos archivos. Una simple pulsación inicia la fusión y utiliza el nombre de archivo del último archivo de entrada como nombre de archivo predeterminado (cuando se utiliza esto para reiniciar una fusión, se conservará el nombre de archivo de la salida). + + + +Configurar accesos rápidos de teclado +En estos momentos solo la versión para Frameworks permite accesos rápidos de teclado configurables por el usuario (Menú Preferencias->Configurar accesos rápidos). + + + +Órdenes del preprocesador +&kdiff3; permite dos opciones para el preprocesador. + + Orden del preprocesador:Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Se podrá ver la salida de esta orden en lugar del archivo original. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Utilice esto para cortar determinadas partes del archivo, o para corregir de forma automática el sangrado, etc. + Orden de preprocesador de coincidencia de línea:Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Si se especifica una orden de preprocesado (ver a continuación), la salida del preprocesador será la entrada de la coincidencia de líneas del preprocesador. La salida solo se utilizará durante la fase de coincidencia de líneas durante el análisis. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Cada línea de entrada tendrá la correspondiente línea de salida. + + +La idea es permitir al usuario gran flexibilidad durante la configuración del resultado de diff. Pero necesita un programa externo, y muchos usuarios no quieren escribirlo ellos. La buena noticia es que muchas veces sed o perl harán este trabajo. +Ejemplo: Prueba de mayúsculas sencilla: considerar el archivo a.txt (6 líneas): + aa + ba + ca + da + ea + fa + y el archivo b.txt (3 líneas): + cg + dg + eg +Sin un preprocesador las siguientes líneas se situarán unas al lado de otras: + aa - cg + ba - dg + ca - eg + da + ea + fa + Esto no es lo que probablemente lo que se desea, ya que la primera letra contiene realmente información interesante. Para ayudar al algoritmo de coincidencias a ignorar la segunda letra podemos utilizar una orden de preprocesador, que reemplace «g» con «a»: + sed 's/g/a/' + Con esta orden el resultado del a comparación será: + aa + ba + ca - cg + da - dg + ea - eg + fa +Internamente el algoritmo de coincidencia ve los archivos después de la ejecución de la línea del preprocesador de coincidencia, pero en la pantalla el archivo continúa sin cambios (el preprocesador normal cambiará también los datos en la pantalla). + +Lo básico de <command +>sed</command +> +Esta sección solo introduce algunas características muy básicas de sed. Para obtener más información consulte info:/sed o http://www.gnu.org/software/sed/manual/html_mono/sed.html. Una versión precompilada para Windows puede encontrarse en http://unxutils.sourceforge.net. Tenga en cuenta que los siguientes ejemplos asumen que la orden sed se encuentra en algún directorio definido en la variable de entorno PATH. Si este no es el caso, deberá especificar la ruta completa absoluta de lo orden. +En este contexto solo se utiliza la orden de sustitución sed: + sed 's/REGEXP/REEMPLAZO/MODIFICADORES' + Antes de utilizar una orden nueva con &kdiff3;, debería comprobarla en una consola. Aquí será práctica la orden echo. Ejemplo: + echo abrakadabra | sed 's/a/o/' + -> obrakadabra + Este ejemplo muestra una orden sed muy simple que reemplaza la primera aparición de «a» con «o». Si desea reemplazar todas las apariciones necesitará el modificador «g»: + echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + El símbolo «|» es la orden de tubería que transfiere la salida de la orden anterior a la entrada de la siguiente orden. Si desea comprobar el uso con un archivo largo puede usar cat en los sistemas tipo Unix o type en los sistemas tipo Windows. sed hará la sustitución para cada línea. cat nombrearchivo | sed opciones + + + +Ejemplos para <command +>sed</command +> usados en &kdiff3; +Ignorar otros tipos de comentarios +En estos momentos &kdiff3; solo entiende los comentarios de C/C++. Si usa la orden del preprocesador para coincidencia de líneas también podrá ignorar otros tipos de comentarios, convirtiéndolos en comentarios de C/C++. Por ejemplo, para ignorar los comentarios que comiencen por «#», debería convertirlos en comentarios que empiecen por «//». Tenga en cuenta que debe tener activada la opción «Ignorar comentarios de C/C++» para que tenga efecto. Una orden apropiada del preprocesador de coincidencia de líneas podría ser: + sed 's/#/\/\//' +Al igual que para sed el carácter «/» tienen un significado especial, y es necesario poner el carácter «\» antes de cada «/» en la cadena de sustitución. Algunas veces, «\» es necesario para añadir o eliminar un significado especial de ciertos caracteres. Las comillas simples (') son importantes solo cuando se hagan pruebas en el intérprete de órdenes, ya que en caso contrario tratará de procesar algunos caracteres. KDiff3 no hará esto, excepto con las secuencias de escape «\"» y «\\». + +Sensibilidad de diff a mayúsculas y minúsculas +Utilice la siguiente orden de preprocesado de coincidencia de línea para convertir todas las entradas a mayúsculas: + sed 's/\(.*\)/\U\1/' +Aquí el «.*» es una expresión regular que incluye a todos los caracteres en la línea. El «\1» en la cadena de reemplazo hace referencia al texto que coincide con el primer par de «\(» y «\)». La «\U» convierte el texto insertado a mayúsculas. + + +Ignorar las claves de control de versión +CVS y otros sistemas de control de versión utilizan algunas claves para insertar cadenas automáticamente generadas (info:/cvs/Keyword sustitución). Todos ellos siguen el modelo «$CLAVE generada texto$». Ahora necesitaremos una orden de preprocesado que elimine solo el texto generado: + sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + Las «\|» separan las posibles claves. Podría querer modificar esta lista para acomodarla a sus necesidades. La «\» before the «$» es necesaria porque de otra forma «$» coincidirá con el final de la línea. +Mientras experimenta con sed puede llegar a entender y a gustarle las expresiones regulares. Son prácticas porque hay muchos programas que permiten cosas similares. + + +Ignorar números +Ignorar los números en realidad es una opción de construcción. Pero como en otros ejemplos, indica el aspecto que podría tener la orden de preprocesado. + sed 's/[0123456789.-]//g' + Cualquier carácter entre «[» y «]» será una coincidencia y no se reemplazará con nada. + + +Ignorar ciertas columnas +Algunas veces una texto tiene un formato muy estricto y contiene columnas que desearía ignorar, mientras que otras columnas deseará conservarlas para el análisis. En el siguiente ejemplo las primeras cinco columnas (caracteres) se ignorarán, las siguientes diez se conservarán, otras cinco se ignorarán y el resto de la línea se conservará. + sed 's/.....\(..........\).....\(.*\)/\1\2/' + Cada punto «.» coincidirá con cualquier carácter simple. El «\1» y el «\2» en la cadena de reemplazo hacen referencia al texto coincidente dentro del primer y segundo par de «\(» y «\)» indicando el texto que se conservará. + + +Combinar varias sustituciones +Algunas veces deseará aplicar varias sustituciones a la vez. Puede utilizar el punto y coma «;» para separarlas unas de otras. Ejemplo: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + + +Utilizar <command +>perl</command +> en lugar de <command +>sed</command +> +En lugar de sed podría utilizar algo como perl. + perl -p -e 's/EXPREG/REEMPLAZO/MODIFICADORES' + Pero algunos detalles son diferentes en perl. Tenga en cuenta que sed necesita «\(» y «\)» perl necesita solo «(» y «)» sin estar precedido de «\». Ejemplo: sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + + +Orden de la ejecución de preprocesado +Los datos van pasando por todos los preprocesadores internos y externos en el siguiente orden: + +Preprocesador normal. +Preprocesador de coincidencia de líneas. +Ignorar mayúsculas (conversión a mayúsculas). +Detección de comentarios C/C++. +Ignorar números. +Ignorar espacios en blanco. + +Los datos después del preprocesador normal se conservarán para mostrarse y fusionarse. El resto de operaciones solo modificarán los datos para que los vea el algoritmo de coincidencia de líneas de diff. En alguna ocasión cuando use el preprocesador normal se dará cuenta de que el preprocesador de coincidencia de líneas verá la salida del preprocesador normal como entrada. + + +Aviso +La orden de preprocesado suele ser muy práctica, pero como con cualquier opción que modifique su texto u oculte ciertas diferencias automáticamente, puede saltarse accidentalmente ciertas diferencias y en el peor de los casos destruir datos importantes. Por esta razón, durante una fusión, si &kdiff3; utiliza una orden de preprocesado normal le preguntará si desea desactivarla o no. Pero no se producirá ningún aviso si está activada la orden de preprocesado de líneas coincidentes. La fusión no se completará hasta que se resuelvan los conflictos. Si desactiva «Mostrar espacios en blanco» las diferencias eliminadas con la orden de preprocesado de líneas coincidentes también estarán visibles. Si el botón guardar continúa desactivado durante una fusión (porque aún existen conflictos), asegúrese de activar «Mostrar espacios en blanco». Si no desea fusionar estas diferencias sin importancia de forma manual puede elegir «Seleccionar [A|B|C] para todos los conflictos de espacios en blanco sin resolver» en el menú Fusionar. + + + + + +Comparación y fusión de directorios con &kdiff3; +Iniciar la comparación y fusión del directorio +Frecuentemente los programadores modifican varios archivos en un directorio para conseguir su propósito. Para esto &kdiff3; también le permite comparar y fusionar directorios completos recursivamente. Aunque la comparación y fusión de directorios parezca bastante obvia, existen varios detalles que debería conocer. Lo más importante es el hecho de que la operación podría afectar a muchos archivos. Si no tiene copias de seguridad de los datos originales, podría ser complicado e incluso imposible devolverlos a su estado original. Por lo tanto, antes de realizar una fusión, asegúrese de guardar sus datos en un lugar seguro, de forma que sea posible volver atrás. Si crea un archivo o utiliza algún sistema de control de versiones es cosa suya, pero los programadores experimentados y los integradores pueden necesitan las antiguas fuentes. Y tenga en cuenta que a pesar de que yo (el autor de &kdiff3;) intento hacerlo lo mejor posible, no garantizo que no existan fallos. De acuerdo con la licencia GNU GPL NO EXISTE NINGUNA GARANTÍA para este programa. Por lo tanto, sea humilde y tenga siempre lo siguiente en mente: +
+ Errar es humano, pero para echar las cosas a perder necesita un ordenador. +
+Esto es lo que este programa puede hacer por usted: &kdiff3; ... + + ... lee y compara dos o tres directorios recursivamente. + ... tiene un especial cuidado con los enlaces simbólicos. + ... le permitirá navegar por los directorios con una doble pulsación del ratón. + ... para cada elemento propone una operación de fusión, que puede cambiar antes de iniciar la fusión del directorio. + ... le permite simular la fusión y lista las acciones que se realizarían si se llegasen a llevar a cabo. + ... le permite realizar la fusión, y le permite interactuar cuando sea necesaria la interacción manual. + ... le permite ejecutar las operaciones seleccionadas para todos los elementos (tecla F7) o para el elemento seleccionado (tecla F6). + ... le permite continuar la fusión después de la interacción manual con la tecla F7. + ... crea copias de seguridad opcionales, con la extensión «.orig». + ... + +
+ +Iniciar la comparación o fusión del directorio +Es similar a la fusión y comparación de archivos. Solo debe especificar los directorios en la línea de órdenes o en el diálogo abrir archivo. +Comparar/fusionar dos directorios: +kdiff3 directorio1 directorio2 + kdiff3 directorio1 directorio2 -o directorio-destino + +Si no se especifica directorio de destino, &kdiff3; usará directorio2. + + +Comparar/fusionar tres directorios: +kdiff3 directorio1 directorio2 directorio3 + kdiff3 directorio1 directorio2 directorio3 -o directorio-destino + +Cuando se fusionen tres directorios directorio1 se utiliza como base para la fusión. Si no se especifica directorio destino, &kdiff3; usará directorio3 como directorio de destino para la fusión. + +Tenga en cuenta que solo la comparación se inicia automáticamente, no la fusión. Para esto debería seleccionar la entrada de menú o la tecla F7 (más detalles a continuación). + + + +Información visible del directorio de fusión +Mientras lee estos directorios se mostrará un cuadro de diálogo en el que se informará del progreso. Si cancela la exploración del directorio, solo se compararán los archivos listados. Cuando se termine la exploración del directorio &kdiff3; mostrará una lista con el resultado... + + + +... y detalles sobre el elemento seleccionado actualmente a la derecha: + + + + + +La columna nombre +Cada archivo y directorio que se encuentre durante la exploración se mostrará aquí en un árbol. Puede seleccionar un elemento pulsando una vez con el ratón. De forma predeterminada los directorios están contraídos. Puede expandirlos y contraerlos pulsando en «+»/«-», con una doble pulsación, o utilizando las teclas Flecha izquierda o Flecha derecha. El menú «Directorio» también contiene dos acciones «Plegar todos los subdirectorios» y «Desplegar todos los subdirectorios» con los que podrá contraer y expandir todos los directorios de una vez. Si hace una doble pulsación sobre un elemento de archivo comenzará la comparación y aparecerá la ventana de diferencias de archivos. +La imagen de la columna nombre reflejará el tipo de archivo en el primer directorio («A»). Puede ser uno de estos: + + Archivo normal. + Directorio normal (imagen de directorio). + Enlace a un archivo (imagen de archivo con una flecha de enlace). + Enlace a un directorio (imagen de directorio con una flecha de enlace). + +Si el tipo de archivo es diferente en el resto de directorios, esto podrá verse en las columnas A/B/C y en la ventana que muestra los detalles sobre el elemento seleccionado. Tenga en cuenta que en este caso la fusión no podrá seleccionarse automáticamente. Cuando inicie la fusión, el usuario será informado de problemas de este tipo. + + +Las columnas A/B/C y el esquema de coloreado +Como puede verse en la imagen superior los colores rojo, verde, amarillo y negro son los que se utilizan en las columnas A/B/C. + + Negro: Este elemento no existe en este directorio. + Verde: El elemento más nuevo. + Amarillo: Más antiguo que verde, más nuevo que rojo. + Rojo: El elemento más antiguo. + +Pero para los elementos que son idénticos en la comparación sus colores son idénticos aunque no coincida la antigüedad. Los directorios se consideran iguales si todos los elementos que contienen son idénticos. Entonces tendrán el mismo color. Pero la antigüedad de un directorio no se considerará para su color. La idea de este esquema de color se basa en dirdiff.Los colores son semejantes a las hojas, que son verdes cuando nacen, se vuelven amarillas más tarde y cuando envejecen se vuelven rojos. + +La columna Operación +Después de comparar los directorios &kdiff3; también evalúa una propuesta para una operación de fusión. Esto se muestra en la columna «Operación». Puede modificar la operación pulsando en la operación que desee cambiar. Aparecerá un pequeño menú y le permitirá seleccionar una operación para este elemento (también puede seleccionar las operaciones a través del teclado. Ctrl+1/2/3/4/Supr seleccionarán A/B/C/Fusionar/Borrar respectivamente si están disponibles). Esta operación se ejecutará durante la fusión. La disponibilidad de estas operaciones dependerá del elemento y del modo de fusión. El modo de fusión será uno de los siguientes: + + Fusión del árbol de directorios («A» será tratada como la base más antigua de ambas). + Fusionar dos directorios. + Sincronizar dos directorios (activado a través de la opción «Sincronizar directorios»). + +En la fusión de tres directorios la operación propuesta será: Si para un elemento... + + ... todos los árboles de directorios son iguales: Copiar desde C. + ... A y C son iguales pero B no: Copiar desde B (o si B no existe, borra el destino, si existe). + ... A y B son iguales pero C no: Copiar desde C (o si C no existe, borra el destino, si existe). + ... B y C son iguales pero A no: Copiar desde C (o si C no existe, borra el destino, si existe). + ... solo existe A: Borrar el destino (si existe). + ... solo existe B: Copiar desde B. + ... solo existe C: Copiar desde C. + ... A, B y C no son iguales: Fusionar. + ... A, B y C no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan elementos como estos la fusión de directorio no comenzará. + +En la fusión de dos directorios la operación propuesta será: Si para un elemento... + + ... ambos directorios son iguales: Copiar desde B. + ... A existe, pero B no: Copiar desde A. + ... B existe, pero no A: Copiar desde B. + ... A y B existe pero no son iguales: Fusionar. + ... A y B no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan de elementos como estos la fusión de directorio no comenzará. + +El modo de sincronización estará activo si solo existen dos directorios, no se ha especificado destino y está activa la opción «Sincronizar directorios». &kdiff3; seleccionará una operación predeterminada de forma que ambos directorios sean idénticos después. Si para un elemento ... + + ... ambos directorios son iguales: No se hará nada. + ... A existe, pero B no: copiar A a B. + ... B existe, pero A no: Copiar B a A. + ... A y B existen, pero no son iguales: Fusionar y guardar el resultado en ambos directorios (para los usuarios el nombre de archivo guardado es B, pero entonces &kdiff3; copiará B a A). + ... A y B no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan de elementos como estos la fusión de directorio no comenzará. + +Cuando se fusionen dos directorios y esté seleccionada la opción «Copiar nuevo en lugar de fusionar», &kdiff3; buscará en las fechas y propondrá como elección el nuevo archivo. Si los archivos no son iguales pero tienen las mismas fechas, la operación contendrá «Error: Las fechas son iguales pero los archivos no». Mientras estos elementos existan no se iniciará la fusión de directorios. + + +La columna estado +Durante la fusión se procesará un archivo tras otro. La columna estado mostrará «Hecho» para los elementos donde se haya producido la operación de fusión, y otro texto si sucede algo inesperado. Cuando se completa una fusión, debería hacer una última comprobación para ver si el estado de todos los elementos es el adecuado. + + +Columnas estadísticas +Cuando está activado en las opciones el modo de comparación de archivos «Análisis completo», &kdiff3; mostrará columnas que contienen el número de conflictos sin resolver, resueltos, no en blanco o de espacios en blanco (la columna resueltos solo se mostrará cuando se comparen o fusionen directorios). + + +Seleccionar archivos listados +Varias opciones influyen en los archivos que se listarán aquí. Algunas son accesibles a través del diálogo preferencias. El menú Directorio contiene las entradas: + «Mostrar archivos idénticos». Archivos que se han detectado como iguales en todos los directorios. + «Mostrar archivos diferentes». Archivos que existen en dos o más directorios pero que no son iguales. + «Mostrar archivos solo en A». Archivos que existen solo en A, pero no en B o C. + «Mostrar archivos solo en B». Archivos que existen solo en B, pero no en A o C. + «Mostrar archivos solo en C». Archivos que existen solo en C, pero no en A o B. + +Active las opciones «Mostrar» para los elementos que desee listar. Si por ejemplo solo desea listar todos los elementos que existan en A o en B pero no en ambos, deberá activar «Mostrar archivos solo en A» y «Mostrar archivos solo en B» y desactivar todas las demás («Mostrar archivos idénticos», «Mostrar archivos diferentes», «Mostrar archivos solo en C»). La lista se actualizará inmediatamente para reflejar los cambios. Estas opciones también se aplican para los directorio con una excepción: Desactivar «Mostrar archivos diferentes» no ocultará ningún directorio. Solo funcionará para los archivos que contenga. Tenga en cuenta que de estas opciones solo es persistente la opción «Mostrar archivos idénticos». Los otros se activarán cuando se inicie &kdiff3;. + + + + + +Hacer una fusión de directorios +Puede fusionar el elemento seleccionado (archivo o directorio) o todos los elementos. Cuando haya hecho todas sus operaciones de elección (en todos los subdirectorios también) podrá iniciar la fusión. Sea consciente de que si no especifica un directorio de destino explícitamente, el destino será «C» en el modo de tres directorios, «B» en el modo de fusión de dos directorios, y en el modo de sincronización será «A» y/o «B». Si ha especificado un directorio de destino marque todos los elementos del árbol que debieran estar en la salida. Existen algunas opciones que hará que se omitan ciertos elementos del directorio de comparación y del de fusión. Marque estas opciones para evitar sorpresas desagradables: + + «Directorios recursivos»: Si está desactivado, no se buscarán los elementos de los directorios. + «Patrón»/«Anti-patrón»: Incluir/excluir elementos que coincidan. + «Excluir archivos ocultos» + «Mostrar» opciones (Mostrar archivos idénticos/diferentes, archivos solo en A/B/C) + +Si cambia las preferencias para listar más archivos, debería volver a buscar a través del menú «Directorio»->«Volver a buscar» (el motivo es que para realizar una comparación rápida &kdiff3; omite la comparación para los archivos suprimidos por este criterio). Si cambia sus patrones de archivo y directorio de exclusión de archivos, la lista de archivos se actualizará inmediatamente al cerrar el diálogo de las opciones. Tenga en cuenta que cuando escribe un nuevo directorio completo también deseará copiar los archivos idénticos. En este caso active la opción «Mostrar archivos idénticos». Si su directorio de destino es una de las entradas, esto no será necesario ya que el archivo ya estará aquí. Si está satisfecho con esto, el resto es sencillo. Para fusionar todos los elementos: Seleccione «Comenzar/continuar fusión de directorio» en el menú «Directorio» o pulse F7 (que es el acceso rápido). Para fusionar solo el elemento actual: Seleccione «Realizar operación para el elemento actual» o pulse F6. Si debido a tipos de archivos conflictivos todavía continúan existiendo operaciones no válidas, aparecerá un mensaje señalándolo, de forma que pueda seleccionar una operación válida para este elemento. Si fusiona todos los elementos aparecerá un diálogo proporcionándole las opciones «Hacer», «Simular» y «Cancelar». + + Seleccione «Simular» si desea ver el resultado sin hacer la fusión. Se mostrará un lista de todas las operaciones. + En caso contrario, seleccione «Hacer» para iniciar la fusión. + +Entonces &kdiff3; realizará las operaciones especificadas para todos los elementos. Si se precisa interacción manual (fusión de un solo archivo), aparecerá una ventana de fusión (vea la gran captura de pantalla). Cuando haya terminado con un archivo, seleccione de nuevo «Comenzar/continuar fusión de directorio» o la tecla F7. Si todavía no la había guardado, un diálogo le preguntará para hacerlo. Entonces &kdiff3; continuará con el siguiente elemento. Cuando &kdiff3; encuentre un error, este se lo indicará con información literal del estado. En la parte inferior de la lista, aparecerán algunos mensajes de error que deberían ayudarle a entender la causa del problema. Cuando continúe con la fusión (tecla F7) &kdiff3; le permitirá reintentar o saltarse el elemento que provocó el problema. Esto significa que antes de continuar puede seleccionar otra operación o resolver el problema por otros medios. Cuando la fusión se haya completado, &kdiff3; le informará a través de un cuadro de diálogo. Si algunos elementos se fusionaron de forma individual &kdiff3; lo recordará (mientras esté en esta sesión de fusión), y no les fusionará nuevamente cuando haga la fusión para todos los elementos. Incluso cuando se salte la fusión o no se guarde nada estos elementos se contarán como completos. Solo cuando cambie la operación de fusión se eliminará el estado «hecho» del elemento y se podrá fusionar de nuevo. + + +Opciones para comparación y fusión de directorios +Las preferencias de &kdiff3; (menú «Preferencias»->«Configurar &kdiff3;») ahora tienen una sección llamada «Fusión de directorio» con estas opciones: + + + Directorios recursivos:Indica si se realizará la búsqueda en los directorios de forma recursiva. + Patrón(es) de archivo(s):Solo los archivos que coincidan con el patrón se colocarán en el árbol. Puede especificarse más de un patrón utilizando el punto y coma «;» como separador. Comodines válidos: «*» y «?» (p. ej. «*.cpp;*.h»). El valor predeterminado es «*». Este patrón no se utiliza en directorios. + Anti-patrón(es) de archivo:Los archivos y directorios que coincidan con este patrón se excluirán del árbol. Se puede especificar más de un patrón utilizando el «;» como separador. Comodines válidos: «*» y «?». El valor predeterminado es «*.orig;*.o;*.obj». + Anti-patrón(es) de directorio:Los archivos y directorios que coincidan con este patrón se excluirán del árbol. Se puede especificar más de un patrón utilizando el «;» como separador. Comodines válidos: «*» y «?». El valor predeterminado es «CVS;deps;.svn». + Uso de CVS-Ignore:Ignora los archivos y directorios que también se vayan a ignorar por el CVS. Muchos archivos generados automáticamente se ignorarán por el CVS. La gran ventaja es que puede ser un directorio especificado a través del archivo local «.cvsignore» (consulte info:/cvs/cvsignore). + Buscar archivos y directorios ocultos:En algunos sistemas de archivos tienen un atributo «Oculto». En otros sistemas el nombre de archivo comienza con un punto («.»), lo que hace que esté oculto. Esta opción le permite decidir si incluir o no estos archivos en el árbol. De forma predeterminada está activado. + Seguir enlaces de archivos:Para los enlaces de los archivos: Cuando esté desactivado, se compararán los enlaces simbólicos. Cuando esté activado, se compararán los archivos que estén detrás de los enlaces. De forma predeterminada está desactivada. + Seguir enlaces de directorios:Para los enlaces de los directorios: Cuando esté desactivado se compararán los enlaces simbólicos. Cuando esté activado, el enlace será tratado como un directorio y se explorará recursivamente (tenga en cuenta que el programa no comprueba si el enlace es «recursivo»). Así por ejemplo, un directorio que contenga un enlace al directorio puede provocar un bucle infinito, y después de cierto tiempo podrá sobrecargar la pila o utilizar toda la memoria, colgando el programa). De forma predeterminada está desactivada. + Comparación de nombres de archivo sensible a mayúsculas y minúsculas:El valor predeterminado es false (falso) para Windows, true (verdadero) para otros sistemas operativos. + Modo de comparación de archivos: + + Comparación binaria:Este es el modo de comparación de archivos predeterminado. + Análisis completo:Hace un análisis completo de cada archivo y muestra las columnas de información estadística (número de conflictos resueltos, sin resolver, no blancos y blancos). El análisis completo es más lento que un simple análisis binario, y mucho más lento cuando se utiliza con archivos que no contienen texto (especifique el anti-patrón archivo). + Validar la fecha de modificación:Si compara directorios grandes sobre una red lenta, es más rápido comparar solo las fechas de modificación y el tamaño del archivo. Pero esta mejora del rendimiento paga el precio de una pequeña inseguridad. Utilice esta opción con cuidado. De forma predeterminada estará desactivada. + Validar el tamaño:Similar a la validación de la fecha. No hace comparaciones reales. Dos archivos se consideran iguales si sus tamaños son iguales. Esto es práctico cuando la operación de copiado no conserva la fecha de modificación. Utilice esta opción con cuidado. De forma predeterminada estará desactivada. + + + Sincronizar directorios:Activa el «Modo sincronizado» cuando se comparan dos directorios y no se especificó el directorio de destino. En este modo las operaciones propuestas se seleccionarán de forma que tras realizar la operación ambos directorios queden iguales. Por ello el resultado de la fusión se escribirá en ambos directorios. De forma predeterminada estará desactivada. + Copiar el más nuevo en vez de fusionar:En lugar de fusionar la operación propuesta será copiar la fuente nueva si hubo algún cambio (considerado inseguro, ya que implica que el otro directorio no ha sido editado. Deberá hacer una comprobación para cada caso). De forma predeterminada estará desactivada. + Archivos de copia de seguridad:Si se reemplaza un archivo o directorio por otro o se borra, se cambiará el nombre de la versión original con la extensión «.orig». Si ya existía un archivo con la extensión «.orig», se borrará sin hacer copia de seguridad. También afecta a la fusión normal de archivos simples, no solo al modo de fusión de directorios. Estará activada por omisión. + + + +Otras funciones en la ventana del directorio de fusión +Modo de pantalla dividida/completa +Normalmente la vista de la lista de fusión de directorios permanece visible cuando se compara o fusiona un solo archivo. Con el ratón puede mover la barra divisoria que separa la lista de archivos de las ventanas de texto diff. Si no desea esto, puede desactivar la «Vista de pantalla dividida» en el menú «Directorio». A continuación utilice «Cambiar vista» en el menú «Directorio» para conmutar entre la lista de archivos y la ventana de texto diff que ocupará la pantalla completa. + +Comparar o fusionar un solo archivo +Probablemente preferirá una doble pulsación del ratón sobre un archivo para compararlos. Sin embargo existe una entrada en el menú «Directorio». También puede fusionar directamente un solo archivo, sin iniciar la fusión del directorio a través de la opción «Fusionar un solo archivo» en el menú «Directorio». Al guardar el resultado, el estado cambiará a «hecho», y el archivo no se fusionará si se inicia una fusión de directorio. Pero tenga en cuenta que la información del estado se perderá cuando vuelva a explorar un directorio: Menú «Directorio»->«Volver a buscar». + +Comparar o fusionar archivos con nombres diferentes +Algunas veces necesitará comparar o fusionar archivos con nombres diferentes (p. ej. el archivo actual y la copia de seguridad en la misma carpeta). Seleccione el archivo exacto pulsando en el icono en la columna A, B o C. El primer archivo seleccionado se marcará con una «A», el segundo y tercero con «B» y «C» con independencia de la columna en la que esté. Solo se podrá seleccionar en la parte superior de los árboles de archivos. Seleccione «Comparar explícitamente archivos seleccionados» o «Fusionar explícitamente archivos seleccionados» desde el menú «Directorio». Estas entradas también aparecerán como menú contextual cuando pulse el botón derecho cuando pulse el último archivo seleccionado. La comparación o fusión de un archivo se realizará en la misma ventana. Si este método se utiliza para directorios se abrirá una ventana nueva. + +
+ + +Temas variados + +Transferencia de red a través de KIO +KIO-Slaves +La biblioteca KIO de Frameworks implementa transparencia de red a través de los KIO-slaves. &kdiff3; la usa para leer los archivos de entrada y para explorar directorios. Esto significa que puede indicar archivos y directorios locales y en recursos remotos a través de sus URL. Ejemplo: +kdiff3 prueba.cpp ftp://ftp.muylejos.org/prueba.cpp +kdiff3 tar:/home/hacker/archivo.tar.gz/dir ./dir + + +La primera línea compara un archivo local con un archivo en un servidor FTP. La segunda línea compara un directorio con un archivo comprimido con un directorio local. Otros KIO-slaves interesantes son: + +Archivos de la web (http:). +Archivos desde el FTP (ftp:). +Transferencia de archivos cifrados (fish:, sftp:). +Recursos de Windows (smb:). +Archivos locales (file:). + +Otras cosas posibles, aunque probablemente menos útiles, son: + +Páginas de manual (man:). +Páginas de información (info:). + + + +Cómo escribir URL +Un URL tiene una sintaxis diferente comparada con las rutas de los archivos y directorios locales. Algunas cosas a considerar son: + +Una ruta puede ser relativa y puede contener «.» o «..» Esto no es posible para URL, que son siempre absolutos. Los caracteres especiales deben escribirse «escapados» («#» se convertirá en «%23», los espacios se convertirán en «%20» y así sucesivamente). Por ejemplo, un archivo con el nombre «/#foo#», tendrá el URL «file:///%23foo%23». Cuando un URL no funcione tal y como esperaba, intente abrirla primero en Konqueror. + + + + +Capacidades de los KIO-Slaves. +La transparencia de red tiene un inconveniente: No todos los recursos tienen las mismas capacidades. Algunas veces esto es debido al sistema de archivos del servidor, otras al protocolo. Aquí tenemos una pequeña lista de restricciones: + +Algunas veces no permite el uso de enlaces. O no hay forma de distinguir si un enlace apunta a un archivo o a un directorio. Siempre se asume un archivo (ftp:, sftp:). No siempre se puede determinar el tamaño del archivo. Implementación limitada de permisos. No hay posibilidad de modificar los permisos o la hora, por ello los permisos o la hora de la copia puede diferir del original (vea la opción «Verificar tamaño»). La modificación de permisos o de la hora solo es posible en los archivos locales. + + + + + +Utilizar &kdiff3; como un KPart +KDiff3 es un KPart. Actualmente implementa la interfaz KParts::ReadOnlyPart-interface. Su principal utilización es la de visor de diferencias en KDevelop. KDevelop siempre inicia primero el visor interno de diferencias. Para llamar a &kdiff3; pulse el botón derecho del ratón en la ventana de diferencias y seleccione «Mostrar en KDiff3Part» en el menú contextual. &kdiff3; normalmente requiere dos archivos completos como entrada. Cuando se utiliza como una parte &kdiff3; asume que el archivo de entrada es un archivo de parches en formato unificado. &kdiff3; recupera el nombre del archivo original del archivo del parche. Al menos uno de los dos archivos debe estar disponible. &kdiff3; llamará a patch para volver a crear el segundo archivo. En &dolphin; puede seleccionar un archivo de parche y seleccionar «Previsualizar en» - «KDiff3Part» desde el menú contextual. Sea consciente de que esto no funcionará si no está disponible ninguno de los archivos originales, y no será fiable si hubo modificaciones en el(los) archivo(s) original(es) desde que se generó el parche. Cuando se ejecute como una parte, &kdiff3; solo proporcionará la diferencia de dos archivos, una pequeñísima barra de herramientas y un menú. La fusión y comparación de directorios no está permitida. + + + +Uso de &kdiff3; para diferencias de Git y como herramienta de fusión +&kdiff3; se puede usar para las diferencias de Git y como herramienta de fusión. +Solo tiene que añadir las siguientes líneas en su archivo gitconfig. +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <ruta al binario de kdiff3 en su sistema> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <ruta al binario de kdiff3 en su sistema +> + +A continuación, para ver las diferencias entre dos «commits», use git difftool primer_hash segundo_hash --tool=kdiff3 --cc archivo_en_el_árbol_de_git +Para fusionar una rama con &kdiff3;, use git merge nombre_de_la_rama && git mergetool --tool=kdiff3 +Después de resolver los conflictos de fusión del modo habitual, basta con enviar los cambios para terminar la tarea. + + + + +Preguntas y respuestas&reporting.bugs; &updating.documentation; + +¿Por qué se llama «&kdiff3;»? Las herramientas llamadas «KDiff» y «KDiff2» (ahora llamada «Kompare») ya existen. Por tanto «KDiff3» debería sugerir que incluye la fusión de forma similar a la herramienta «diff3» de la colección de herramientas Diff. + +¿Por qué la he liberado bajo la GPL? He utilizado programas GPL durante mucho tiempo y aprendí mucho echando un vistazo a muchas fuentes. Esta es mi forma de dar las «gracias» a todos programadores que han hecho lo mismo. + +Faltan algunos botones y funciones. ¿Que está pasando? Seguramente compiló el código fuente, aunque es probable que no indicara de forma correcta el prefijo para la instalación. Por omisión, cmake intentará instalar en /usr/local, pero luego no se puede encontrar el archivo de recursos de la interfaz de usuario (es decir, kdiff3ui.rc). El archivo README contiene más información sobre el prefijo correcto. + +Algunas líneas que son similares, pero no idénticas aparecen unas al lado de las otras, pero no siempre. ¿Por qué? Las líneas que solo contienen una cantidad diferente de espacios se tratan «igual» al principio, de forma que solo una diferencia en un carácter que no sea un espacio en blanco hará que las líneas sean «diferentes». Si aparecen líneas similares unas al lado de las otras, en realidad es una coincidencia, y sucede algunas veces. Consulte el manual de ayuda de Diff. + +¿Por qué se deben resolver todos los conflictos de fusión antes de guardarlos? Para cada sección ya sea igual o diferente el editor en la ventana de resultado de la fusión recordará su comienzo y su final. Esto es necesario para que los conflictos puedan resolverse manualmente pulsando el botón de la fuente (A, B o C). Esta información se perderá cuando se guarde el texto y es demasiado complicado crear un formato de archivo especial que permita guardar y restaurar toda la información. + +Cómo puedo sincronizar las vista de diferencia y de fusión, de forma que todas muestren la misma posición de texto? Pulse en la columna de resumen situada a la izquierda del texto (Consulte también esto.) + +¿Por qué el editor en la ventana de resultado no tiene una función «deshacer»? Es demasiado esfuerzo por el momento. Siempre puede restaurar una versión a partir de una fuente (A, B o C) pulsando el botón respectivo. Para editar archivos grandes se recomienda utilizar otro editor. + +Cuando eliminó texto, de repente aparece «<Sin línea fuente>» y no se puede borrar. ¿Qué significa y cómo puedo eliminarlo? Para cada sección igual o diferente el editor de la ventana de resultado de la fusión recuerda dónde comienza y dónde termina. «<Sin línea fuente>» significa que no falta nada en una sección, ni siquiera un carácter de línea nueva. Esto puede suceder mientras realiza la fusión automática o mientras está editando. Esto no es un problema, ya que no aparecerá en el archivo guardado. Si desea volver al archivo original seleccione la sección (pulse en la columna de resumen a la izquierda) y después pulse el botón de la fuente con los contenidos necesarios (A/B o C). + +¿Por qué &kdiff3; no permite usar resaltado de sintaxis? &kdiff3; ya utiliza muchos colores para resaltar las diferencias. Más resaltado resultaría confuso. Utilice otro editor para esto. + +Puedo utilizar &kdiff3; para comparar archivos OpenOffice.Org, Word, Excel, PDF, &etc;? A pesar de que &kdiff3; analizará cualquier tipo de archivo, el resultado no será satisfactorio. &kdiff3; se creó para comparar archivos de texto puro. OpenOffice, Word, Excel, etc. guardan mucha más información en los archivos (relativa a tipos de letra, imágenes, páginas, colores, etc.) con la que &kdiff3; no sabe qué hacer. Por tanto &kdiff3; le mostrará el contenido del archivo interpretado como si fuera texto puro, pero esto no es para lo que se utiliza. Desde que muchos programa guardan su contenido en formato XML, puede ser capaz de leer este como texto puro. Por tanto si el cambio es pequeño, &kdiff3; todavía puede ayudarle. La mejor solución si solo desea comparar texto (sin objetos empotrados como imágenes) es utilizar «Seleccionar todo» y «Copiar» en su programa para copiar el texto interesante al portapapeles y a continuación pegar en &kdiff3; el texto en cualquiera de las ventanas de diferencias (Consulte también Seleccionar, copiar y pegar). + +¿Donde está la opción de directorio «Listar solo deltas»? Ahora existen varias opciones «Mostrar» en el menú directorio. Desactivar «Mostrar archivos idénticos» activará «Listar solo deltas» + +¿Cómo puedo realizar una selección grande en la ventana de entrada de diferencias sin tardar demasiado tiempo? Inicie la selección de la forma habitual (pulse y mantenga pulsado el botón izquierdo del ratón). A continuación utilice las teclas de navegación (p.ej. RePag, AvPág) manteniendo pulsado el botón izquierdo del ratón (consulte también Seleccionar, copiar y pegar). + +Aquí hay mucha información, pero ¿su pregunta sigue sin respuesta? Por favor, envíeme su pregunta. Aprecio todos los comentarios. + + + + + + +Créditos y licencia + +&kdiff3; - Herramienta de comparación y fusión de archivos y directorios. +Derechos de autor del programa. 2002-2007. Joachim Eibl joachim.eibl en gmx.de. +Algunas buenas ideas e informes de fallos me llegaron de colegas y de mucha gente a lo largo de la red ¡Gracias! + +Derechos de autor de la documentación. © 2002-2007. Joachim Eibl joachim.eibl en gmx.de. + +Traducido por Santiago Fernández Sancho santi@kde-es.org. &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/es/docs/kdiff3/man-kdiff3.1.docbook b/po/es/docs/kdiff3/man-kdiff3.1.docbook new file mode 100644 index 0000000..60a6ed8 --- /dev/null +++ b/po/es/docs/kdiff3/man-kdiff3.1.docbook @@ -0,0 +1,452 @@ + + +]> + + + +Manual del usuario de KDiff3 +BurkhardLueck Página man de KDiff3. &Burkhard.Lueck.mail; +2019-02-22 +kdiff3 1.8 + + + +kdiff3 +1 + + + +kdiff3 +Tool for Comparison and Merge of Files and Directories + + + +kdiff3 file file file alias1 alias2 alias3 alias string file + + + +Descripción +Compares two or three input files or directories. + + + + +Opciones + + + +Ignorado (definido por el usuario). + + + + +Ignorado (definido por el usuario). + + + + +Ignorado (definido por el usuario). + + + + +Ignorado (definido por el usuario). + + + + +Fusionar la entrada. + + + + archivo +Archivo base explícito (para compatibilidad con otras herramientas). + + + + archivo +Archivo de salida. Implica -m. Por ejemplo: -o archivonuevo.txt + + + + archivo +Archivo de salida, también (para compatibilidad con otras herramientas). + + + + +No mostrar la interfaz gráfica si todos los conflictos se pueden resolver automáticamente (necesita archivo). + + + + +Don't solve conflicts automatically. + + + + alias1 +Sustituto de nombre visible para el archivo de entrada 1 (base). + + + + alias2 +Sustituto de nombre visible para el archivo de entrada 2. + + + + alias3 +Sustituto de nombre visible para el archivo de entrada 3. + + + + alias +Sustituto alternativo de nombre visible. Debe introducirse una vez para cada entrada. + + + + texto +Usar este valor en lugar de una preferencia de configuración. Debe usarlo una vez para cada preferencia. Por ejemplo: AutoAdvance=1. + + + + +Mostrar una lista de las preferencias de configuración y sus valores actuales. + + + + archivo +Usar un archivo de configuración diferente. + + + + +archivo1 a abrir (base, si no se indica usando --). + + + + +archivo2 a abrir. + + + + +archivo3 a abrir. + + + + + + + +Consulte también + +Dispone de documentación de usuario más detallada usando help:/kdiff3 (introduzca esta &URL; en &konqueror; o ejecute khelpcenter help:/kdiff3). +kf5options(7) +qt5options(7) + + + + +Autores +Esta página de manual fue escrita por &Burkhard.Lueck; &Burkhard.Lueck.mail;. + + + diff --git a/po/es/kdiff3.po b/po/es/kdiff3.po new file mode 100644 index 0000000..2917f2a --- /dev/null +++ b/po/es/kdiff3.po @@ -0,0 +1,3639 @@ +# translation of kdiff3.po to Español +# traducción de kdiff3.po a Español +# Copyright (C) 2003,2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# Sofia Priego , %Y. +# Miguel Revilla Rodríguez , 2003. +# Carlos Mayo Hernández , 2003,2004, 2005. +# santi , 2005, 2006, 2007. +# Santiago Fernandez Sancho , 2006, 2008. +# Israel Garcia Garcia , 2010, 2011. +# Eloy Cuadra , 2011, 2014, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-16 00:29+0100\n" +"Last-Translator: Sofia Priego \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" +"Sofía Priego,Eloy Cuadra,Israel García García,Santiago Fernández Sancho" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"spriego@darksylvania.net,ecuadra@eloihr.net,israelgarcia86@gmail.com," +"santi@kde-es.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Obteniendo estado de archivo: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Leyendo archivo: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Escribiendo archivo: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Fuera de memoria" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Creando carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Eliminando carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Eliminando archivo: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Creando enlace simbólico: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Renombrando archivo: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Copiando archivo: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Leyendo carpeta: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listando directorio: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Error de pérdida de datos:\n" +"Si puede volver a producirlo, contacte con el autor.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Error interno grave" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Error interno grave." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Error interno grave: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Archivo %1: Línea %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Archivo %1: Línea no disponible" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codificación:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Estilo de fin de línea:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codificando: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Estilo de fin de línea: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Línea superior" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fin" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Abrir archivo" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Otro" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copiar A a B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copiar B a A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Borrar A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Borrar B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Borrar A y B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Fusionar a A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Fusionar a B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Fusionar a A y B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Borrar (si existe)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Fusionar" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Fusionar (manual)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Error: Conflicto de tipos de archivo" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Error: Cambiado y borrando" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Error: Las fechas son iguales pero los archivos no." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Terminado" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Error" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Omitido." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Sin guardar." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "En progreso..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Por hacer." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nombre" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operación" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Estado" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Sin resolver" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Resuelto" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "No blanco" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Blanco" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Actualmente está realizando una fusión de carpetas. ¿Seguro que desea " +"interrumpir la fusión y volver a explorar la carpeta?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Aviso" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Volver a buscar" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continuar fusionando" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "La apertura de carpetas ha fallado:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta A «%1» no existe o no es una carpeta.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta B «%1» no existe o no es una carpeta.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "La carpeta C «%1» no existe o no es una carpeta.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Error de apertura de carpeta" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"La carpeta de destino no puede ser la misma que A o que B cuando tres " +"carpetas están fusionadas.\n" +"Compruébelo de nuevo antes de continuar." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Advertencia en el parámetro" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Explorando carpetas..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Leyendo carpeta A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Leyendo carpeta B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Leyendo carpeta C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "No se han podido leer algunas subcarpetas" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Compruebe los permisos de las subcarpetas." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Listo." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Estado de la comparación de carpetas\n" +"\n" +"Número de subcarpetas: %1\n" +"Número de archivos idénticos: %2\n" +"Número de archivos distintos: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Número de fusiones manuales: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Esto afecta a todas las operaciones de fusión." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Cambiando todas las operaciones de fusión" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Procesando %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "No se han podido procesar algunos archivos." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Interrumpiendo debido a demasiados errores." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Esta operación no es posible actualmente." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operación imposible" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Ha ocurrido un error al copiar." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Error de fusión" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Operación de fusión desconocida. (Esto no debe ocurrir nunca)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Operación de fusión desconocida." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"La fusión va a empezar.\n" +"\n" +"Elegir «Hacerlo» si ha leído las instrucciones y sabe qué está haciendo.\n" +"Elegir «Simularlo» para que os muestre que ocurriría.\n" +"\n" +"Tenga en cuenta que este programa está aún en versión de pruebas y no hay " +"NINGUNA GARANTÍA en ningún caso. ¡Haga copias de respaldo de sus datos " +"importantes!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Comenzando fusión" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Hacerlo" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simularlo" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"El elemento marcado tiene un tipo diferente en las diferentes carpetas. " +"Seleccione qué hacer." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Las fechas de modificación del archivo son iguales pero los archivos no. " +"Seleccionar qué hacer." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"El elemento marcado está cambiado en una carpeta y borrado en la otra. " +"Seleccione qué hacer." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Esta operación no es posible actualmente porque se está ejecutando una " +"fusión de carpetas." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Hubo un error en el último paso.\n" +"¿Desea continuar con el elemento que causó el error o desea omitir este " +"elemento?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continuar la fusión después de un error" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continuar con el último elemento" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Omitir elemento" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operación de fusión completa." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fusión completa" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Fusión simulada completa. Compruebe si está de acuerdo con las operaciones " +"propuestas." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Ha ocurrido un error. Pulse «Aceptar» para ver información mas detallada." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Error: Mientras se borraba %1: Falló la creación de copia de respaldo." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "borrar carpeta recursivamente( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "borrar( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Error: la operación de borrado de carpeta ha fallado al intentar leer la " +"carpeta." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Error: la operación rmdir( %1 ) falló." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Error: falló la operación de borrado." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "fusión manual ( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Nota: Después de una fusión manual el usuario puede continuar " +"presionando F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Error: falló la copia ( %1 -> %2 ). Fallo al eliminar destino existente." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Error: falló copyLink. Los enlaces remotos no están implementados todavía." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Error: falló copyLink." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copy( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Error durante el cambio de nombre( %1 -> %2 ): No se puede borrar un destino " +"existente." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "cambiar nombre( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Error: Fallo al cambiar el nombre." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Error durante makeDir de %1. No se puede borrar un archivo existente." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Ha ocurrido un error al crear la carpeta." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Carpeta" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipo" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Tamaño" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrib" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Última modificación" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destino del enlace" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Archivo" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Enlace" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "no disponible" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Guardar estado de la fusión de carpetas como..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Comenzar o continuar la fusión de carpetas" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Realizar operación para el elemento actual" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Comparar el archivo seleccionado" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Fusionar archivo actual" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Fusionar\n" +"archivo" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Plegar todas las subcarpetas" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Desplegar todas las subcarpetas" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Elegir A para todos los elementos" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Elegir B para todos los elementos" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Elegir C para todos los elementos" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Auto-elegir operación para todos los elementos" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ninguna operación para todos los elementos" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Mostrar archivos idénticos" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Archivos\n" +"idénticos" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Mostrar archivos diferentes" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Mostrar archivos solo en A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Archivos\n" +"solo en A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Mostrar archivos solo en B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Archivos\n" +"solo en B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Mostrar archivos solo en C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Archivos\n" +"solo en C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Comparar explícitamente los archivos seleccionados" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Fusionar explícitamente los archivos seleccionados" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "No hacer nada" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Borrar A y B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Fusionar a A y B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" +"No se ha podido determinar la URL completa. No se ha especificado ningún " +"padre." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Ha fallado la lectura del archivo: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Falló la creación de la copia temporal de %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "La apertura de %1 ha fallado. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Error al leer de %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"No se ha podido borrar una copia de respaldo anterior mientras se intentaba " +"hacer una copia de respaldo.\n" +"Nombre del archivo: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"No se ha podido cambiar de nombre un archivo mientras se intentaba hacer una " +"copia de respaldo.\n" +"Nombre de los archivos: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configuración actual:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Configuración de la opción de error:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Opción --auto usada, pero sin archivo de salida especificado." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Opción --auto ignorada para comparación de carpetas." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Fallo al guardar." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Fallo al abrir estos archivos:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Error al abrir el archivo" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Abre documentos para comparación..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Volver a cargar" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Guarda el resultado de la fusión ¡Todos los conflictos deben estar resueltos!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Guarda el documento actual como..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Imprimir las diferencias" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Sale de la aplicación" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Corta la sección seleccionada y la pega en el portapapeles" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia la sección seleccionada al portapapeles" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Pastes the clipboard contents to current position" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Seleccionar todo en la ventana actual" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Buscar por una cadena" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Buscar de nuevo la cadena" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Activar/desactivar la barra de estado" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configurar KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ir al Delta actual" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Delta\n" +"actual" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ir al primer Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Primer\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ir al último Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Último\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Omite diferencias de espacios en blanco cuando «Mostrar espacios en blanco» " +"esta desactivado)." + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(No omite diferencias de espacios en blanco incluso cuando «Mostrar espacios " +"en blanco» esta desactivado)." + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ir al Delta anterior" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Delta\n" +"anterior" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ir al siguiente Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Siguiente\n" +"Delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ir al conflicto anterior" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflicto\n" +"anterior" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ir al conflicto siguiente" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Conflicto\n" +"siguiente" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ir al conflicto anterior sin resolver" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Sin resolver\n" +"anterior" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ir al conflicto siguiente sin resolver" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Sin resolver\n" +"siguiente" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Seleccionar línea(s) de A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Elegir\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Seleccionar línea(s) de B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Elegir\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Seleccionar línea(s) de C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Elegir\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Automáticamente Ir al conflicto siguiente sin resolver después de una " +"selección origen" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Siguiente\n" +"automática" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Mostrar caracteres espacio y tabulador" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Caracteres\n" +"en blanco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Mostar espacio en blanco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Deltas en\n" +"blanco" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Mostar número de líneas" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Números de\n" +"línea" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Resolver automáticamente conflictos sencillos" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Establecer Deltas a conflictos" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Ejecutar expresión regular de fusión automática" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Resolver automáticamente conflictos históricamente" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Dividir Diff en la selección" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Unir las diferencias seleccionadas" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Mostar ventana A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Mostar ventana B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Mostar ventana C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Vista normal" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Vista A vs. B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Vista A vs. C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Vista B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Ventanas de diferencias con ajuste de palabra" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Añadir alineación manual de las diferencias" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Borrar todas las alineaciones de diferencias manuales" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Ir a la siguiente ventana" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Ir a la ventana anterior" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Conmutar orientación de división" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Vista de pantalla dividida en carpeta y texto" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Conmutar entre vista de carpeta y de texto" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "El resultado de la fusión no ha sido guardado." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Guardar y salir" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Salir sin guardar" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Falló al guardar el resultado de la fusión." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Actualmente está realizando una fusión de carpetas. ¿Seguro que desea " +"interrumpirla?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Guardando archivo..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Guardando archivo con un nuevo nombre..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Guardar como..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Impresión no implementada." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Impriminendo..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Imprimiendo página %1 de %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selección)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Impresión completada." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Impresión cancelada." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Saliendo..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Cambiando barra de herramientas..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Conmutar la barra de estado..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Parte de KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Un KPart para mostrar imágenes SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configurar KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"No pudo inicializar la parte de KDiff.\n" +"Esto normalmente ocurre debido a un problema de instalación. Lea el archivo " +"README en el paquete fuente para obtener más detalles." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Archivo" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Car&peta" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Elemento actual de operación de fusión" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Elemento actual de operación de sincronización" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&ovimiento" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iffview" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "&Fusionar" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Ventana" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra de herramientas principal" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorado. (Definido por el usuario)." + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bits)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bits)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Herramienta para comparación y fusión de archivos y carpetas" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "© 2002-2014 Joachim Eibl, © 2017 Michael Reeves (adaptación a KF5/Qt5)" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Fusionar la entrada." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Archivo base explícito. Para compatibilidad con algunas herramientas." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Archivo de salida. Implica -m. E.g.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Archivo de salida, de nuevo. (Para compatibilidad con algunas herramientas)." + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Ninguna interfaz gráfica de usuario si todos los conflictos son auto-" +"resolvibles. (necesita archivo -o)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignorar --auto y mostrar siempre la interfaz gráfica del usuario." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorado." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Reemplazamiento visible de nombre para el archivo de entrada 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Reemplazamiento visible de nombre para el archivo de entrada 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Reemplazamiento visible de nombre para el archivo de entrada 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Reemplazamiento alternativo visible de nombre. Facilitarlo una vez por cada " +"entrada." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Sustituir una opción de configuración. Utilícelo para cada configuración. P. " +"ej.: --cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Mostrar una lista de las preferencias y valores actuales." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Utilizar un archivo de configuración diferente." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "archivo1 a abrir (base, si no se ha especificado vía --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "archivo2 a abrir" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "archivo3 a abrir" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Consulte «kdiff3 --help» para ver las opciones posibles." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "No se puede comparar un archivo no normal con otro normal." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mezcla de enlaces y archivos normales." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Enlace: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Tamaño: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Fecha y tamaño: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Comparando archivo..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Elegir A en todas partes" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Elegir B en todas partes" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Elegir C en todas partes" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Elegir A para todos los conflictos sin resolver" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Elegir B para todos los conflictos sin resolver" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Elegir C para todos los conflictos sin resolver" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Elegir A para todos los conflictos de espacios en blanco sin resolver" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Elegir B para todos los conflictos de espacios en blanco sin resolver" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Elegir C para todos los conflictos de espacios en blanco sin resolver" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Número de conflictos sin resolver: %1 (%2 de los cuales son espacios en " +"blanco)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"La salida ha sido modificada.\n" +"Si continua, sus cambios se perderán." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Todos los archivos de entrada son binariamente iguales." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Todos los archivos de entrada contienen el mismo texto." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Los archivos %1 y %2 son binariamente iguales.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Los archivos %1 y %2 tiene el mismo texto.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Número total de conflictos: %1\n" +"Número de conflictos resueltos automáticamente: %2\n" +"Número de conflictos sin resolver: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflictos" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Todavía no se han resuelto todos los conflictos.\n" +"Archivo sin guardar." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflictos que faltan" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Existe un conflicto en el estilo del fin de línea. Escoja el estilo de fin " +"de línea manualmente.\n" +"No se ha guardado el archivo." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Fallo al crear copia de respaldo. Archivo sin guardar." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Error al guardar archivo" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Error al escribir." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Salida:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modificado]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codificación para guardar:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflicto" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Códec de A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Códec de B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Códec de C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Diálogo" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Salida (opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Archivo..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Intercambiar/copiar nombres..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Carpeta..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Una entrada del historial de control de versión está formada por varias " +"líneas.\n" +"Especifique la expresión regular utilizada para detectar la primera línea " +"(sin el comentario inicial).\n" +"Utilice paréntesis para agrupar las claves de ordenación que desee " +"utilizar.\n" +"Si lo deja vacío, KDiff3 supondrá que las líneas vacías separan las entradas " +"del historial.\n" +"Consulte la documentación para obtener más detalles." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Cada paréntesis utilizado en la expresión regular para la entrada de inicio " +"del historial\n" +"agrupa una clave que podrá utilizarse para la ordenación.\n" +"Especifique la lista de claves (están numeradas por orden de aparición\n" +"comenzando en 1) utilizando «,» como separador (p.ej. «4,5,6,1,2,3,7»).\n" +"Si se deja vacío, no se realizará ordenación.\n" +"Consulte la documentación para obtener más detalles." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Expresión regular para las líneas en las que KDiff3 debería seleccionar un " +"tipo de letra de forma automática.\n" +"Cuando una línea con un conflicto coincide con la expresión regular se " +"elegirá\n" +"- si está disponible - C, sino B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Expresión regular para el inicio de la entrada del historial del control de " +"versión.\n" +"Esta línea suele contener la palabra clave «$Log$».\n" +"El valor predeterminado es: «.*\\$Log.*\\$.*»" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Jovencillo emponzoñado de whisky:\n" +"¡qué figurota exhibe!" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Cambiar tipo de letra" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Tipo de letra: %1, %2, %3\n" +"\n" +"Ejemplo:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Cambier esto si ningún carácter ASCII se muestra correctamente." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configurar" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Tipo de letra" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Tipo de letra para el editor y salida diff" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Tipo de letra de la aplicación" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Tipo de letra para la vista de archivos" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Color" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Preferencias de color" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Vistas del editor y las diferencias:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Color de primer plano:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Color de fondo:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Color de fondo de diff:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Color A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Color B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Color C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Color de conflicto:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Intervalo actual de color de fondo:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Intervalo actual de color de fondo de diff:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Color para los intervalos de diferencias alineadas manualmente:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Vista de comparación de carpetas:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Color del archivo más nuevo:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"El cambio de este color solo será efectivo cuando vuelva a iniciar una " +"comparación de carpetas." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Color del archivo más antiguo:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Color de los archivos intermedios:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Color de los archivos que faltan:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportamiento del editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "El tabulador inserta espacios" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Activado: al pulsar el tabulador se genera el número apropiado de espacios.\n" +"Desactivado: se insertará un carácter de tabulador." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tamaño del tabulador:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Auto sangrado" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Activado: se usará el sangrado de la línea anterior para una nueva línea.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Auto-copiar selección" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Activado: se copiará inmediatamente cualquier selección al portapapeles.\n" +"Desactivado: debe copiarlo explícitamente (por ejemplo, con Ctrl-C)." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Detectar automáticamente" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Establece los finales de linea para cuando un archivo editado se guarde.\n" +"DOS/Windows: CR+LF; Unix: LF; con CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Preferencias de Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignorar números (tratarlos como espacios en blanco)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignorar caracteres numéricos durante la fase combinación de línea. (Similar " +"a ignorar espacios en blanco).\n" +"Puede ayudar a comparar archivos con datos numéricos." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignorar comentarios de C/C++ (tratarlos como espacios en blanco)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Trata los comentarios de C/C++ como espacios en blanco." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" +"Ignorar distinción entre mayúsculas y minúsculas (tratarlas como espacios en " +"blanco)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Tratar las diferencias de mayúsculas como cambios de espacios en blanco " +"('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Orden del preprocesador:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Usar pre-procesamiento definido. (Ver los documentos para mas detalles)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Orden de preprocesador de coincidencia de línea:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Este pre-procesador solo se usa durante la combinación de línea.\n" +"(Ver documentos para mas detalles)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Intentar mas a fondo (mas lento)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Activa la --opción mínima para el diff externo.\n" +"El análisis de archivos grandos será mas lento." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Alinear B y C para 3 archivos de entrada" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Probar a alinear B y C cuando se compara o se fusiona tres archivos de " +"entrada.\n" +"No se recomienda cuando se fusiona porque la fusión puede ser más " +"complicada.\n" +"(De manera predeterminada está deshabilitada)." + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Fusionar" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Preferencias de fusión" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Retardo auto avanzado (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Cuando en modo auto-avanzado el resultado de la selección actual se muestran " +"para el tiempo especificado, antes de saltar al siguiente conflicto. " +"Intervalo: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Mostrar diálogos con información" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Mostrar un diálogo con información sobre el número de conflictos." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Fusionar espacios en blanco de dos archivos de forma predeterminada:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Elección manual" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Permitir el algoritmo de fusión para seleccionar automáticamente una entrada " +"para solo los cambios de espacios en blanco." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Fusionar espacios en blanco de tres archivos de forma predeterminada:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Expresión regular de fusión automática" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Expresión regular de fusión automática:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Ejecutar la expresión regular de fusión automática al iniciar la fusión" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Ejecuta la fusión para las expresiones regulares de fusión automática\n" +"de forma inmediata cuando se inicia la fusión.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Fusionado del historial de control de versiones" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Expresión regular de inicio del historial:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Expresión regular de inicio de la entrada del historial:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ordenación de fusión del historial" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ordenar el historial del control de versiones con una clave." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" +"Orden de la clave de ordenación del inicio de la entrada del historial:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Fusionar el historial de control de versiones al iniciar la fusión" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Ejecuta la fusión automática del historial del control de versiones al " +"iniciar el fusionado." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Número máximo de entradas en el historial:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Cortar después del número especificado. Utilice -1 para un número ilimitado " +"de entradas." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Verificar sus expresiones regulares" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Orden de fusión irrelevante:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Si se especifica, este script se ejecutará después de la fusión automática\n" +"cuando no se hayan detectado otros cambios pertinentes.\n" +"Se llama con los parámetros: nombrearchivo1 nombrearchivo2 nombrearchivo3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Guardar automáticamente y salir al fusionar sin conflictos" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Cuando KDiff3 se inicia para fusionar archivos desde la línea de órdenes y " +"todos los\n" +"conflictos pueden resolverse sin intervención del usuario se guardarán " +"automáticamente y se saldrá.\n" +"(Similar a la opción «--auto» de la línea de órdenes)." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Carpetas recursivas" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Si se deben analizar subcarpetas o no." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Patrones de archivos:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Patrones de archivos a analizar.\n" +"Comodines: «*» y «?»\n" +"Se pueden indicar varios patrones usando el separador: «;»" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Patrones antiarchivos:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Patrones de archivos a excluir del análisis.\n" +"Comodines: «*» y «?»\n" +"Se pueden indicar varios patrones usando el separador: «;»" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Patrones anticarpetas:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Patrones de archivos a excluir del análisis.\n" +"Comodines: «*» y «?»\n" +"Se pueden indicar varios patrones usando el separador: «;»" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Usar archivo «ignore»" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Extiende el antipatrón para todo lo que sería ignorado por el control de " +"fuentes.\n" +"Esto se puede indicar en cada carpeta usando archivos locales «ignore»." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Buscar archivos y carpetas ocultos" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Encuentra archivos y carpetas ocultos." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Seguir enlaces de archivos" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activado: comparar el archivo al que apunta el enlace.\n" +"Desactivado: comparar los enlaces." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Seguir enlaces de carpetas" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activado: comparar la carpeta a la que apunta el enlace.\n" +"Desactivado: comparar los enlaces." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Comparación de nombres de archivo sensible a mayúsculas y minúsculas" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"La comparación de carpetas comparará archivos o carpetas cuando sus nombre " +"coincidan.\n" +"Active esta opción si deben compararse los nombres teniendo en cuenta " +"mayúsculas y minúsculas (para Windows el valor predeterminado es " +"desactivado; en cualquier otro caso, estará activado)." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Desplegar todas las subcarpetas al cargar" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Activado: desplegar todas las subcarpetas al mostrar diferencias entre " +"carpetas.\n" +"Desactivado: dejar las subcarpetas plegadas." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Omitir el informe del estado de las carpetas" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Activado: no mostrar el estado de la comparación de carpetas.\n" +"Desactivado: mostrar el diálogo de estado al iniciar." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Modo de comparación de archivos" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Comparación binaria" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Comparación binaria de cada archivo (predeterminado)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Análisis completo" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Hacer un análisis completo y mostrar información de las estadísticas en " +"columnas extras.\n" +"(Mas lento que una comparación binara, mucho mas lento para archivos " +"binarios)." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Validar el tamaño y la fecha de modificación (inseguro)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Suponer que los archivos son iguales si la fecha de modificación y la " +"longitud de los archivos son iguales.\n" +"Los archivos con el mismo contenido y diferentes fechas de modificación se " +"considerarán diferentes.\n" +"Resulta útil para carpetas grandes o redes lentas." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Validar el tamaño y la fecha, pero utilizar comparación binaria si la fecha " +"no coincide (inseguro)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Suponer que los archivos son iguales si la fecha de modificación y la " +"longitud de los archivos son iguales.\n" +"Si la fecha es diferente pero los tamaños son iguales, se utiliza la " +"comparación binaria.\n" +"Resulta útil para carpetas grandes o redes lentas." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Validar el tamaño (inseguro)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Suponer que los archivos son iguales si sus tamaños son iguales.\n" +"Resulta útil para carpetas grandes y redes lentas cuando la fecha se " +"modifica durante la descarga." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Sincronizar carpetas" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Ofrece almacenar los archivos en ambas carpetas para que\n" +"las dos carpetas sean idénticas tras el proceso.\n" +"Solo funciona cuando se comparan dos carpetas sin indicar un destino." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Las diferencias de espacios en blanco se consideran igual" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Si el archivo se diferencia solo por espacios en blanco, considerarlo " +"igual.\n" +"Esto solamente está activo cuando se elije análisis completo." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copiar el más reciente en lugar de fusionar (no es seguro)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"No mirar en el interior, usar solo el archivo más reciente.\n" +"(Use esto solo si sabe lo que está haciendo).\n" +"Solo es efectivo al comparar dos carpetas." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Archivos de copias de respaldo (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Cuando un archivo se graba sobre otro mas antiguo, se cambiará el\n" +"nombre del archivo antiguo con la extensión '.orig' en lugar de ser borrado." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Preferencias regionales" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Usar la misma codificación para todo:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Activar esto permite cambiar todas las codificaciónes cambiando solo la " +"primera.\n" +"Desactivar esto si se necesitan preferencias individuales diferentes." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Nota: la codificación local es «%1»" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Codificación de archivo para A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Si está activada la codificación Unicode (UTF-16 ó UTF-8) se detectará.\n" +"Sino se detecta la codificación del archivo se utilizará la codificación " +"seleccionada como alternativa.\n" +"(La detección Unicode depende de los primeros bytes de un archivo)." + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Detección automática de Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Codificación de archivo para B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Codificación de archivo para C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Codificación de archivo para la salida de la fusión y guardar:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Selección automática" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Si está activada se utilizará la codificación de los archivos de entrada.\n" +"En los casos dudosos un diálogo pedirá al usuario que elija la codificación " +"para el guardado." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Codificación de archivo para los archivos del preprocesador:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Lenguaje de derecha a izquierda" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Algunos lenguajes se leen de derecha a izquierda.\n" +"Esta configuración cambiará el visor y el editor adaptándolo." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integración" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Preferencias de integración" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opciones de la línea de órdenes que se ignorarán:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Lista de las opciones de la línea de órdenes que se ignorarán cuando KDiff3 " +"se utiliza con otras herramientas.\n" +"Se pueden especificar varios valores separados por «;»\n" +"Eliminará el error «Error desconocido»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Salir también con la tecla «Esc»" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Método rápido para salir.\n" +"Para aquellos que usan la tecla «Esc»." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Esto reestablece todas las opciones. No solo las de tema actual." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Orden del preprocesador: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" +"La(s) siguiente(s) opcion(es) que ha seleccionado pueden cambiar datos:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Normalmente esto no es deseado durante una fusión.\n" +"¿Desea desactivar estas preferencias o continuar con estas preferencias " +"desactivadas?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opción insegura para la fusión" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Utilizar estas opciones durante la fusión" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Desactivar opciones inseguras" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Cargando A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Cargando A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Cargando B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Cargando B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Dif: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Lineadiff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Cargando C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Cargando C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Dif: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Dif: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Lineadiff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Lineadiff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Todos los archivos de entrada contienen el mismo texto, pero no son " +"binariamente iguales." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Los archivos %1 y %2 tienen el mismo texto, pero no son binariamente " +"iguales. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Algunos archivos de entrada no parecen ser archivos de texto puro.\n" +"Tenga en cuenta que la fusión de KDiff3 no se creó para datos binarios.\n" +"Continúe bajo su propia responsabilidad." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Algunos caracteres de entrada no se pueden convertir a unicode válido.\n" +"Es posible que esté usando el códec incorrecto (por ejemplo, UTF-8 para " +"archivos no UTF-8).\n" +"No guarde el resultado si no está seguro. Continúe bajo su propia " +"responsabilidad.\n" +"Los archivos de entrada afectados están en %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Abandonar" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Abriendo archivos..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Cortando selección..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Copiando la selección al portapapeles..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Insertando el contenido del portapapeles..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Ajuste de línea («Cancelar» desactiva el ajuste de línea)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" +"Calculando la anchura máxima para la barra de desplazamiento horizontal" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Guardar y continuar" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continuar sin guardar" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Búsqueda completada." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Búsqueda completada" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" +"No hay nada seleccionado en ninguna de las ventanas de entradas de " +"diferencias." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Error al añadir un intervalo de diferencia manual" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancelar" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Intercambiar %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copiar %1->Salida" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Intercambiar %1<->Salida" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configurar..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Abrir carpeta" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Seleccionar archivo de salida" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Todo/Todos los archivos (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Buscar texto:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Distinción de mayúsculas" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Buscar A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Buscar B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Buscar C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Buscar salida" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "Bu&scar" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Verificar expresión regular" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Ejemplo de línea de fusión automática:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Para una prueba de fusión automática compie una línea tal y como se utiliza " +"en sus archivos." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultado coincidente:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" +"Ejemplo de la línea de inicio del historial (con comentarios importantes):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copia una línea de inicio de historial tal y como se utiliza en sus " +"archivos,\n" +"incluyendo los comentarios importantes." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Orden de la clave de ordenación del historial:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Ejemplo de la línea de inicio de la entrada del historial (sin comentarios " +"importantes):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copia una línea de inicio de la entrada del historial tal y como se utiliza " +"en sus archivos,\n" +"pero omite los comentarios importantes." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resultado de la clave de ordenación:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Coincidencia correcta." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Coincidencia fallida." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Apertura y cierre de paréntesis que no coinciden en la expresión regular." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Error al escribir los datos del portapapeles en el archivo temporal." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Desde el portapapeles" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 no es un archivo normal." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " El archivo temporal es: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Posiblemente, falló el pre-procesamiento. Compruebe esta orden:\n" +"\n" +" %1\n" +"\n" +"La orden de pre-procesamiento se desactivará ahora." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "El archivo %1 es demasiado grande para procesarlo. Se omite." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"El preprocesamiento de combinación de línea probablemente falló. Compruebe " +"esta orden:\n" +"\n" +" %1\n" +"\n" +"La orden de preprocesamiento de combinación de línea se desactivará." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Se esperaba un espacio tras el cierre de la comilla." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Comilla no emparejada." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Carácter de comilla no esperado dentro del argumento." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "No se ha especificado ningún programa." \ No newline at end of file diff --git a/po/es/kdiff3fileitemactionplugin.po b/po/es/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..254bd06 --- /dev/null +++ b/po/es/kdiff3fileitemactionplugin.po @@ -0,0 +1,105 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Sofia Priego , %Y. +# Eloy Cuadra , 2011, 2018, 2019, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-16 00:29+0100\n" +"Last-Translator: Sofia Priego \n" +"Language-Team: Spanish \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar con %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Fusionar con %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Guardar «%1» para más tarde" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusión triple con una base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Comparar con..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Borrar lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparación triple" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Acerca del complemento de menú de KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Complemento de acciones de elementos de archivo de KDiff3. Copyright © 2011 " +"Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Uso de la extensión del menú de contexto:\n" +"Para comparar de forma sencilla dos archivos seleccionados, escoja " +"«Comparar».\n" +"Si el otro archivo está en algún lugar distinto, «guarde» el primer archivo " +"para usarlo más tarde. Aparecerá en el submenú «Comparar con...». Use " +"después «Comparar con» sobre el segundo archivo.\n" +"Para realizar una fusión triple, «guarde» primero el archivo base, luego la " +"rama a fusionar y escoja «Fusión triple con la base» en la otra rama, que se " +"usará como destino.\n" +"Esto mismo se aplica también a la comparación y fusión de carpetas." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Acerca del complemento de acción sobre elementos de archivos de KDiff3" \ No newline at end of file diff --git a/po/et/diff_ext.po b/po/et/diff_ext.po new file mode 100644 index 0000000..f01cf6b --- /dev/null +++ b/po/et/diff_ext.po @@ -0,0 +1,132 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Marek Laane , 2019. +# Mihkel Tõnnov , 2020. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2020-10-11 00:25+0200\n" +"Last-Translator: Mihkel Tõnnov \n" +"Language-Team: Estonian <>\n" +"Language: et\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 20.08.1\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Võrdlemine failiga %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Ühendamine failiga %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Kolmepoolne ühendamine baasiga" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "'%1' salvestamine hilisemaks" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Võrdlemine ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Puhasta loend" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Võrdlemine" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Kolmepoolne võrdlemine" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Diff-Ext'i teave ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Autoriõigus (c) 2003-2006: Sergey Zorin. Kõik õigused kaitstud.\n" + +#: diff_ext.cpp:325 +#, fuzzy, kde-format +#| msgid "This software is distributable under the BSD license.\n" +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Seda tarkvara levitatakse vastavat BSD litsentsile.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Mõned KDiff3 laiendused (c) 2006-2013: Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Diff-Ext'i kodulehekülg: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, fuzzy, kde-format +#| msgid "About Diff-Ext for KDiff3 " +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "KDiff3 Diff-Ext'i teave" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Valitud failide võrdlemine" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "'%1' ja '%2' võrdlemine" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "*%1' salvestamine hilisemaks" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "KDiff3 käivitamine nurjus. Palun korda KDiff3 paigaldamist." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Käsk" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Käsurida" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "KDiff3 Diff-Ext" \ No newline at end of file diff --git a/po/et/kdiff3.po b/po/et/kdiff3.po new file mode 100644 index 0000000..bec23f1 --- /dev/null +++ b/po/et/kdiff3.po @@ -0,0 +1,3567 @@ +# translation of kdiff3.po to Estonian +# Copyright (C) 2003 Free Software Foundation, Inc. +# +# Marek Laane , 2003-2009. +# Marek Laane , 2009, 2010, 2011, 2012, 2019, 2020. +# Mihkel Tõnnov , 2020. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2020-09-28 03:19+0200\n" +"Last-Translator: Mihkel Tõnnov \n" +"Language-Team: Estonian <>\n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Marek Laane" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "qiilaq69@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Faili staatuse hankimine: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Faili lugemine: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Faili kirjutamine: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Mälu napib" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Kataloogi loomine: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Kataloogi eemaldamine: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Faili eemaldamine: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Nimeviida loomine: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Faili ümbernimetamine: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Faili kopeerimine: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Kataloogi lugemine: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Kataloogi uurimine: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Andmekaotuse viga:\n" +"Kui see on korratav, võta palun ühendust autoriga.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Tõsine seesmine viga" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Tõsine seesmine viga." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Tõsine seesmine viga:" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Fail %1: Rida %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Fail %1: Rida pole kättesaadav" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodeering:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Realõpu stiil:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (baas)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kodeering: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "UNIX" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Realõpu stiil: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Ülarida" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Lõpp" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Faili avamine" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode (8-bitine)" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Muu" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopeeri A->B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopeeri B->A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Kustuta A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Kustuta B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Kustuta A ja B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Ühenda A-sse" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Ühenda B-sse" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Ühenda A-sse ja B-sse" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Kustuta (kui on olemas)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Ühenda" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Ühenda (käsitsi)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Viga: failitüüpide vastuolu" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Viga: muudetud ja kustutatud" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Viga: kuupäevad on samad, aga mitte failid." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Tehtud" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Viga" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Vahele jäetud." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Ei salvestatud." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Töös..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Veel tegemata." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nimi" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operatsioon" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Staatus" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Lahendamata" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Lahendatud" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Mitte-tühimärk" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Tühimärk" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Sul on parajasti käsil kataloogi ühendamine. Kas tõesti ühendamine " +"katkestada ja kataloog uuesti läbi uurida?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Hoiatus" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Uuri uuesti läbi" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Jätka ühendamist" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Kataloogide avamine nurjus:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Kataloogi A \"%1\" ei ole olemas või ei ole see kataloog.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Kataloogi B \"%1\" ei ole olemas või ei ole see kataloog.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Kataloogi C \"%1\" ei ole olemas või ei ole see kataloog.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Tõrge kataloogi avamisel" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Sihtkataloog ei saa kolme kataloogi ühendamisel olla sama, mis A või B.\n" +"Kontrolli seda asja enne jätkamist." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parameetri hoiatus" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Kataloogide läbiuurimine..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Kataloogi A lugemine" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Kataloogi B lugemine" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Kataloogi C lugemine" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Mõned alamkataloogid ei olnud loetavad" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Kontrolli alamkataloogide õigusi." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Valmis." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Kataloogide võrdlemise staatus\n" +"\n" +"Alamkataloogide arv: %1\n" +"Võrdsete failide arv: %2\n" +"Erinevate failide arv: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Käsitsiühendamiste arv: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "See mõjutab kõiki ühendamisoperatsioone." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Kõigi ühendamisoperatsioonide muutmine" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Töödeldakse %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Mõnda faili ei õnnestunud töödelda." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Loobumine liiga paljude tõrgete tõttu." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "See operatsioon ei ole praegu võimalik." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operatsioon ei ole võimalik" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Kopeerimisel tekkis viga." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Ühendamise viga" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Tundmatu ühendamisoperatsioon. (Seda ei peaks kunagi ette tulema!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Tundmatu ühendamisoperatsioon." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Kohe algab ühendamine.\n" +"\n" +"Vali \"Tee seda\", kui oled lugenud juhiseid ja tead täpselt, mida ette " +"võtad.\n" +"Vali \"Simuleeri\", kui soovid näha, mis juhtub.\n" +"\n" +"Arvesta, et rakendus on endiselt arendusjärgus ja pole MINGIT GARANTIID, et " +"üldse midagi juhtub või et kõik õigesti juhtub! Tee kindlasti tähtsatest " +"andmetest varukoopia!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Ühendamise alustamine" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Tee ära" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuleeri" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Esiletõstetud element on erinevates kataloogides erineva tüübiga. Otsusta, " +"mida teha." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Failide muutmise aeg on sama, aga failid ise mitte. Otsusta, mida teha." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Esiletõstetud elementi on muudetud ühes ja kustutatud teises kataloogis. " +"Otsusta, mida teha." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"See operatsioon ei ole praegu võimalik, sest käib kataloogide ühendamine." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Viimasel sammul tekkis viga.\n" +"Kas soovid jätkata elemendiga, mis vea põhjustas, või selle vahele jätta?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Jätka ühendamist pärast viga" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Jätka viimase elemendiga" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Jäta vahele" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Ühendamisoperatsioon lõpetatud." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Ühendamine lõpetatud" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Ühendamise simulatsioon lõpetatud: märgi, kui oled pakutavate " +"operatsioonidega nõus." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Tekkis viga. Lähema info saamiseks klõpsa 'OK'." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Viga %1 kustutamisel: varukoopia loomine nurjus." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "kustuta kataloog rekursiivselt( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "kustuta( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Tõrge: kataloogi kustutamine nurjus juba kataloogi lugemise katsel." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Viga: operatsioon rmdir( %1 ) nurjus." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Viga: kustutamisoperatsioon nurjus." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "käsitsi ühendamine( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr " Märkus: pärast käsitsi ühendamist tuleks jätkata klahviga F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Viga: kopeeri( %1 -> %2) nurjus, sest olemasoleva sihtkoha kustutamine " +"nurjus." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "kopeeri viit( %1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Viga: viida kopeerimine nurjus, sest kaugviidad ei ole veel toetatud." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Viga: viida kopeerimine nurjus." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopeeri( %1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Viga operatsioonil 'nimeta ümber( %1 -> %2)': olemasoleva sihtkoha " +"kustutamine nurjus." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "nimeta ümber( %1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Viga: ümbernimetamine nurjus." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Viga kataloogi %1 loomisel: olemasoleva faili kustutamine nurjus." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "loo kataloog( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Tõrge kataloogi loomisel." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Sihtkoht" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Kataloog" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tüüp" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Suurus" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atribuut" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Viimase muutmise aeg" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Viit-sihtkoht" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fail" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Viit: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "pole kättesaadav" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (sihtkoht): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (baas): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (sihtkoht): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (sihtkoht): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Sihtkoht: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Kataloogi ühendamisoleku salvestamine..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Alusta/jätka kataloogi ühendamist" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Käivita operatsioon käesoleva elemendiga" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Võrdle valitud faili" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Ühenda praegune fail" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Ühenda\n" +"fail" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Ava kõik alamkataloogid" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Sule kõik alamkataloogid" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Vali A kõigile elementidele" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Vali B kõigile elementidele" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Vali C kõigile elementidele" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Automaatne valik kõigile elementidele" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ei ühtki operatsiooni kõigile elementidele" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Näita identseid faile" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identsed\n" +"failid" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Näita erinevaid faile" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Näita ainult A faile" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Ainult\n" +"A failid" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Näita ainult B faile" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Ainult\n" +"B failid" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Näita ainult C faile" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Ainult\n" +"C failid" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Võrdle valitud faile" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Ühenda valitud failid" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ära tee midagi" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Kustuta A ja B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Ühenda A-sse ja B-sse" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Täieliku URL-i tuvastamine nurjus. Eellast pole määratud." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Faili lugemine: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "%1 ajutise koopia loomine nurjus." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "%1 avamine nurjus. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Viga %1 lugemisel. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Varukoopia tegemisel nurjus vanema varukoopia kustutamine.\n" +"Faili nimi: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Varukoopia tegemisel nurjus nime muutmine. \n" +"Failide nimed: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Aktiivne seadistus:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Seadistusvõtme viga:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Kasutati võtit --auto, kuid väljundfail pole määratud." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Kataloogide võrdlemisel ignoreeriti võtit --auto." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Salvestamine nurjus." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Nende failide avamine nurjus:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Viga faili avamisel" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Avab dokumendid võrdlemiseks..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Laadi uuesti" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Salvestab ühendamise tulemuse. Kõik konfliktid peavad olema lahendatud!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Salvestab käesoleva dokumendi nimega..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Trükib erinevused" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Väljub rakendusest" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Valitud teksti lõikamine ja asetamine lõikepuhvrisse" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopeerib valitud lõigu lõikepuhvrisse" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Lõikepuhvri sisu asetamine praegusesse asukohta" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Kogu aktiivse akna sisu valimine" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Otsib stringi" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Otsib uuesti stringi" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Lülitab staatusriba sisse/välja" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 seadistamine..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Liigu praegusele erinevusele" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Praegune\n" +"erinevus" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Liigu esimesele erinevusele" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Esimene\n" +"erinevus" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Liigu viimasele erinevusele" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Viimane\n" +"erinevus" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Jätab tühimärkide erinevused vahele, kui \"Tühimärkide näitamine\" ei ole " +"sees.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Tühimärkide erinevusi näidatakse isegi siis, kui \"Tühimärkide näitamine\" " +"ei ole sees.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Liigu eelmisele erinevusele" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Eelmine\n" +"erinevus" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Liigu järgmisele erinevusele" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Järgmine\n" +"erinevus" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Liigu eelmisele konfliktile" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Eelmine\n" +"konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Liigu järgmisele konfliktile" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Järgmine\n" +"konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Liigu eelmisele lahendamata konfliktile" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Eelmine\n" +"lahendamata" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Liigu järgmisele lahendamata konfliktile" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Järgmine\n" +"lahendamata" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Vali rida/read A-st" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Vali\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Vali rida/read B-st" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Vali\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Vali rida/read C-st" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Vali\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Pärast allikavalikut liigu automaatselt järgmisele lahendamata konfliktile" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automaatselt\n" +"järgmine" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Näita tühiku- ja tabeldusmärke" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "Tühimärgid" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Näita tühimärke" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Tühimärkide\n" +"erinevus" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Näita reanumbreid" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "Reanumbrid" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Lahenda automaatselt lihtsad konfliktid" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Määra erinevused konfliktideks" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Käivita regulaaravaldisega automaatühendamine" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Lahenda automaatselt ajalookonfliktid" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Jaga erinevused valiku juures" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Liida valitud erinevused" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Näita akent A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Näita akent B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Näita akent C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normaalne ülevaade" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A-B ülevaade" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A-C ülevaade" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B-C ülevaade" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Reamurdmine võrdlusakendes" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Lisa käsitsi samasus" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Eemalda kõik käsitsi määratud samasused" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokuseeri järgmisele aknale" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokuseeri eelmisele aknale" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Lülita poolitamissuund" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Kataloogi ja teksti poolitamisvaade" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Lülita kataloogi- ja tekstivaadet" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Ühendamise tulemust pole salvestatud." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Salvesta ja välju" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Välju salvestamata" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Ühendamise tulemuse salvestamine nurjus." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Sul on parajasti käsil kataloogide ühendamine. Kas tõesti katkestada?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Faili salvestamine..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Faili salvestamine uue nimega..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Salvestamine..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Trükkimine ei ole veel võimalik." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Trükkimine..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Trükitakse lehekülge %1 / %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Valik)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Trükkimine lõpetatud." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Trükkimine katkestati" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Väljumine..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Tööriistariba lülitamine..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Olekuriba lülitamine..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 komponent" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "KPart SVG-piltide näitamiseks" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Autoriõigus 2007: Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "KDiff&3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 seadistamine" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"KDiff3 komponenti ei leitud.\n" +"Tavaliselt tähendab see paigaldusprobleemi. Palun loe lähtepaketi faili " +"README." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fail" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "K&ataloog" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Käesoleva elemendi ühendamisoperatsioon" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Käesoleva elemendi sünkroniseerimisoperatsioon" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "&Liikumine" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Võrdlus&evaade" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Ü&hendamine" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Ake&n" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Peamine tööriistariba" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignoreeritakse (kasutaja määratud)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64-bitine)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32-bitine)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Failide ja kataloogide võrdlemise ning ühendamise vahend" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014: Joachim Eibl, (c) 2017: Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Liidab sisendi." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Konkreetne põhifail (ühilduvuseks teatud tööriistadega)." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Väljundfail. Eeldab -m. Nt. -o uusfail.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Taas väljundfail (ühilduvuseks teatud tööriistadega)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "GUI puudub, kui kõik konfliktid lahenevad ise (vajalik on -o fail)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "--auto eiramine ja alati graafilise kasutajaliidese näitamine." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Eiratakse." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Nähtava nime asendus sisendfailile 1 (baas)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Nähtava nime asendus sisendfailile 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Nähtava nime asendus sisendfailile 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Nähtava nime alternatiivne asendus. See tuleb anda kord iga sisendi jaoks." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Seadistusvõtme tühistamine. Tuleb kasutada iga võtme jaoks eraldi, nt. --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Seadistuste nimekirja ja võtmete kehtivate väärtuste näitamine." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Muu seadistustefaili kasutamine." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "avatav fail1 (põhifail, kui --base teisiti ei määra)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "avatav fail2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "avatav fail3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Toetatud valikuid näitab kdiff3 --help." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Ebatavalist ja tavalist faili ei õnnestunud võrrelda." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Viitade ja tavafailide segu." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Viit: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Suurus. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Kuupäev ja suurus: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Faili võrdlemine..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Vali A kõikjal" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Vali B kõikjal" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Vali C kõikjal" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Vali A kõigi lahendamata konfliktide korral" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Vali B kõigi lahendamata konfliktide korral" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Vali C kõigi lahendamata konfliktide korral" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Vali A kõigi lahendamata tühimärgikonkfliktide korral" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Vali B kõigi lahendamata tühimärgikonkfliktide korral" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Vali C kõigi lahendamata tühimärgikonkfliktide korral" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Lahendamata konfliktide arv: %1 (neist %2 on tühimärgierinevused)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Väljundit on muudetud.\n" +"Kui jätkad, lähevad sinu muudatused kaotsi." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Kõik sisendfailid on binaarselt võrdsed." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Kõik sisendfailid sisaldavad ühesugust teksti." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Failid %1 ja %2 on binaarselt võrdsed.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Failid %1 ja %2 on ühesuguse tekstiga. \n" + +#: mergeresultwindow.cpp:1042 +#, fuzzy, kde-format +#| msgid "" +#| "Total number of conflicts: %1\n" +#| "Nr of automatically solved conflicts: %2\n" +#| "Nr of unsolved conflicts: %3\n" +#| "%4" +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Konfliktide koguarv: %1\n" +"Automaatselt lahendatud konfliktide arv: %2\n" +"Lahendamata konfliktide arv: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konfliktid" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<Ühendamise konflikt (ainult tühimärgid)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<Ühendamise konflikt>" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Kõik konfliktid pole veel lahendatud.\n" +"Faili ei salvestatud." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Järelejäänud konfliktid" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Tekkis realõpu stiili konflikt. Palun vali realõpu stiil käsitsi.\n" +"Faili ei salvestatud." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Varukoopia loomine nurjus. Faili ei salvestatud." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Faili salvestamise viga" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Kirjutamise viga." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Väljund:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Muudetud]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Kodeering salvestamisel:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "A koodek: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "B koodek: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "C koodek: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialoog" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (baas):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Väljund (lisavõimalus):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fail..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Vaheta/kopeeri nimed ..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (lisavõimalus):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Kataloog ..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Versioonikontrolli ajaloo kirje koosneb mitmest reast.\n" +"Siin saab määrata esimese rea (ilma alustava kommentaarita) tuvastamiseks " +"mõeldud regulaaravaldise.\n" +"Sulgudega saab rühmitada võtmeid, mida tahad kasutada sortimiseks.\n" +"Kui see tühjaks jätta, eeldab KDiff3, et ajaloo kirjeid eraldavad tühjad " +"read.\n" +"Täpsemalt räägib sellest käsiraamat." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Kõik ajalookirjete alguse määramiseks mõeldud regulaaravaldistes\n" +"kasutatud sulud rühmitavad võtmeid, mida saab tarvitada sortimiseks.\n" +"Määra siin võtmete järjekord (need on siin järjekorras alates 1),\n" +"kasutades eraldajana koma ',' (nt. \"4,5,6,1,2,3,7\").\n" +"Kui see tühjaks jätta, siis midagi ei sordita.\n" +"Täpsemalt räägib sellest käsiraamat." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regulaaravaldis ridadele, kus KDiff3 peab automaatselt valima ühe allika.\n" +"Kui konflikti sisaldav rida sobib regulaaravaldisega, siis\n" +"valitakse - kui võimalik - C, vastasel juhul B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regulaaravaldis versioonikontrolli ajaloo kirje alguse jaoks.\n" +"Tavaliselt leidub seal real võtmesõna \"$Log$\".\n" +"Vaikimisi: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Muuda fonti" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Font: %1, %2, %3\n" +"\n" +"Näide:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Muuda, kui mitte-ASCII sümboleid ei näidata korrektselt." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Seadistamine" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Font" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Redaktori ja erinevuse väljundi font" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Rakenduse font" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Failivaate font" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Värv" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Värviseadistused" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Redaktori ja erinevuse vaated:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Esiplaani värv:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Tausta värv:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Erinevuse tausta värv:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Värv A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Värv B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Värv C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Konflikti värv:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Praeguse vahemiku tausta värv:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Praeguse vahemiku erinevuse tausta värv:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Käsitsi määratud samasuse vahemiku värv:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Kataloogi võrdlemise vaade:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Uusima faili värv:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Seda värvi muudetakse alles siis, kui alustad järgmist kataloogide " +"võrdlemist." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Vanima faili värv:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Keskmise vanusega faili värv:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Puuduvate failide värv:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Redaktor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Redaktori käitumine" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "TAB lisab tühikud" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Sees: TAB klahvi vajutamine tekitab sobiva hulga tühikuid.\n" +"Väljas: lisatakse tabeldusmärk." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "TABi suurus:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automaatne taandus" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Sees: uuel real kasutatakse eelmise rea taandust.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Valiku automaatne kopeerimine" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Sees: iga valik asetatakse otsekohe lõikepuhvrisse.\n" +"Väljas: kopeerimiseks tuleb anda selge käsk, nt. Ctrl+C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Automaatne tuvastamine" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Määrab realõpu stiili redigeeritud faili salvestamisel.\n" +"DOS/Windows: CR+LF; Unix: LF; sealjuures CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Erinevused" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Erinevuse seadistused" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Numbrite eiramine (käsitletakse tühimärkidena)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Reasobivuse juures ignoreeritakse numbreid (sarnane tühimärkide " +"ignoreerimisega).\n" +"Võib olla abiks numbrilisi andmeid sisaldavate failide võrdlemisel." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ kommentaaride eiramine (käsitletakse tühimärkidena)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ kommentaare käsitletakse tühimärkidena." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Tähesuuruse eiramine (käsitletakse tühimärkidena)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Tõstuerinevusi käsitletakse tühimärgimuutustena. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Eeltöötluse käsk" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Kasutaja määratud eeltöötlus (vaata lähemalt käsiraamatust)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Ridade sobivuse eeltöötluse käsk:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Seda eeltöötlusvahendit kasutatakse ainult ridade sobivuse leidmisel\n" +"(vaata lähemalt käsiraamatust)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Karm uurimine (aeglane)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Lubab välise diff-rakenduse korral võtme --minimal.\n" +"Suurte failide analüüs muutub palju aeglasemaks." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "B ja C joondamine 3 sisendfaili korral" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"B ja C võimalikult täpne joondamine kolme sisendfaili võrdlemisel või " +"ühendamisel.\n" +"Ei ole soovitatav ühendamise korral, sest ühendamine võib osutuda " +"keeruliseks.\n" +"(Vaikimisi on välja lülitatud.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Ühendamine" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Ühendamise seadistused" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Automaatse edasiliikumise viivitus (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Automaatse edasiliikumise režiimis näidatakse tulemust määratud aeg ning \n" +"siis hüpatakse järgmisele konfliktile. Vahemik: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Infodialoogide näitamine" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Infodialoogi näitamine konfliktide arvu kohta." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Tühimärkide käsitlemine kahe faili ühendamisel:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Käsitsivalik" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Lubab ühendamisalgoritmil ainult tühimärkides seisneva erinevuse korral " +"automaatselt valida sisendi." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Tühimärkide käsitlemine kolme faili ühendamisel:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automaatühendamise regulaaravaldis" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Automaatühendamise regulaaravaldis:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Regulaaravaldisega automaatühendamine ühendamise alustamisel" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Regulaarühendusega automaatühendamine käivitatakse\n" +"kohe ühendamise alustamisel.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Versioonikonrolli ajaloo ühendamine" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Ajaloo alguse regulaaravaldis:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Ajalookirje alguse regulaaravaldis:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ajaloo ühendamise sortimine" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Versioonikontrolli ajaloo sortimine võtmete järgi." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Ajalookirje alguse sortimisvõtmete järjekord:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Versioonikontrolli ajaloo ühendamine ühendamise alustamisel" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Versioonikontrolli ajaloo automaatühendamise käivitamine kohe ühendamise " +"alustamisel." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Ajalookirjete maks. arv:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Kärpimine pärast määratud arvu. -1 tähendab piirangu puudumist." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Regulaaravaldiste test" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Ebaolulise ühendamise käsk:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Määramise korral käivitatakse see skript\n" +"pärast automaatühendamist, kui muid muudatusi ei avastada.\n" +"See kutsutakse välja parameetritega: failinimi1 failinimi2 failinimi3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automaatne salvestamine ja väljumine konfliktideta ühendamisel" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Kui KDiff3 käivitatakse failide ühendamiseks käsurealt ja kõik konfliktid\n" +"on lahendatavad kasutaja sekkumiseta, salvestatakse ja lõpetatakse töö\n" +"automaatselt.\n" +"(Samane käsurea võtmega \"--auto\")" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Rekursiivsed kataloogid" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Kas analüüsida alamkatalooge või mitte." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Failimustrid:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Failide mustrid, mida analüüsida. \n" +"Metamärgid: '*' ja '?'\n" +"Mitme mustri määramisel kasuta eraldajana semikoolonit (;)" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Anti-failimustrid:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Failide mustrid, mida analüüsil välja jätta. \n" +"Metamärgid: '*' ja '?'\n" +"Mitme mustri määramisel kasuta eraldajana semikoolonit (;)" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Anti-kataloogimustrid:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Kataloogide mustrid, mis analüüsil välja jätta. \n" +"Metamärgid: '*' ja '?'\n" +"Mitme mustri määramisel kasuta eraldajana semikoolonit (;)" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr ".cvsignore kasutamine" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be folder-specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Laiendab antimustrit kõigele, mida eiraks CVS.\n" +"Kohalike \".cvsignore\" failide abil võib see olla kataloogipõhine." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Peidetud failide ja kataloogide otsimine" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Peidetud failide ja kataloogide otsimine." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Failiviitade järgimine" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Sees: võrreldakse faili, mille viit osutab.\n" +"Väljas: võrreldakse viitu." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Kataloogiviitade järgimine" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Sees: võrreldakse kataloogi, mille viit osutab.\n" +"Väljas: võrreldakse viitu." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Tõstutundlik failinimede võrdlemine" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Kataloogide võrdlemisel võrreldakse failide või kataloogide nimesid.\n" +"Selle valiku sisselülitamisel peab sobima ka nimede tähesuurus (Windowsis on " +"see vaikimisi välja lülitatud, muidu sees)." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Laadimisel avatakse kõik alamkataloogid" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Sees: kataloogide erinevuste otsimise alustades avatakse kõik " +"alamkataloogid.\n" +"Väljas: alamkataloogid jäetakse suletuks." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Kataloogide staatuse aruanne jäetakse vahele" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Sees: kataloogide võrdlemise staatust ei näidata.\n" +"Väljas: Staatusedialoogi näitamine alustamisel." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Faili võrdlemise režiim" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binaarvõrdlus" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Iga faili binaarvõrdlus. (vaikimisi)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Täielik analüüs" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Tehakse täielik analüüs, statistikat näidatakse lisaveergudes.\n" +"(Aeglasem kui binaarvõrdlus ja eriti aeglane binaarfailide korral.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Suuruse ja muutmiskuupäeva usaldamine (ebaturvaline)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Eeldatakse, et failid on võrdsed, kui muutmiskuupäev ja failipikkus on " +"võrdsed.\n" +"Ühesuguse sisu, kuid erineva muutmiskuupäevaga faile peetakse erinevaks.\n" +"Mõttekas suurte kataloogide või aeglase võrgu korral." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Suuruse ja muutmiskuupäeva usaldamine, kuid muutmiskuupäeva erinemisel " +"binaarvõrdluse kasutamine (pole turvaline)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Eeldatakse, et failid on võrdsed, kui muutmiskuupäev ja failipikkus on " +"võrdsed.\n" +"Kui kuupäevad ei ole võrdsed, aga suurus on, kasutatakse binaarvõrdlust.\n" +"Mõttekas suurte kataloogide või aeglase võrgu korral." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Suuruse usaldamine (ebaturvaline)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Eeldatakse, et failid on võrdsed, kui failipikkus on võrdne.\n" +"Mõttekas suurte kataloogide või aeglase võrgu korral, kui kuupäev võib " +"allalaadimise käigus olla muutunud." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Kataloogide sünkroonimine" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Võimaldab salvestada failid mõlemasse kataloogi,\n" +"nii et need näevad pärast seda välja ühesugused.\n" +"Toimib ainult kahe kataloogi võrdlemisel ilma sihtkohta määramata." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Tühimärkide erinevust ei arvestata" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Kui failid erinevad ainult tühimärkide poolest, peetakse neid võrdseks.\n" +"See valik on aktiivne ainult täieliku analüüsi korral." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Ühendamise asemel kopeeritakse uuem (ebaturvaline)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Sisse ei vaadata, võetakse lihtsalt uuem fail.\n" +"(Kasuta ainult siis, kui tead, mida teed!)\n" +"Toimib ainult kahe kataloogi võrdlemisel." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Failidest tehakse varukoopia (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Kui fail salvestatakse vana faili asemele, ei kustutata vana faili,\n" +"vaid sellele antakse uus nimi laiendiga '.orig'." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Lokaale seadistused" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Kõikjal kasutatakse kodeeringut:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Lubab muuta kõiki kodeeringuid ainult esimest kodeeringut muutes.\n" +"Kui vaja on erinevaid määratlusi, lülita välja." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Märkus: kohalik kodeering on \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "A kodeering:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Sisselülitamisel tuvastatakse Unicode (UTF-16 või UTF-8) kodeering.\n" +"Kui fail ei ole Unicode kodeeringus, kasutatakse selle asemel valitud " +"kodeeringut.\n" +"(Unicode tuvastamine sõltub faili esimestest baitidest.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Unicode automaatne tuvastamine" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "B kodeering:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "C kodeering:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kodeering ühendamisväljundil ja salvestamisel:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automaatne valik" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Sisselülitamisel kasutatakse sisendfailide kodeeringut.\n" +"Kahtluse korral ilmub dialoog, mis laseb kasutajal valida salvestamisel " +"kasutatava kodeeringu." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Eelprotsessori failide kodeering:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Paremalt-vasakule keeled" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Mõningaid keeli loetakse ja kirjutatakse paremalt vasakule.\n" +"Selle valikuga saab vastavalt muuta näitajat ja redaktorit." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integreerimine" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integreerimisseadistused" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Ignoreeritavad käsurea võtmed:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Käsurea võtmete nimekiri, mida ignoreeritakse, kui KDiff3 kasutavad teised " +"tööriistad.\n" +"Mitme väärtuse andmisel tuleb need eraldada semikooloniga (;).\n" +"See väldib vigu \"Tundmatu võti\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Väljumine ka klahviga Escape" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Kiire väljumisviis.\n" +"Mõeldud neile, kellele on südamelähedane klahv Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "See lähtestab kõik valikud, mitte ainult praeguse teema omad." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Eeltöötluse käsk: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Järgmised valitud võimalused võivad muuta andmeid:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Peaaegu kindlasti ei ole see ühendamisel soovitav.\n" +"Kas soovid need seadistused tühistada või siiski nendega jätkata?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Ebaturvaline valik ühendamisel" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Kasuta neid valikuid ühendamisel" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Keela ebaturvalised valikud" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A laadimine" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "A laadimine: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B laadimine" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "B laadimine: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Erinevus: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Reaerinevus: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C laadimine" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "C laadimine: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Erinevus: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Erinevus: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Reaerinevus: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Reaerinevus: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Kõik sisendfailid sisaldavad ühesugust teksti, aga pole binaarselt võrdsed." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Failid %1 ja %2 sisaldavad ühesugust teksti, aga pole binaarselt võrdsed. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Paistab, et mõned sisendfailid ei ole puhtad tekstifailid.\n" +"Arvesta, et KDiff3 ühendamine ei ole mõeldud binaarfailidele.\n" +"Jätka oma riskil." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Mõningaid sisendmärke ei saa teisendada korrektseks Unicode'iks.\n" +"Võib-olla kasutad vale koodekit (nt. UTF-8 mitte-UTF-8 failide puhul).\n" +"Kui sa pole kindel, ära salvesta tulemust. Jätka omal vastutusel.\n" +"Mõjutatud sisendfailid asuvad %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Katkesta" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Failide avamine..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Valitud teksti lõikamine..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Valitud teksti kopeerimine lõikepuhvrisse..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Lõikepuhvri sisu sisestamine..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Reamurdmine (Loobumine keelab reamurdmise)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Rõhtse kerimisriba maks. laiuse arvutamine" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Salvesta ja jätka" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Jätka salvestamata" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Otsing lõpetatud." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Otsing lõpetatud" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Erinevuste sisendakendes pole midagi valitud." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Viga käsitsi määratud samasuse vahemiku lisamisel" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Loobu" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Vaheta %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopeeri %1->väljund" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Vaheta %1<->väljund" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Seadista..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Kataloogi avamine" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Väljundfaili valimine" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Kõik failid (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Otsitav tekst:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Tõstutundlik" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Otsi A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Otsi B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Otsi C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Otsingu väljund" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Otsi" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Regulaaravaldise test" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Automaatühendamise näidisrida:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "Kopeeri automaatühendamise testimiseks rida oma failist." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Sobivuse tulemus:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Ajaloo alguse näidisrida (alustava kommentaariga):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopeeri oma failist ajaloo alguse rida,\n" +"kaasa arvatud alustav kommentaar." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Ajaloo sortimisvõtme järjekord:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Ajalookirje alguse näidisrida (alustava kommentaarita):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopeeri oma failist ajalookirje alguse rida,\n" +"kuid ilma alustava kommentaarita." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sorteerimisvõtme tulemus:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Leiti sobivus." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Sobivust ei leitud." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Regulaaravaldises ei sobi alustavad ja lõpetavad sulud." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Lõikepuhvri andmete kirjutamine ajutisse faili nurjus." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Lõikepuhvrist" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 ei ole tavaline fail." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Ajutine fail on: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Eeltöötlus ilmselt nurjus. Kontrolli käsku:\n" +"\n" +" %1\n" +"\n" +"Praegu lülitatakse eeltöötluse käsu rakendamine välja." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Fail %1 on töötlemiseks liiga suur. Jäetakse vahele." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Reasobivuse eeltöötlus ilmselt nurjus. Kontrolli käsku:\n" +"\n" +" %1\n" +"\n" +"Praegu lülitatakse reasobivuse eeltöötluse käsu rakendamine välja." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Lõpetava tsitaadimärgi järel oodati tühikut." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Tsitaadimärgid ei sobi kokku." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Ootamatu tsitaadimärk argumendi sees." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Programmi pole määratud." \ No newline at end of file diff --git a/po/et/kdiff3fileitemactionplugin.po b/po/et/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..5c6ffe6 --- /dev/null +++ b/po/et/kdiff3fileitemactionplugin.po @@ -0,0 +1,101 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Marek Laane , 2011, 2019, 2020. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2020-01-21 19:57+0200\n" +"Last-Translator: Marek Laane \n" +"Language-Team: Estonian \n" +"Language: et\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 19.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3 ..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Võrdle failiga %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Ühenda failiga %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Salvesta '%1' hilisemaks" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Kolme faili ühendamine baasiga" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Võrdle failiga ..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Puhasta nimekiri" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Võrdle" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Kolme faili võrdlemine" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "KDiff3 menüüplugina teave ..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "KDiff3 failitoimingute plugin: autoriõigus (C) 2011: Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Kontekstimenüü laienduse kasutamine:\n" +"Kahe valitud faili lihtsaks võrdlemiseks vali \"Võrdle\".\n" +"Kui teine fail asub kuskil mujal, \"salvesta\" esimene fail hilisemaks " +"kasutamiseks. See ilmub alammenüüsse \"Võrdle failiga...\" Seejärel kasuta " +"teise faili jaoks käsku \"Võrdle failiga\".\n" +"Kolme faili ühendamiseks \"salvesta\" kõigepealt baasfail, seejärel " +"ühendatav variant ja vali \"Kolme faili ühendamine baasiga\" variandiga, " +"mida kasutatakse sihtfailina.\n" +"Sama käib kataloogide võrdlemise ja ühendamise kohta." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "KDiff3 failitoimingute plugina teave" \ No newline at end of file diff --git a/po/eu/diff_ext.po b/po/eu/diff_ext.po new file mode 100644 index 0000000..ef13aab --- /dev/null +++ b/po/eu/diff_ext.po @@ -0,0 +1,133 @@ +# Translation for diff_ext.po to Euskara/Basque (eu). +# Copyright (C) 2020, This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# KDE euskaratzeko proiektuko arduraduna . +# +# Translators: +# Iñigo Salvador Azurmendi , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-07-17 18:30+0200\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque \n" +"Language: eu\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 21.04.3\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Alderatu %1(r)ekin" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Bateratu %1(r)ekin" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "3 aldeko bateratzea oinarriarekin" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Gorde '%1' geroko" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Alderatu honekin ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Garbitu zerrenda" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Alderatu" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3 aldeko alderatzea" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "«Diff-Ext»i buruz ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Eskubide guztiak erreserbatu " +"dira.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Software hau «BSD-2-Clause» lizentziapean bana daiteke.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "KDiff3-rako hedapen batzuk (c) 2006-2013 Joachim Eibl-ek.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "«Qt5/Kf5»erako egokitzapena Michael Reeves-ek egina\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "«Diff-Ext»en orri nagusia: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "«KDiff3»rako «Diff-Ext»eri buruz (64 bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Alderatu hautatutako fitxategiak" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Alderatu '%1' '%2'(r)ekin" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Gorde '%1' ondorengo eragiketarako" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Ezin izan da KDiff3 abiarazi. KDiff3 berriz instalatu." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Komandoa" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Komando-lerroa" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext KDiff3-rako" \ No newline at end of file diff --git a/po/eu/kdiff3.po b/po/eu/kdiff3.po new file mode 100644 index 0000000..5b1edbc --- /dev/null +++ b/po/eu/kdiff3.po @@ -0,0 +1,3603 @@ +# Translation for kdiff3.po to Euskara/Basque (eu). +# Copyright (C) 2018, Free Software Foundation. +# Copyright (C) 2019-2021, This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# KDE euskaratzeko proiektuko arduraduna . +# +# Translators: +# Iñigo Salvador Azurmendi , 2018, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-07-17 18:52+0200\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque \n" +"Language: eu\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 21.04.3\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Iñigo Salvador Azurmendi" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "xalba@ni.eus" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Fitxategi egoera lortzea: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Fitxategi irakurtzea: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Fitxategi idaztea: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Memoria beteta" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Karpeta sortzea: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Karpeta kentzea: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Fitxategia kentzea: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Esteka sinbolikoa kentzea: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Fitxategi berrizendatzea: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Fitxategi kopiatzea: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Karpeta irakurtzea: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Direktorioa zerrendatzea: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Datu galtze errorea:\n" +"Errepikatzerik badago, mesedez, jarri egilearekin harremanean.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Barneko errore larria" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Barneko errore larria." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Barneko errore larria:" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "%1 fitxategia: %2 lerroa" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "%1 fitxategia: Lerro ez erabilgarri" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodeketa:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Lerro amaiera estiloa:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Oinarria)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kodeketa: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "UNIX" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Lerro amaiera estiloa: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Goiko lerroa" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Amaiera" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Ireki fitxategia" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Bestelakoak" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopiatu A -> B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopiatu B -> A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Ezabatu A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Ezabatu B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Ezabatu A eta B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Bateratu -> A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Bateratu -> B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Bateratu A-ra eta B-ra" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Ezabatu (baldin badago)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Bateratu" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Bateratu (eskuz)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Errorea: Gaztazka duten fitxategi-motak" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Errorea: Aldatua eta ezabatua" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Errorea: Datak berdinak dira baino fitxategiak ez." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Egina" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Errorea" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Alboratua." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Gorde gabe." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Lantzen..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Egiteko." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Izena" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Eragiketa" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Egoera" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Ebatzi gabea" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Ebatzia" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Ez-zuria" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Zuria" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Une honetan karpeten arteko bateratze bat egiten ari zara. Ziur zaude, " +"bateratzea galarazi eta karpeta berriz aztertu nahi duzula?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Abisua" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Berriz aztertu" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Jarraitu bateratzea" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Karpetak irekitzea huts egin du:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "A karpeta \"%1\" ez dago edo ez da karpeta bat.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "B karpeta \"%1\" ez dago edo ez da karpeta bat.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "C karpeta \"%1\" ez dago edo ez da karpeta bat.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Karpeta irekitze errorea" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Jomugako karpeta ez da A edo B-ren berdina izan behar hiru karpeta " +"bateratzen direnean.\n" +"Egiaztatu berriz jarraitu baino lehen." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parametro abisua" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Karpetak aztertzen..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "A karpeta irakurtzea" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "B karpeta irakurtzea" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "C karpeta irakurtzea" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Azpikarpeta batzuk ezin dira irakurri hemen " + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Egiaztatu azpikarpeten baimenak." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Prest." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Karpeten alderatze egoera\n" +"\n" +"Azpikarpeta kopurua: %1\n" +"Fitxategi berdinen kopurua: %2\n" +"Fitxategi ezberdinen kopurua: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Eskuz bateratze kopurua: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Honek bateratze eragiketa guztiei eragiten die." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Bateratze eragiketa guztiak aldatzen" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Prozesatzea %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Fitxategi batzuk ezin dira prozesatu." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Galaraztea gehiegizko erroreengatik." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Eragiketa hau ezin da egin une honetan." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Eragiketa ezinezkoa" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Errore bat gertatu da kopiatzean." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Bateratze errorea" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Bateratze eragiketa ezezaguna. (Hau ez da sekula gertatu behar!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Bateratze eragiketa ezezaguna." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Bateratzea hastear da.\n" +"\n" +"Hautatu \"Egin\" jarraibideak irakurri eta zer egiten ari zaren badakizu.\n" +"\"Simulatu\" hautatzeak zer gertatuko litzatekeen esango dizu.\n" +"\n" +"Jakizu programa hau oraindik beta egoeran dela eta EZ duela inolako " +"BERMERIK! Egin zure funtsezko datuen babes-kopia!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Bateratzea hasten" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Egin" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulatu" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Nabarmendutako elementuak mota ezberdina du karpeta ezberdinetan. Hautatu " +"zer egin." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Aldatze datak berdinak dira baino fitxategiak ez dira berdinak. Hautatu zer " +"egin." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Nabarmendutako elementua karpeta batean aldatu eta bestea ezabatu egin da. " +"Hautatu zer egin." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Eragiketa hau ezin da egin une honetan karpeten bateratzea egiten ari delako." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Errore bat egon da azken urratsean.\n" +"Jarraitu nahi duzu errorea eragin duen elementuarekin edo hura alboratu nahi " +"duzu?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Jarraitu bateratzea errore baten ondoren" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Jarraitu azken elementuarekin" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Alboratu elementua" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Bateratze eragiketa osatu da." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Bateratzea osatu da" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulatutako bateratzea osatu da: Egiaztatu proposatutako eragiketekin ados " +"zauden." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Errore bat gertatu da. Sakatu Ados informazio zehatza ikusteko." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Errorea: %1 ezabatzean: Babes-kopia sortzea huts egin du." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "ezabatu direktorioa modu errekurtsiboan( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "ezabatu( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Errorea: ezabatu karpeta eragiketak huts egin du karpeta irakurtzen " +"saiatzean." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Errorea: rmdir( %1 ) eragiketak huts egin du." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Errorea: ezabatze eragiketak huts egin du." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "eskuz bateratzea( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Oharra: Eskuz bateratu ondoren erabiltzaileak F7 sakatuta jarraitu " +"beharko luke." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Errorea: kopiatu( %1 -> %2 ) huts egin du. Dagoen jomuga ezabatzea huts egin " +"du." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "kopiatu-esteka( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Errorea: kopiatu-estekak huts egin du: Urruneko estekak ez dira oraindik " +"onartzen." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Errorea: kopiatu-estekak huts egin du." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopiatu( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Errorea berrizendatu( %1 -> %2 ) bitartean: ezin ezabatu dagoen jomuga." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "berrizendatu( %1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Errorea: Berrizendatzea huts egin du." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Errorea %1(r)en «makeDir» bitartean. Ezin da ezabatu dagoen fitxategia." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Errorea karpeta sortzean." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Jomuga" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Karpeta" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Mota" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Neurria" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrib" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Azken aldaketa" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Estekaren jomuga" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fitxategia" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-esteka" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ez eskuragarri" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Jomuga): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Onarria): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Jomuga): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Jomuga): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Jomuga: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Gorde karpeta bateratze egora honela..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Hasi/jarraitu karpeta bateratzea" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Exekutatu eragiketa uneko elementuarentzat" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Alderatu hautatutako fitxategia" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Bateratu uneko fitxategia" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Bateratu\n" +"Fitxategia" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Tolestu azpikarpeta guztiak" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Zabaldu karpeta guztiak" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Hautatu A elementu guztietarako" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Hautatu B elementu guztietarako" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Hautatu C elementu guztietarako" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Auto-aukeratu elementu guztientzako eragiketa" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ez dago elementu guztientzako eragiketarik" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Erakutsi fitxategi berdin-berdinak" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Fitxategi\n" +"berdin-berdinak" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Erakutsi fitxategi ezberdinak" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Erakutsi solik A-n dauden fitxategiak" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Soilik A-n dauden\n" +"fitxategiak" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Erakutsi solik B-n dauden fitxategiak" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Solik B-n dauden\n" +"fitxategiak" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Erakutsi solik C-n dauden fitxategiak" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Soilik C-n dauden\n" +"fitxategiak" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Alderatu berariaz hautatutako fitxategiak" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Bateratu berariaz hautatutako fitxategiak" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ez egin ezer" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Ezabatu A eta B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Bateratu A eta B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Ezin da zehaztu URL osoa. Ez da gurasorik zehaztu." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Ezin izan da fitxategia irakurri: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Aldi baterako %1(r)en kopia sortzea huts egin du." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "%1 irekitzea huts egin du. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Errorea %1(e)tik irakurtzean. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Babes-kopia bat egiten saiatzean, babes-kopia zaharrago bat ezabatzea huts " +"egin du.\n" +"Fitxategi-izena: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Babes-kopia bat egiten saiatzean, berrizendatzea huts egin du.\n" +"Fitxategi-izena: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Uneko konfigurazioa:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Konfiguratze aukeraren errorea:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "--auto aukera erabili da, baino ez da irteera fitxategirik zehaztu." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "--auto aukera karpetak alderatzeko ezikusia." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Gordetzea huts egin du." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Fitxategi hauek irekitzea huts egin du:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fitxategi irekitze errorea" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Dokumentuak irekitzen ditu alderatzeko..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Birzamatu" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Bateratze emaitza gordetzen du. Gatazka guztiak ebatzi behar dira!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Uneko dokumentua honela gordetzen du..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Inprimatu ezberdintasunak" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Aplikazioa ixten du" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Hautatutako atala moztu eta arbelean itsasten du" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Hautatutako atala arbelean kopiatzen du" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Arbelaren edukia itsasten du uneko kokalekuan" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Hautatu uneko leihoko guztia" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Bilatu kate bat" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Bilatu berriz katea" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Egoera-barra gaitzen/ezgaitzen du" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Konfiguratu KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Joan uneko Deltara" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Uneko\n" +"Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Joan lehen Deltara" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Lehen\n" +"Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Joan azken Deltara" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Azken\n" +"Delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(zuriuneen ezberdintasunak alboratzen ditu \"Erakutsi zuriuneak\" desgaitua " +"dagoenean)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(ez ditu zuriuneen ezberdintasunak alboratzen \"Erakutsi zuriuneak\" " +"desgaitua dagoenean ere)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Joan aurreko Deltara" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Aurreko\n" +"Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Joan hurrengo Deltara" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Hurrengo\n" +"Delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Joan aurreko gatazkara" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Aurreko\n" +"gatazka" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Joan hurrengo gatazkara" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Hurrengo\n" +"gatazka" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Joan hurrengo ebatzi gabeko gatazkara" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Aurreko\n" +"ebatzi gabea" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Joan hurrengo ebatzi gabeko gatazkara" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Hurrengo\n" +"ebatzi gabea" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Hautatu A-ko lerroa(k)" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Hautatu\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Hautatu B-ko lerroa(k)" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Hautatu\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Hautatu C-ko lerroa(k)" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Hautatu\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Automatikoki joan ebatzi gabeko hurrengo gatazkara sorburua hautatu ondoren" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Auto\n" +"hurrengoa" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Erakutsi zuriune eta tabulatze karaktereak" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Zuriune\n" +"karaktereak" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Erakutsi zuriuneak" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Zuriune\n" +"Deltak" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Erakutsi lerro zenbakiak" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Lerro\n" +"zenbakiak" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automatikoki ebatzi gatazka erraz guztiak" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Ezarri Deltak gatazkei" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Exekutatu adierazpen erregularren bateratze automatikoa" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automatikoki ebatzi historiako gatazkak" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Zatitu ezberdintasuna hautapenean" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Bildu hautatutako ezberdintasunak" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Erakutsi A leihoa" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Erakutsi B leihoa" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Erakutsi C leihoa" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Ikuspegi orokor arrunta" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A vs. B ikuspegi orokorra" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A vs. C ikuspegi orokorra" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B vs. C ikuspegi orokorra" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Itzulbiratu ezberdintasun leihoak" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Gehitu ezberdintasunak eskuz lerrokatzea" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Garbitu ezberdintasunak eskuz lerrokatze guztiak" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokua hurrengo leihora" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokua aurreko leihora" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Txandakatu zatitze orientazioa" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Karpeta eta testu pantaila-ikuspegi zatitua" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Txandakatu karpeta eta testu ikuspegien artean" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Bateratzearen emaitza ez da gorde." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Gorde eta irten" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Irten gorde gabe" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Bateratzearen emaitza gordetzea huts egin du." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Une honetan karpeten bateratzea egiten ari zara. Ziur zaude galarazi nahi " +"duzula?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Fitxategia gordetzen..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Fitxategia beste fitxategi-izen batekin gordetzen..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Gorde honela..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Inprimatzea ez da inplementatu." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Inprimatzen..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "%2(e)tik %1. orrialdea inprimatzen" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Hautapean)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Inprimatzea osatu da." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Inprimatzea galarazi da." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Irteten..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Tresna-barra txandakatzen..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Txandakatu egoera-barra..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "SVG irudiak bistaratzeko KPart bat" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Konfiguratu KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Ezin izan da hasieratu KDiff3 zatia.\n" +"Hau gertatu ohi da instalazioaren arazo baten ondorioz. Irakurri sorburu " +"paketeko README-fitxategia zehaztasun bila." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fitxategia" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Kar&peta" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Uneko elementuaren bateratze eragiketa" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Uneko elementuaren sinkronizatze eragiketa" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&ugimendua" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Ezberdintasunen ikuspegia" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Bat&eratu" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Leihoa" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Tresna-barra nagusia" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ez-ikusia. (Erabiltzaileak zehaztu du.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Fitxategiak eta karpetak alderatzeko eta bateratzeko tresna" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 eratorpena" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Bateratu sarrerakoa." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Oinarri fitxategi esplizitua. Zenbait tresnekin bateragarri izateko." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" +"Irteerako fitxategia. Berarekin dakar -m. Adib.: -o fitxategiberria.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Irteerako fitxategia, beste behin. (Zenbait tresnekin bateragarri izateko)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Interfaze grafikorik gabe gatazka guztiak auto-ebatzi ezkero. ( -o " +"fitxategia behar du)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "--auto ezikusi eta erakutsi beti GUI." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ezikusia." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Izen ikusgaiaren ordezkapena sarrerako 1 fitxategirako (oinarria)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Izen ikusgaiaren ordezkapena sarrerako 2 fitxategirako." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Izen ikusgaiaren ordezkapena sarrerako 3 fitxategirako." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Ordezko izen ikusgaiaren ordezkapena. Hornitu hau behin sarrera guztietarako." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Gainezarri konfiguratze ezarpen bat. Erabili behin ezarpen bakoitzarentzat. " +"Adib.: --cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Erakutsi konfiguratze ezarpen eta uneko balioaren zerrenda." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Erabili konfiguratze fitxategi ezberdin bat." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Ireki beharreko fitxategi1 (oinarria, --base bidez zehazten ez bada)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Ireki beharreko fitxategi2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Ireki beharreko fitxategi3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Begiratu kdiff3 --help onartutako aukerak ikusteko." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Ez da fitxategi ez-arruntak eta fitxategi arruntak alderatzeko gai." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Esteka eta fitxategi arrunten nahasketa." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Esteka: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Neurria. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data eta neurria: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Fitxategia alderatzen..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Hautatu A leku guztietan" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Hautatu B leku guztietan" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Hautatu C leku guztietan" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Hautatu A ebatzi gabeko gatazka guztiekin" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Hautatu B ebatzi gabeko gatazka guztiekin" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Hautatu C ebatzi gabeko gatazka guztiekin" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Hautatu A ebatzi gabeko zuriune gatazka guztiekin" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Hautatu B ebatzi gabeko zuriune gatazka guztiekin" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Hautatu C ebatzi gabeko zuriune gatazka guztiekin" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Ebatzi gabe gelditzen den gatazka kopurua: %1 (haietatik %2 zuriuneak dira)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Irteerakoa aldatu egin da.\n" +"Jarraitzen baduzu zure aldaketak galduko dira." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Sarrerako fitxategi guztiak bitarrean berdinak dira." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Sarrerako fitxategi guztiek testu bera dute." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "%1 eta %2 fitxategiak bitarrean berdinak dira.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "%1 eta %2 fitxategiek testu bera dute.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Gatazka kopuru osoa: %1\n" +"Automatikoki ebatzitako gatazka kopurua: %2\n" +"Ebatzi gabeko gatazka kopurua: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Gatazkak" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Gatazka guztiak ez dira konpondu oraindik.\n" +"Fitxategia ez da gorde." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Gelditzen diren gatazkak" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Lerro amaiera estiloaren gatazka bat dago. Aukeratu lerro amaiera estiloa " +"eskuz.\n" +"Fitxategia ez da gorde." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Babes-kopia sortzea huts egin du. Fitxategia ez da gorde." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Fitxategi gordetze errorea" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Errorea idaztean." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Irteerakoa:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Aldatua]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Gordetzeko kodeketa:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Gatazka" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Aren kodeka: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Bren kodeka: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Cren kodeka: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Elkarrizketa-koadroa" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Oinarria):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Irteerakoa (aukerakoa):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fitxategia..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Trukatu/kopiatu izenak..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Aukerakoa):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Karpeta..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Bertsio-kontroleko historiako sarrera batek hainbat lerro ditu.\n" +"Zehaztu aurreneko lerroa (aurretiko iruzkinik gabe) antzemateko adierazpen " +"erregularra.\n" +"Erabili parentesiak ordenatzeko erabili nahi dituzun teklak taldekatzeko.\n" +"Hutsik utziz gero, KDiff3-k jokatuko du lerro hutsek historiako sarrerak " +"banatzen dituztelakoan.\n" +"Begiratu dokumentazioa zehaztasun bila." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Historiako hasierako sarrerarako erabilitako adierazpen erregularreko " +"parentesi pare bakoitzak\n" +"sailkatzeko erabil daitekeen gako bat biltzen du.\n" +"Zehaztu gako-zerrenda (agerpen ordenaren arabera zenbakitzen\n" +"dira 1etik aurrera) «;» banatzeko erabiliz (adib. «4,5,6,1,2,3,7»).\n" +"Hutsik utziz gero, ez da sailkatzerik egingo.\n" +"Begiratu dokumentazioa zehaztasun bila." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"KDiff3-k automatikoki sorburu bat hautatu behar duen lerroetarako adierazpen " +"erregularra.\n" +"Gatazka duen lerro bat adierazpen erregularrarekin bat datorrenean\n" +"- erabilgarri badago - C, bestela B hautatuko da." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Adierazpen erregularra bertsio-kontroleko historiako sarreraren " +"hasierarako.\n" +"Lerro honek «$Log$» gako-hitza izan ohi du.\n" +"Lehenetsitako balioa: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Azeri arre-gorrixka arinak jauzi egiten du ibaian gora\n" +"baina oilo gorri txikiak dardara ikaratuta ihes egiten du.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Aldatu letra-tipoa" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Font: %1, %2, %3\n" +"\n" +"Adibidea:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Aldatu hau, ASCII ez diren karaktereak ez badira ondo bistaratzen." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Konfiguratu" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Letra-tipoa" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Editore eta ezberdintasun irteerako letra-tipoa" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Aplikazioaren letra-tipoa" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Fitxategi ikuspegiaren letra-tipoa" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Kolorea" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Koloreen ezarpenak" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editore eta ezberdintasun ikuspegiak:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Aurrealdeko kolorea:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Atzealdeko kolorea:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Ezberdintasun atzealdeko kolorea:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "A kolorea:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "B kolorea:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "C kolorea:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Gatazka kolorea:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Uneko barrutiaren atzealdeko kolorea:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Uneko barrutiko ezberdintasunen atzealdeko kolorea:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Eskuz lerrokatutako ezberdintasun barrutien kolorea:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Karpetak alderatzeko ikuspegia:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Fitxategi berrienaren kolorea:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Kolore hau aldatzea indarrean egongo da karpeten hurrengo alderatzea hastean." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Fitxategi zaharrenaren kolorea:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Adin ertaineko fitxategiaren kolorea:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Falta diren fitxategientzako kolorea:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editorea" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Editorearen jokabidea" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabulatzeak zuriuneak txertatzen ditu" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Piztuta: Tabulatzea sakatzea zuriune kopuru egokia sortzen du.\n" +"Itzalita: Tabulatze karaktere bat txertatuko da." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tabulatze neurria:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Koskatze automatikoa" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Piztuta: Aurreko lerroaren koskatzea erabiliko da lerro berri baterako.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Automatikoki kopiatu hautapena" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Piztuta: Hautapen guztiak berehala kopiatzen dira arbelera.\n" +"Itzalita: Esplizituki kopiatu behar duzu adib. Ctrl-C bidez." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Auto-hauteman" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Lerro amaierak ezartzen ditu editatutako fitxategi bat gordetzen denerako.\n" +"DOS/Windows: CR+LF; UNIX: LF; non CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Ezberdintasuna" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Ezberdintasun ezarpenak" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ez-ikusi zenbakiak (tratatu zuriuneak bailiran)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ez-ikusi zenbaki karaktereak lerroak parekatzeko fasean. («ez-ikusi " +"zuriuneak» aukeraren antzekoa)\n" +"Zenbakizko datuak dituzten lerroak alderatzen lagun lezake." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ez-ikusi C/C++ iruzkinak (tratatu zuriuneak bailiran)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tratatu C/C++ iruzkinak zuriuneak bailiran." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ez bereizi maiuskulak (tratatu zuriuneak bailiran)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Tratatu maius/minus ezberdintasunak zuriune aldaketak bailiran. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Aurre-prozesatzailearen komandoa:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Erabitzaileak zehaztutako aurre-prozesatzea. (Begiratu dokumentuak " +"zehaztasun bila)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Lerro bat-etortze aurre-prozesatzailearen komandoa:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Aurre-prozesatzaile hau erabiltzen da soilik lerroen parekatzean.\n" +"(Begiratu dokumentuak zehaztasun bila)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Saiatu gogor (motelagoa)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Kanpoko ezberdintasunerako --minimal aukera gaitzen du.\n" +"Fitxategien azterketa askoz motelagoa izango da." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Lerrokatu B eta C sarrerako 3 fitxategietarako" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Saiatu B eta C lerrokatzen sarrerako 3 fitxategi alderatzean edo " +"bateratzean.\n" +"Ez da gomendatzen bateratzeko, bateratzea zaildu dezakeelako.\n" +"(Lehenetsia itzalita da)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Bateratu" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Bateratze ezarpenak" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Automatikoki aurreratze atzerapena (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Auto-aurreratze moduan uneko hautapenaren emaitza adierazitako denbora \n" +"erakusten da, hurrengo gatazkara jauzi egin aurretik. Barrutia: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Erakutsi informazio elkarrizketa-koadroak" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" +"Erakutsi elkarrizketa-koadro bat gatazka kopuruari buruzko informazioarekin." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Zuriuneen 2-fitxategiren bateratze lehenetsia:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Hautapena eskuz" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Utzi bateratzeko algoritmoari zuriuneen aldaketa soilerako automatikoki " +"sarrerako bat hautatzen." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Zuriuneen 3-fitxategiren bateratze lehenetsia:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automatikoki bateratzeko adierazpen erregularra" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Auto-bateratze adierazpen erregularra:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Exekutatu adierazpen erregularraren auto-bateratzea bateratzea hastean" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Exekutatu bateratzea auto-bateratze adeirazpen erregularretarako\n" +"berehala bateratze bat hasten denean.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Bertsio-kontroleko historia bateratzea" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Historia hasierako adierazpen erregularra:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Historia sarrera hasierako adierazpen erregularra:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Historia bateratze sailkapena" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Sailkatu bertsio kontroleko historia gako baten arabera." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Historiako sarrera hasiera sailkatzeko gakoen ordena:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Bateratu bertsio-kontroleko historia bateratzea hastean" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Exekutatu bertsio-kontroleko historiako bateratze automatikoa bateratzea " +"hastean." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Historiako gehienezko sarrera kopurua:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Moztu adierazitako zenbakiaren ondoren. Erabili -1 sarrera kopuru " +"mugagaberako." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Probatu zure adierazpen erregularrak" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Bateratze komando hutsala:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Zehazten bada, script hau auto-bateratu ondoren exekutatzen da\n" +"beste aipatzeko aldaketarik hauteman ez denean.\n" +"Parametro hauekin deitua: fitxategiIzena1 fitxategiIzena2 fitxategiIzena3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Auto-gorde eta irten gatazkarik gabeko bateratzeetan" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"KDiff3 fitxategi bateratze baterako komando-lerrotik abiatu eta gatazka\n" +"guztiak erabiltzailearen parte-hartzerik gabe ebatzi badaitezken, orduan, " +"automatikoki gorde eta irten.\n" +"(«--auto» komando-lerroko aukeraren antzekoa)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Karpeta errekurtsiboak" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Azpikarpetak aztertu edo ez." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Fitxategi eredua(k):" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Aztertu beharreko fitxategien eredua(k). \n" +"Zernahitarako karaktereak: '*' eta '?'\n" +"Hainbat eredu zehaztu daitezke banatzekoa erabiliz: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Fitxategien alderantzizko eredua(k):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Analisitik baztertu beharreko fitxategien eredua(k).\n" +"Zernahitarako karaktereak: '*' eta '?'\n" +"Hainbat eredu zehaztu daitezke bereiztekoa erabiliz: ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Karpeten alderantzizko eredua(k):" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Analisitik baztertu beharreko karpeten eredua(k).\n" +"Zernahitarako karaktereak: '*' eta '?'\n" +"Hainbat eredu zehaztu daitezke bereiztekoa erabiliz: ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Erabili «ignore» fitxategia" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Alderantzizko eredua hedatzen dio sorburu kontrolak ezikusi egingo liokeen " +"guztiari.\n" +"«ignore» fitxategi lokalen bidez karpetena berariazkoa izan daiteke." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Aurkitu ezkutuko fitxategiak eta karpetak" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Ezkutuko fitxategiak eta karpetak aurkitzen ditu." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Jarraitu fitxategien estekei" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Piztuta: Alderatu estekak erakusten duen fitxategia.\n" +"Itzalita: Alderatu estekak." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Jarraitu karpeten estekei" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Gaituta: Alderatu estekak erakusten duen karpeta.\n" +"Ezgaituta: Alderatu estekak." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Fitxategi-izen alderatzea maiuskulak bereiziz" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Karpeta parekatzeak fitxategiak edo karpetak parekatuko ditu haien izenak " +"bat datozenean.\n" +"Ezarri aukera hau izenetan maiuskulak/minuskula bereizi behar direnean. " +"(Windows-erako lehenetsia itzalita da, bestela piztuta)." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Zabaldu azpikarpeta guztiak zamatzean" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Gaituta: Zabaldu azpikarpeta guztiak karpeta alderatzea abiatzean.\n" +"Ezgaituta: Utzi azpikarpetak tolestuta." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Sahiestu karpeta-egoera txostena" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Gaituta: Ez erakutsi karpeten alderatze egoera.\n" +"Ezgaituta: Erakutsi egoera elkarrizketa-koadroa abiatzean." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Fitxategi alderatze modua" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Alderatze bitarra" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Fitxategi bakoitzaren alderatze bitarra. (lehenetsia)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Azterketa osoa" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Egin azterketa oso bat eta erakutsi estatistiken informazioa zutabe " +"gehigarrian.\n" +"(Alderatze bitar bat baino motelagoa, askoz motelagoa fitxategi bitarrekin)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Fidatu neurriaz eta aldaketa dataz (ez segurua)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Uste izan fitxategiak berdinak direla aldatze data eta fitxategi luzera " +"berdinak direnean.\n" +"Eduki bereko baino aldaketa data ezberdineko fitxategiak ezberdin gisa " +"agertuko dira.\n" +"Baliagarria karpeta handietarako edo sare mantsoetarako." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Fidatu neurriaz eta dataz, baino erabili alderatze bitarra datak ez badatoz " +"bat (ez segurua)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Uste izan fitxategiak berdinak direla aldaketa data eta fitxategi luzera " +"berdinak direnean.\n" +"Datak ez badatoz bat baino neurriak bai, erabili alderatze bitarra.\n" +"Baliagarria karpeta handietarako edo sare mantsoetarako." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Fidatu neurriaz (ez segurua)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Uste izan fitxategiak berdinak direla haien fitxategi luzera berdina " +"denean.\n" +"Baliagarria karpeta handietarako edo sare mantsoetarako, zama-jaistean data " +"aldatzen denerako." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Sinkronizatu karpetak" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Fitxategiak bi karpetetan gordetzea eskaintzen du\n" +"ondoren bi karpetak berdinak izan daitezen.\n" +"Bi karpeta, jomuga zehaztu gabe, alderatzean baino ez dabil." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Zuriuneen ezberdintasunak berdin gisa hartuak" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Fitxategien ezberdintasuna soilik zuriuneetan badago uste izan berdinak " +"direla.\n" +"Hau aktibo dago soilik «azterketa osoa» hautatzen denean." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopiatu berriagoa bateratu ordez (ez segurua)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Ez begiratu barruan, hartu fitxategi berriagoa eta kito.\n" +"(erabili hau soilik zertan ari zaren badakizu!)\n" +"Eraginkorra soilik bi karpeta alderatzean." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Babes-kopia fitxategiak (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Fitxategi bat fitxategi zahar batean gordeko balitz, fitxategi zaharra\n" +"ezabatu ordez, «.orig» luzapen batekin gordeko litzateke." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Eskualde ezarpenak" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Erabili kodeketa bera denerako:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Hau gaituta aurreneko kodeketa aldatzean guztiak aldatzen laguntzen du.\n" +"Hau ezgaitu banakako ezarpen ezberdinak behar direnean." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Oharra: Bertako kodeketa \"%1\" da" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Aren fitxategi kodeketa:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Gaitzen bada Unicode (UTF-16 edo UTF-8) kodeketa hautemango da.\n" +"Fitxategia ez bada Unicode, hautatutako kodeketa erreserbako gisa erabiliko " +"da.\n" +"(Unicode hautematea fitxategi bateko lehenengo byten araberakoa da)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Auto-antzeman unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Bren fitxategi kodeketa:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Cren fitxategi kodeketa:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Bateratzearen irteerako eta gordetzeko fitxategi kodeketa:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Auto-hautatu" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Gaituz gero, sarrerako fitxategietako kodeketa erabiltzen da.\n" +"Zalantzazko kasuetan erabiltzaileari elkarrizketa bidez eskatuko zaio " +"gordetzeko kodeketa hautatzeko." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Fitxategi kodeketa aurre-prozesatzaile fitxategietarako:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Eskuinetik ezkerrerako hizkuntza" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Hizkuntza batzuk eskuinetik ezkerrera irakurtzen dira.\n" +"Ezarpen honek erakuslea eta editorea horren arabera aldatuko ditu." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Bateratzea" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Bateratze ezarpenak" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Ez-ikusi beharreko komando lerroko aukerak:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Beste tresna batzuek KDiff3 erabiltzen dutenean jaramon egin behar ez zaien " +"komando-lerroko aukeren zerrenda.\n" +"Hainbat balio zehaztu daitezke «;» bidez banatuz gera\n" +"Honek «Aukera ezezaguna» errorea ekidingo du." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Irten ere «ihes» teklaren bidez" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Irteteko metodo azkarra.\n" +"«Ihes» tekla erabiltzen ohituak daudenentzat." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Honek aukera guztiak berrezartzen ditu. Ez soilik uneko gaikoak." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Aurre-prozesatzailearen komandoa:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Hautatu dituzun aukera hauek datuak alda ditzakete:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Seguruenik hau ez da bateratze batean nahi izanen.\n" +"Ezarpen hauek desgaitu nahi dituzu edo ezarpen hauek aktibatuta jarraitu " +"nahi duzu?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Aukera ez segurua bateratzeko" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Erabili aukera hauek bateratze garaian" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Desgaitu aukera ez seguruak" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A zamatzen" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "A zamatzea: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B zamatzen" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "B zamatzea: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Ezberdintasuna: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Lerro ezberdintasuna: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C zamatzen" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "C zamatzea: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Ezberdintasuna: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Ezberdintasuna: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Lerro ezberdintasuna: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Lerro ezberdintasuna: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Sarrerako fitxategi guztiek testu bera dute, baino ez dira bitarrean " +"berdinak." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"%1 eta %2 fitxategiek testu bera dute, baino ez dira bitarrean berdinak.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Sarrerako fitxategi batzuk ez dirudite testu soil aratzak.\n" +"Ohartu KDiff3 bateratzea ez dagoela datu bitarretarako pentsatua.\n" +"Jarraitu zeure ardurapean." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Sarrerako karaktere batzuk ezin izan dira bihurtu unicodera.\n" +"Baliteke erabiltzen ari zaren codec-a okerrekoa izatea (adib. UTF-8 UTF-8 ez " +"diren fitxategiekin). Jarraitu zeure ardurapean.\n" +"Eragindako sarrerako fitxategiak hemen daude: %1" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Galarazi" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Fitxategiak irekitzen..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Hautapena mozten..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Hautapena arbelera kopiatzen..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Arbelaren edukiak txertatzen..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Itzulbira («Utzi»k itzulbiratzea desgaitzen du)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Labaintze-barra horizontalaren gehieneko zabalera kalkulatzen" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Gorde eta jarraitu" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Jarraitu gorde gabe" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Bilaketa osatu da." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Bilaketa osatua" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ez dago ezer hautatuta diff sarrerako leihoetan." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Errorea eskuz «diff» barrutia gehitzean" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Utzi" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Trukatu %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopiatu %1->irteera" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Trukatu %1<->irteera" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Konfiguratu..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Ireki karpeta" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Hautatu irteera-fitxategia" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "denak/fitxategi denak (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Bilatu testua:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Bereizi maiuskulak" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Bilatu A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Bilatu B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Bilatu C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Bilatu irteera" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Bilatu" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Adierazpen erregularren probatzailea" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Adibide auto-bateratze lerroa:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Bateratze automatikoa probatzeko, kopiatu lerro bat zure fitxategietan " +"erabiltzen den bezala." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Parekatze emaitza:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Historiako hasierako lerroaren adibidea (aurretiko iruzkina duena):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopiatu historiako hasierako lerro bat zure fitxategietan erabiltzen den " +"bezala,\n" +"aurretiko iruzkina barne." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Historiako sailkatze gakoen ordena:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Historia sarrerako hasierako lerroaren adibidea (hasierako iruzkinik gabe):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopiatu historia sarrera baten hasierako lerroa zure fitxategietan\n" +"erabili gisa, baino kanporatu hasierako iruzkina." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sailkatze gakoaren emaitza:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Parekatze zuzena." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Parekatzeak huts egin du." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Irekiera eta itxiera parentesiak ez datoz bat adierazpen erregularrean." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Arbeleko datuak aldi baterako fitxategira kopiatzea huts egin du." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Arbeletik" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 ez da fitxategi arrunta." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Aldi baterako fitxategia da: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Aurreprozesatzeak agian huts egin du. Egiaztatu komando hau:\n" +"\n" +" %1\n" +"\n" +"Aurreprozesatzeko komandoa desgaitua egonen da orain." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "%1 fitxategia prozesatzeko handiegia. Alboratzen." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Lerro-bat-etortze-aurreprozesatzea agian huts egin du. Egiaztatu komando " +"hau:\n" +"\n" +" %1\n" +"\n" +"Lerro-bat-etortze-aurreprozesatzeko komandoa desgaitu egingo da orain." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Zuriunea espero zen itxierako komatxoaren atzetik." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Itxi gabeko komatxoa." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Espero ez ziren komatxoak daude argumentuan." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Ez da programarik zehaztu." \ No newline at end of file diff --git a/po/eu/kdiff3fileitemactionplugin.po b/po/eu/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..69b44c9 --- /dev/null +++ b/po/eu/kdiff3fileitemactionplugin.po @@ -0,0 +1,106 @@ +# Translation for kdiff3fileitemactionplugin.po to Euskara/Basque (eu). +# Copyright (C) 2021, This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# KDE euskaratzeko proiektuko arduraduna . +# +# Translators: +# Iñigo Salvador Azurmendi , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-07-17 18:57+0200\n" +"Last-Translator: Iñigo Salvador Azurmendi \n" +"Language-Team: Basque \n" +"Language: eu\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 21.04.3\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Alderatu %1(r)ekin" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Bateratu %1(r)ekin" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Gorde '%1' geroko" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3 aldeko bateratzea oinarriarekin" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Alderatu honekin..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Garbitu zerrenda" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Konparatu" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3 aldeko alderatzea" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "KDiff3 menu pluginari buruz..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"KDiff3 fitxategi elementuen ekintza plugina: Copyright (C) 2011 Joachim " +"Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Testuinguru menuko hedapena erabiltzea:\n" +"Hautatutako bi fitxategi alderatzeko «Alderatu» aukeratu.\n" +"Beste fitxategia beste nonbait badago, «Gorde» lehenengo fitxategia geroko. " +"«Alderatu honekin...» azpimenuan azalduko da. Ondoren erabili «Alderatu " +"honekin» bigarren fitxategian.\n" +"3 aldeko bateratzerako aurrena «Gorde» oinarri fitxategia, ondoren bateratu " +"beharreko adarra eta azkenik aukeratu «3 aldeko bateratzea oinarriarekin» " +"jomuga gisa erabiliko den beste adarrean.\n" +"Gauza bera egin behar da karpetak alderatzeko eta bateratzeko." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "KDiff3 fitxategi elementuen ekintza pluginari buruz" \ No newline at end of file diff --git a/po/fi/diff_ext.po b/po/fi/diff_ext.po new file mode 100644 index 0000000..aa051c9 --- /dev/null +++ b/po/fi/diff_ext.po @@ -0,0 +1,130 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# Tommi Nieminen , 2018, 2020, 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-05-20 22:39+0300\n" +"Last-Translator: Tommi Nieminen \n" +"Language-Team: Finnish \n" +"Language: fi\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 21.04.1\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Vertaa tiedostoon %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Yhdistä tiedostoon %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Kolmivaiheinen yhdistäminen pohjaan" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Tallenna ”%1” tuonnemmaksi" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Vertaa tiedostoon…" + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Tyhjennä luettelo" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Vertaa" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Kolmivaiheinen vertailu" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Tietoa diff-laajennuksesta…" + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-laajennuksen tekijänoikeudet © 2003–06 Sergey Zorin. Kaikki oikeudet " +"pidätetään.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Ohjelmaa voi levittää BSD-2-lisenssin mukaisesti.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Jotkin KDiff3-laajennukset © 2006–13 Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Siirros Qt5:een/Kf5:een: Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Diff-laajennuksen kotisivu: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Tietoa KDiff3:n (64-bittisestä) diff-laajennuksesta" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Vertaa valittuja tiedostoja" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Vertaa tiedostoa ”%1” tiedostoon ”%2”" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Tallenna ”%1” myöhemmin käsiteltäväksi" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "KDiff3:n käynnistys epäonnistui. Asenna se uudelleen." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Komento" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Komentorivi" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "KDiff3:n diff-laajennus" \ No newline at end of file diff --git a/po/fi/kdiff3.po b/po/fi/kdiff3.po new file mode 100644 index 0000000..732cd10 --- /dev/null +++ b/po/fi/kdiff3.po @@ -0,0 +1,3825 @@ +# KDE Finnish translation sprint participants: +# Author: Artnay +# Author: Lliehu +# Author: Niklas Laxström +# Tommi Nieminen , 2012, 2013, 2015, 2016, 2018, 2019, 2020, 2021. +# Lasse Liehu , 2012, 2013, 2014, 2016. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-05-20 22:40+0300\n" +"Last-Translator: Tommi Nieminen \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2012-12-01 22:21:44+0000\n" +"X-Generator: Lokalize 21.04.1\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Tommi Nieminen" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "translator@legisign.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Noudetaan tiedoston tilaa: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Luetaan tiedostoa: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Kirjoitetaan tiedostoa: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Muisti lopussa" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Tehdään kansio: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Poistetaan kansio: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Poistetaan tiedostoa: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Luodaan symbolista linkkiä: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Muutetaan tiedoston nimeä: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopioidaan tiedostoa: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Luetaan kansiota: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Luetellaan kansiota: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Tiedonmenetysvirhe:\n" +"Jos se on toistettavissa, ota yhteys tekijään.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Vakava sisäinen virhe" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Vakava sisäinen virhe." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Vakava sisäinen virhe.: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Tiedosto %1: rivi %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Tiedosto %1: Rivi ei saatavilla" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Koodaus:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Rivinlopetustapa:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (perusta)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Koodaus: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Rivinlopetustapa: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Ylin rivi" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Loppu" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Avaa tiedosto" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8-bittinen" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Muu" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopioi A B:hen" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopioi B A:hen" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Poista A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Poista B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Poista A ja B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Yhdistä A:han" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Yhdistä B:hen" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Yhdistä A:han ja B:hen" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Poista (jos olemassa)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Yhdistä" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Yhdistä (käsin)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Virhe: Tiedostotyypit ristiriidassa-" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Virhe: Muuttunut ja poistettu" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Virhe: Päiväykset yhtenevät mutta tiedostot eivät." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Valmis" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Virhe" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Ohitettu." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Ei tallennettu." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Käynnissä…" + +# *** TARKISTA: Kun tietäisi kontekstin, olisi helpompi keksiä käännös! +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Tehtäviä." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nimi" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Toiminto" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Tila" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Ratkaisematon" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Ratkaistu" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Ei-tyhje" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Tyhje" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Kansioita yhdistetään paraikaa. Haluatko varmasti keskeyttää yhdistämisen ja " +"tutkia kansion uudelleen?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Varoitus" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Tutki uudelleen" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Jatka yhdistämistä" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Kansioiden avaus epäonnistui:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "A-kansiota ”%1” ei ole olemassa tai se ei ole kansio.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "B-kansiota ”%1” ei ole olemassa tai se ei ole kansio.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "C-kansiota ”%1” ei ole olemassa tai se ei ole kansio.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Kansion avausvirhe" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Kohdekansio ei saa olla sama kuin A tai B kolmea kansiota yhdistettäessä.\n" +"Tarkista vielä, ennen kuin jatkat." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parametrivaroitus" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Tutkitaan kansioita…" + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Luetaan kansiota A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Luetaan kansiota B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Luetaan kansiota C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Jotkin alikansiot eivät ole luettavissa kansiossa" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Tarkista alikansioiden oikeudet." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Valmis." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Kansionvertailun tila\n" +"\n" +"Alikansioita: %1\n" +"Yhteneviä tiedostoja: %2\n" +"Eroavia tiedostoja: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Käyttäjän tekemiä yhdistämisiä: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Tämä vaikuttaa kaikkiin yhdistämistoimintoihin." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Muutetaan kaikkia yhdistämistoimintoja" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Käsitellään: %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Joitakin tiedostoja ei voitu käsitellä." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Keskeytetään, koska virheitä on liikaa." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Tämä toiminto ei ole nyt mahdollinen." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Toiminto ei mahdollinen" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Kopioitaessa sattui virhe." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Yhdistämisvirhe" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Tuntematon yhdistämistoiminto. (Näin ei koskaan pitäisi käydä!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Tuntematon yhdistämistoiminto." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Yhdistäminen on alkamassa.\n" +"\n" +"Valitse ”Toteuta”, jos olet lukenut ohjeet ja tiedät, mitä teet.\n" +"”Simuloi” näyttää sinulle, mitä tulee tapahtumaan.\n" +"\n" +"Huomaa, että ohjelma on yhä beetavaiheessa eikä MINKÄÄNLAISTA TAKUUTA " +"anneta! Tee varmuuskopiot tärkeistä tiedoistasi!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Aloitetaan yhdistäminen" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Toteuta" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuloi" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "Korostettu kohde on kansioissa eri tyyppinen. Valitse, mitä tehdään." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Tiedostojen muutospäivämäärät ovat samat mutta tiedostot eivät. Valitse, " +"mitä tehdään." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Korostettua kohdetta on toisessa kansiossa muutettu ja toisesta se on " +"poistettu. Valitse, mitä tehdään." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "Toiminto ei juuri nyt ole mahdollinen, koska kansioita yhdistetään." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Viime vaiheessa sattui virhe.\n" +"Haluatko jatkaa kohteesta, joka aiheutti virheen, vai ohittaa tämän kohteen?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Jatka yhdistämistä virheen jälkeen" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Jatka viimeisimmästä kohteesta" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Ohita kohde" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Yhdistämistoiminto valmis." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Yhdistäminen valmis" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simuloitu yhdistäminen valmis: Tarkista, että olet samaa mieltä ehdotettujen " +"toimintojen kanssa." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Sattui virhe. Näet lisätietoja painamalla OK." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Virhe: Poistettaessa kohdetta %1: Varmuuskopion luonti epäonnistui." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "poista kansio alikansioineen (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "poista (%1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Virhe: kansion poistaminen epäonnistui yritettäessä lukea kansiota." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Virhe: rmdir-toimenpide (%1) epäonnistui." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Virhe: poistotoimenpide epäonnistui." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "yhdistäminen itse (%1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Huomaa: Itse tehdyn yhdistämisen jälkeen käyttäjän tulisi jatkaa " +"painamalla F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Virhe: kopiointi %1 -> %2 epäonnistui. Olemassa olevaa kohdetta ei voida " +"poistaa." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "kopioi linkki %1 -> %2" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Virhe: linkin kopiointi epäonnistui. Etälinkkejä ei vielä tueta." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Virhe: linkin kopiointi epäonnistui." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopioi %1 -> %2" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Virhe muutettaessa nimeä %1 -> %2: Olemassa olevaa kohdetta ei voida poistaa." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "muuta nimeä %1 -> %2" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Virhe: Nimen muuttaminen epäonnistui." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Virhe komennossa luotaessa kansiota %1. Olemassa olevaa tiedostoa ei voida " +"poistaa." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Virhe kansiota luotaessa." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Kohde" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Kansio" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tyyppi" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Koko" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Määr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Viim. muutos" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Linkin kohde" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Tiedosto" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-linkki" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ei saatavilla" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (kohde): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (perusta): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (kohde): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (kohde): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Kohde: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Tallenna kansioiden yhdistämisen tila nimellä…" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Aloita kansioiden yhdistäminen tai jatka sitä" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Käynnistä toimenpide nykyiselle tietueelle" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Vertaa valittua tiedostoa" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Yhdistä nykyinen tiedosto" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Yhdistä\n" +"tiedosto" + +# *** TARKISTA: Vai onko ympäristö sellainen, että jokin *toimenpide* voi kohdistua alikansioihinkin? +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Supista alikansiot" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Laajenna alikansiot" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Valitse A kaikkiin kohteisiin" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Valitse B kaikkiin kohteisiin" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Valitse C kaikkiin kohteisiin" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Valitse toiminto automaattisesti kaikkiin kohteisiin" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ei toimintoa kaikkiin kohteisiin" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Näytä identtiset tiedostot" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identtiset\n" +"tiedostot" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Näytä eroavat tiedostot" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Näytä vain A:ssa olevat tiedostot" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Tiedostot\n" +"vain A:ssa" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Näytä vain B:ssä olevat tiedostot" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Tiedostot\n" +"vain B:ssä" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Näytä vain C:ssä olevat tiedostot" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Tiedostot\n" +"vain C:ssä" + +# Mahdoton sanoa, verrataanko vai valitaanko eksplisiittisesti :/ +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Vertaa eksplisiittisesti valittuja tiedostoja" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Yhdistä eksplisiittisesti valitut tiedostot" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Älä tee mitään" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Poista A ja B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Yhdistä A:han ja B:hen" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Täyttä verkko-osoitetta ei voitu määrittää. Yläkansiota ei määritetty." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Tiedoston luku epäonnistui: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Väliaikaiskopion luominen tiedostosta %1 epäonnistui." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Tiedoston %1 avaus epäonnistui. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Virhe luettaessa tiedostosta %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Yritettäessä tehdä varmuuskopiota vanhemman varmuuskopion poisto " +"epäonnistui.\n" +"Tiedostonimi: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Nimen muuttaminen epäonnistui yritettäessä tehdä varmuuskopiota.\n" +"Tiedostonimet: %1 → %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Nykyiset asetukset:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Asetusvirhe:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "--auto-valitsinta käytetty antamatta tulostiedostoa." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "--auto-valitsin ohitettu kansiovertailussa." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Tallennus epäonnistui." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Näiden tiedostojen avaus epäonnistui:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Tiedoston avausvirhe" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Avaa tiedostot vertailtavaksi…" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Lataa uudelleen" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Tallentaa yhdistämisen tuloksen. Kaikki ristiriidat on ratkaistava!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Tallentaa nykyisen tiedoston toisella nimellä" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Tulostaa erot" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Lopettaa ohjelman" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Leikkaa valitun alueen ja vie sen leikepöydälle" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopioi valitun alueen leikepöydälle" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Liittää leikepöydän sisällön nykyiseen sijaintiin" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Valitsee kaiken nykyisestä ikkunasta" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Etsi merkkijonoa" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Etsi merkkijonoa uudelleen" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Näyttää tai piilottaa tilarivin" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3:n asetukset…" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Siirry nykyiseen muutokseen" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Nykyinen\n" +"muutos" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Siirry ensimmäiseen muutokseen" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Ensimmäinen\n" +"muutos" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Siirry viimeiseen muutokseen" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Viimeisin\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Ohittaa tyhjemerkkierot, kun ”Näytä tyhjemerkit” on poissa käytöstä.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Ei ohita tyhjemerkkieroja silloinkaan, kun ”Näytä tyhjemerkit” on poissa " +"käytöstä.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Siirry edelliseen muutokseen" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Edellinen\n" +"muutos" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Siirry seuraavaan muutokseen" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Seuraava\n" +"muutos" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Siirry edelliseen ristiriitaan" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Edellinen\n" +"ristiriita" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Siirry seuraavaan ristiriitaan" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Seuraava\n" +"ristiriita" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Siirry edelliseen ratkaisemattomaan ristiriitaan" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Edellinen\n" +"ratkaisematon" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Siirry seuraavaan ratkaisemattomaan ristiriitaan" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Seuraava\n" +"ratkaisematon" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Valitse rivejä A:sta" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Valitse\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Valitse rivejä B:stä" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Valitse\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Valitse rivejä C:stä" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Valitse\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Siirry automaattisesti seuraavaan ratkaisemattomaan ristiriitaan lähteen " +"valinnan jälkeen" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Autom.\n" +"seuraava" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Näytä välilyönti- ja sarkainmerkit" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Tyhje-\n" +"merkit" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Näytä tyhjemerkit" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Tyhje-\n" +"deltat" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Näytä rivinumerot" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Rivi-\n" +"numerot" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Ratkaise yksinkertaiset ristiriidat automaattisesti" + +# *** TARKISTA: Hmmh +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Aseta ristiriidat muutoksiksi" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Suorita sääntölausekkeinen automaattiyhdistäminen" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Ratkaisu historiaristiriidat automaattisesti" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Jaa diff valinnan kohdalta" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Yhdistä valitut diffit" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Näytä A-ikkuna" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Näytä B-ikkuna" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Näytä C-ikkuna" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Tavallinen yhteenveto" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A–B-erojen yhteenveto" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A–C-erojen yhteenveto" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B–C-erojen yhteenveto" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Rivitä vertailuikkunat" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Lisää oma vertailutasauskohta" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Tyhjennä kaikki omat vertailutasauskohdat" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Kohdista seuraavaan ikkunaan" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Kohdista edellinen ikkuna" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Vaihda jaon suuntaa" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Jaettu kansio- ja tekstinäkymä" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Vaihda kansio- ja tekstinäkymien välillä" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Yhdistämisen tulosta ei ole tallennettu." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Tallenna ja lopeta" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Lopeta tallentamatta" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Yhdistämisen tulosten tallennus epäonnistui." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Olet yhdistämässä kansioita. Oletko varma vai haluatko keskeyttää?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Tallennetaan tiedostoa…" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Tallennetaan tiedostoa uudella nimellä…" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Tallenna nimellä…" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Tulostusta ei ole toteutettu." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Tulostetaan…" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Tulostetaan sivua %1/%2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (valinta)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Tulostus valmis." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Tulostus keskeytettiin." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Lopetetaan…" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Näytetään tai piilotetaan työkaluriviä…" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Näytetään tai piilotetaan tilariviä…" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3-osa" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "KPart-osa SVG-kuvien näyttämiseksi" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Tekijänoikeudete 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3:n asetukset" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"KDiff3-osaa ei saatu alustetuksi.\n" +"Näin käy yleensä asennusvirheen takia. Lisätietoja saat lukemalla " +"lähdepaketin README-tiedoston." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Tiedosto" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "&Kansio" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Nykyisen tietueen yhdistystoimenpide" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Nykyisen tietueen synkronointitoimenpide" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "&Siirtyminen" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "&Diff-näkymä" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "&Yhdistä" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Ikkuna" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Päätyökalurivi" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ohitettu. (Käyttäjän määritys.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64-bittinen)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32-bittinen)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Työkalu tiedostojen ja kansioiden vertailemiseksi ja yhdistämiseksi" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "© 2002–14 Joachim Eibl, © 2017 Michael Reeves KF5/Qt5-siirros" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Yhdistä tulos." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" +"Eksplisiittinen pohjatiedosto. Yhteensopivuussyistä tiettyjen työkalujen " +"kanssa." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Tulostiedosto. Olettaa -m:n. Esim. -o uusitsto.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Tulostiedosto taas. (Yhteensopivuussyistä tiettyjen työkalujen kanssa.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Ei käyttöliittymää, jos kaikki ristiriidat voi ratkaista automaattisesti. " +"(Vaatii -o tiedosto)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ohita --auto ja näytä käyttöliittymä aina." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ohitettu." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Syötetiedoston 1 (perustan) näkyvän nimen korvaus." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Syötetiedoston 2 näkyvän nimen korvaus." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Syötetiedoston 3 näkyvän nimen korvaus." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Vaihtoehtoinen näkyvän nimen korvaus. Anna tämä kerran kullekin syötteelle." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Ohita yksittäinen asetus. Käytä kerran kullekin asetukselle. Esim. --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Näyttää nykyisten asetusten ja arvojen luettelon." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Käytä toista asetustiedostoa." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "avattava tiedosto1 (pohja, ellei annettu --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "avattava tiedosto2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "avattava tiedosto3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Komento kdiff --help näyttää tuetut valitsimet." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Epätavallista tiedostoa ei voi vertailla tavalliseen." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Sekoitus linkkejä ja tavallisia tiedostoja." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Linkki: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Koko: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Päiväys ja koko: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Verrataan tiedostoa…" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Valitse A kaikkialla" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Valitse B kaikkialla" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Valitse C kaikkialla" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Valitse A kaikissa ratkaisemattomissa ristiriidoissa" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Valitse B kaikissa ratkaisemattomissa ristiriidoissa" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Valitse C kaikissa ratkaisemattomissa ristiriidoissa" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Valitse A kaikissa ratkaisemattomissa tyhjemerkkiristiriidoissa" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Valitse B kaikissa ratkaisemattomissa tyhjemerkkiristiriidoissa" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Valitse C kaikissa ratkaisemattomissa tyhjemerkkiristiriidoissa" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Ratkaisemattomia ristiriitoja jäljellä: %1 (joista %2 liittyy tyhjemerkkeihn)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Tulostetta on muutettu.\n" +"Jos jatkat, muutoksesi menetetään." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Kaikki syötetiedostot ovat binaarisesti samat." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Kaikki syötetiedostot sisältävät saman tekstin." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Tiedostot %1 ja %2 ovat binaarisesti samat.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Tiedostojen %1 ja %2 tekstit ovat samat.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Ristiriitoja kaikkiaan: %1\n" +"Ratkaistuja: %2\n" +"Ratkaisemattomia: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Ristiriidat" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Kaikkia ristiriitoja ei vielä ratkaistu.\n" +"Tiedostoa ei tallennettu." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Ristiriitoja jäljellä" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Rivinloppumerkeissä on ristiriita. Valitse rivinlopetusmerkki itse.\n" +"Tiedostoa ei tallennettu." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Varmuuskopion luonti epäonnistui. Tiedostoa ei tallennettu." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Tiedoston tallennusvirhe" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Virhe kirjoitettaessa." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Tuloste:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Muutettu]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Tallennettaessa käytettävä koodaus:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Ristiriita" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "A:n merkistö: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "B:n merkistö: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "C:n merkistö: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Kyselyikkuna" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (perusta):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Tuloste (valinnainen):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Tiedosto…" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Vaihda/kopioi nimet…" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (valinnainen):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Kansio…" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Versionhallinnan historiatietue koostuu useammasta rivistä.\n" +"Määritä säännöllinen lauseke etsimään alkurivi (ilman edeltävää " +"kommenttia).\n" +"Ryhmittele sulkein avaimet, joita haluat käyttää lajitteluun.\n" +"Jos jätetään tyhjäksi, KDiff3 olettaa historiatietueiden erottimiksi tyhjän " +"rivin.\n" +"Katso lisätietoa ohjeista." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Kukin historiatietueen alkua kuvaavan säännöllisen lausekkeen suljepari\n" +"ryhmittelee mahdollisen lajitteluavaimen.\n" +"Määritä avaimet (jotka numeroidaan 1:stä alkaen esiintymisjärjestyksessä)\n" +"käyttäen erottimena pilkkua (esim. ”4,5,6,1,2,3,7”).\n" +"Jos jätetään tyhjäksi, lajittelua ei tehdä.\n" +"Lisätietoa löydät ohjeista." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Niiden rivien säännöllinen lauseke, joille KDiff3:n tulisi valita useampi " +"lähde.\n" +"Kun ristiriitainen rivi vastaa säännöllistä lauseketta, valitaan C, jos se " +"on\n" +"käytettävissä, muuten B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Säännöllinen lauseke versionhallinnan historiatietueen alulle.\n" +"Yleensä tällä rivillä on avainsana ”$Log$”.\n" +"Oletusarvo: ”.*\\$Log.*\\$.*”" + +# Suunnilleen saman mittainen pangrammiesimerkki suomenkielisestä Wikipediasta +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"On sangen hauskaa, että polkupyörä on\n" +"maanteiden jokapäiväinen ilmiö.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Muuta fonttia" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Fontti: %1, %2, %3\n" +"\n" +"Esimerkki:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin-1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Valitse tämä, ellei ei-ASCII-merkkejä näytetä oikein." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Asetukset" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Fontti" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Muokkaimen ja vertailutulosteen fontti" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Sovellusfontti" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Katselunäkymän fontti" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Väri" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Väriasetukset" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Muokkain- ja diff-näkymät:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Tekstiväri:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Taustaväri:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Diff-taustaväri:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "A-väri:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "B-väri:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "C-väri:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Ristiriitaväri:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Nykyisen alueen taustaväri:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Nykyisen alueen diff-taustaväri:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Omien tasauskohta-alueiden väri:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Kansiovertailunäkymä:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Uusimman tiedoston väri:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Tämän värin vaihtaminen näkyy vasta seuraavaa kansiovertailua " +"käynnistettäessä." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Vanhimman tiedoston väri:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Keski-ikäisen tiedoston väri:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Puuttuvien tiedostojen väri:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Muokkain" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Muokkaimen toiminta" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Sarkain lisää välilyöntejä" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Käytössä: Sarkaimen painallus luo sopivan määrän välilyöntejä.\n" +"Poissa käytöstä: Lisätään sarkainmerkki." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Sarkainleveys:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automaattisisennys" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Käytössä: Edellisen rivin sisennystä käytetään uudelle riville.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Kopioi valinta automaattisesti" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Käytössä: Valinta kopioidaan välittömästi leikepöydälle.\n" +"Ei käytössä: Kopiointi on tehtävä itse esim. Ctrl-C:llä." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Tunnista automaattisesti" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Asettaa muokkattuja tiedostoja tallennettaessa käytettävät " +"rivinloppumerkit.\n" +"DOS/Windows: CR+LF, UNIX: LF (missä CR=0D, LF=0A)." + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff-asetukset" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ohita numerot (kohtele tyhjänä tilana)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ohita numerot rivien täsmäysvaiheessa. (Samankaltainen kuin tyhjemerkkien " +"ohitus.)\n" +"Voi helpottaa numeerista tietoa sisältävien tiedostojen vertailua." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ohita C:n ja C++:n kommentit (kohtele tyhjänä tilana)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Kohtele C:n/C++:n kommentteja tyhjemerkkeinä." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ohita pien- ja suuraakkosten ero (kohtele tyhjänä tilana)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Kohtele eroja suur- tai pienaakkostuksessa kuten tyhjemerkkejä (”a” <=> ”A”)." + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Esikäsittelykomento:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Käyttäjän määrittämä esikäsittely. (Katso lisätietoja ohjeista.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Rivien vertailun esikäsittelykomento:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Tätä esikäsittelyä käytetään vain rivejä täsmättäessä.\n" +"(Katso lisätietoja ohjeista.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Yritä kovemmin (hitaampaa)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Ottaa käyttöön --minimal-asetukset ulkoiselle diffille.\n" +"Suurempien tiedostojen tarkastelu hidastuu huomattavasti." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Kohdista B ja C kolmelle syötetiedostolle" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Yritä kohdistaa B ja C vertailtaessa tai yhdistettäessä kolmea " +"syötetiedostoa.\n" +"Ei suositeltavaa yhdistämisessä, koska se voi huomattavasti mutkistua.\n" +"(Oletus on poissa käytöstä.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Yhdistä" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Yhdistämisasetukset" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Automaattietenemisen viive (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Automaattietenemistilassa nykyisen valinnan tulos näytetään annetun ajan\n" +"ennen siirtymistä seuraavaan ristiriitaan. Väli: 0–2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Näytä viesti-ikkunat" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Näytä viesti-ikkuna ristiriitojen määrästä." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "2 tiedoston tyhjemerkkien yhdistämisen oletus:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Käyttäjän valinta" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Anna yhdistämisalgoritmin valita syöte automaattisesti " +"tyhjemerkkimuutoksissa." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "3 tiedoston tyhjemerkkien yhdistämisen oletus:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automaattisen yhdistämisen säännöllinen lauseke" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Automaattisen yhdistämisen säännöllinen lauseke:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Yhdistä automaattisesti säännöllisellä lausekkeella yhdistämisen aluksi" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Suorita automaattiyhdistämisen säännöllisten lausekkeiden\n" +"yhdistäminen välittömästi yhdistämisen alussa.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Versionhallinnan historian yhdistäminen" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Historian alun säännöllinen lauseke:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Historiatietueen alun säännöllinen lauseke:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Historian yhdistämisen lajittelu" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Lajittele versionhallinnan historian avaimen perusteella." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Historiatietueen alun lajitteluavainjärjestys:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Yhdistä versionhallinnan historian yhdistämisen aluksi" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Suorita versionhallinnan historian automaattiyhdistäminen yhdistämisen " +"aluksi." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Historiatietueiden enimmäismäärä:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Katkaise annetun määrän jälkeen. -1 sallii rajattoman tietuemäärän." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Kokeile säännöllisiä lausekkeitasi" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Merkityksetön yhdistämiskomento:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Jos annettu, tämä skritpi suoritetaan automaatti-\n" +"yhdistämisen jälkeen, kun muita muutoksia ei havaita.\n" +"Kutsutaan parametrein: tstonimi1 tstonimi2 tstonimi3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Tallenna ristiriidattomat yhdistämiset automaattisesti ja lopeta" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Jos KDiff3 käynnistetään tiedostojen yhdistämiseksi komentoriviltä ja\n" +"kaikki ristiriidat ovat käyttäjän toimitta ratkaistavissa, tallenna ja " +"lopeta\n" +"automaattisesti. (Samankaltainen kuin komentorivivalitsin ”--auto”.)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Myös alikansiot" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Tarkistetaanko alikansiotkin." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Tiedostohahmo(t):" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Tutkittavien tiedostonimien hahmo(t).\n" +"Jokerit: ”*” ja ”?”.\n" +"Useampia hahmoja voi antaa erottamalla ne puolipistein ”;”." + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Käänteistiedostokuvio(t):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Analyysista pois jätettävä(t) tiedostokuvio(t).\n" +"Jokerimerkit: * ja ?\n" +"Useampia tiedostokuvioita voi antaa puolipistein (;) erotettuna" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Kansionimien vastakuviot:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Analyysista pois jätettävä(t) tiedostokuvio(t).\n" +"Jokerimerkit: ”*” ja ”?”\n" +"Useita kuvioita voi antaa puolipistein ”;” erotettuna" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Käytä sivuutustiedostoa" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Laajentaa vastakuvion kaikkeen, minkä versionhallintakin jättää huomiotta.\n" +"Paikallisin sivuutussäännöin tämä voi olla kansiokohtaista." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Etsi piilotiedostot ja -kansiot" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Etsii piilotiedostot ja -kansiot." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Seuraa tiedostolinkkejä" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Käytössä: Vertaa linkin osoittamaa tiedostoa.\n" +"Poissa käytöstä: Vertaa linkkejä." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Seuraa kansiolinkkejä" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Käytössä: Vertaa linkkien kohteita.\n" +"Poissa käytöstä: Vertaa linkkejä." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Erota pien- ja suuraakkoset tiedostonimiä vertailtaessa" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Kansiovertailu vertaa saman nimisiä tiedostoja ja kansioita.\n" +"Aseta tämä valinta, jos tiedostonimien täytyy täsmätä tarkasti. (Windowsissa " +"oletus on poissa käytöstä, muuten käytössä.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Laajenna alikansiot ladattaessa" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Käytössä: Laajenna alikansiot kansiovertailua aloitettaessa.\n" +"Ei käytössä: Jätä alikansiot pois näkyvistä." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Ohita kansioiden tilaraportti" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Käytössä: Älä näytä kansiovertailun tilaa.\n" +"Ei käytössä: Näytä käynnistettäessä tilaikkuna." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Tiedostonvertailutapa" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binaarivertailu" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Kunkin tiedoston binaarivertailu (oletus)." + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Täysi analyysi" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Tee täysi analyysi ja näytä tilastotiedot lisäsarakkeina.\n" +"(Hitaampaa kuin binaarivertailu etenkin binaaritiedostoille.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Luota kokoon ja muutospäivään (turvatonta)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Oleta tiedostot yhteneviksi, jos muutospäivä ja tiedoston koko ovat samat.\n" +"Tiedostojen näytetään eroavan, jos sisältö on sama mutta muutospäivä eroaa.\n" +"Hyödyllinen suurissa kansioissa tai hitaissa verkoissa." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Luota kokoon ja päiväykseen mutta käytä binaarivertailua, elleivät " +"päiväykset vastaa (turvatonta)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Oleta tiedostot yhteneviksi, jos muutospäivä ja tiedoston koko ovat samat.\n" +"Elleivät päiväykset ole samat mutta koot ovat, käytetään binaarivertailua.\n" +"Hyödyllinen suurissa kansioissa tai hitaissa verkoissa." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Luota kokoon (turvatonta)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Oleta saman kokoiset tiedostot yhteneviksi.\n" +"Hyödyllinen, jos kansiot ovat suuria tai verkko hidas ja päiväys muuttuu " +"ladattaessa." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Synkronoi kansiot" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Ehdottaa tiedostojen tallentamista kumpaankin kansioon,\n" +"jolloin kansioiden sisällöstä tulee yhtäläinen.\n" +"Toimii vain verrattaessa kahta kansiota antamatta kohdetta." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Tyhjemerkit eivät vaikuta lopputulokseen" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Jos tiedostot eroavat vain tyhjemerkeiltään, pidä niitä yhtäläisinä.\n" +"Tämä on aktiivinen vain, kun täysi analyysi on valittu." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopioi uudempi yhdistämisen sijaan (turvatonta)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Älä katso sisemmäs, valitse vain uusin tiedosto.\n" +"(Käytä tätä vain, jos tiedät mitä teet!)\n" +"Tällä on vaikutusta vain verrattaessa kahta kansiota." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Varmuuskopioi tiedostot (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Jos tiedosto tallennettaisiin vanhemman päälle, vanhan tiedoston\n" +"nimeen lisätään pääte ”.orig” sen sijaan, että se poistettaisiin." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Maa-asetukset" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Käytä samaa merkkikoodausta kaikille:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Jos asetettu, mahdollistaa kaikki koodausten vaihtamisen ensimmäistä " +"vaihtamalla.\n" +"Poista käytöstä, jos tiedostot käyttävät eri merkkikoodauksia." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Huomaa: Paikallinen merkkikoodaus on ”%1”" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "A-tiedoston koodaus:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Jos asetettu, Unicode-koodaukset (UTF-16 ja UTF-8) tunnistetaan.\n" +"Ellei tiedosto ole Unicodea, käytetään varalla valittua merkkikoodausta.\n" +"(Unicode-tunnistus tapahtuu tiedoston ensitavusta.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Tunnista Unicode automaattisesti" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "B-tiedoston koodaus:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "C-tiedoston koodaus:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Yhdistämisen tulosteen ja tallennuksen merkkikoodaus:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Valitse automaattisesti" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Jos asetettu, käytetään syötetiedostojen merkkikoodausta.\n" +"Epäselvissä tilanteissa käyttäjää pyydetään asettamaan tallennuksen " +"merkkikoodaus." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Esikäsittelytiedostojen merkkikoodaus:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Oikealta vasemmalle -kieli" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Joitakin kieliä luetaan oikealta vasemmalle.\n" +"Tämä asetus asettaa katselimen ja muokkaimen vastaavasti." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integrointi" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integrointiasetukset" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Ohitettavat komentorivivalitsimet:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Luettelo komentorivivalitsimista, jotka tulisi ohittaa, kun toinen työkalu " +"käyttää KDiff3:a.\n" +"Puolipistein ”;” erotettuna voi antaa useita arvoja.\n" +"Tämä estää ”Tuntematon asetus” -virheen." + +# Eihän siinä koskaan taida Suomessa lukea koko ”Escape” +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Lopeta myös Esc-näppäimellä" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Nopea lopetustapa.\n" +"Sopii niille, jotka ovat Escin käyttöön tottuneet." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Alustaa kaikki asetukset (ei vain nykyisen kohdan)." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Esikäsittelykomento: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Seuraavat valitsemasi asetukset voivat muuttaa tietoja:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Tätä ei todennäköisesti haluta yhdistettäessä.\n" +"Haluatko poistaa nämä käytöstä vai jatkaa samoilla asetuksilla?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Turvattomat yhdistämisasetukset" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Käytä näitä asetuksia yhdistettäessä" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Poista turvattomat asetukset käytöstä" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Ladataan A:ta" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Ladataan A:ta: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Ladataan B:tä" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Ladataan B:tä: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linediff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Ladataan C:tä" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Ladataan C:tä: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Kaikissa syötetiedostoissa on sama teksti mutta eroja esiintyy binaarisella " +"tasolla." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Tiedostoissa %1 ja %2 on sama teksti mutta eroja esiintyy binaarisella " +"tasolla.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Jotkin syötteet eivät vaikuta raakatekstitiedostoilta.\n" +"KDiff3:n yhdistystoimintoa ei ole tarkoitettu binaaritiedolle.\n" +"Jatka omalla vastuullasi." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +# %1 sisältää ”A”, ”B”, ”C” tai jonkin näiden yhdistelmän pilkuin erotettuna. +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Joitakin syötemerkkejä ei saatu muunnettua kelvolliseksi Unicodeksi.\n" +"Käytät ehkä väärää merkistöä (esim. UTF-8:aa ei-UTF-8-tiedostolle).\n" +"Älä tallenna tulosta, ellet ole varma. Jatka omalla vastuullasi.\n" +"Viesti koskee tiedostoja kohteessa %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Keskeytä" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Avataan tiedostoja…" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Leikataan valintaa…" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopioidaan valintaa leikepöydälle…" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Liitetään leikepöydän sisältöä…" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Rivitys (Peru poistaa rivityksen käytöstä)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Lasketaan vaakavierityspalkin enimmäisleveyttä" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Tallenna ja jatka" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Jatka tallentamatta" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Haku valmis." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Haku valmis" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Mitään ei ole valittu kummassakaan diff-syöteikkunassa." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Virhe lisättäessä käsin diff-aluetta" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Peru" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Vaihda %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopioi %1–>tuloste" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Vaihda %1<->tuloste" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Asetukset…" + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Avaa kansio" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Valitse tulostiedosto" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Kaikki tiedostot (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Etsi tekstiä:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Erota pien- ja suuraakkoset" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Etsi A:sta" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Etsi B:stä" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Etsi C:stä" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Etsi tulosteesta" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Etsi" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Säännöllisen lausekkeen testaus" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Automaattiyhdistämisen esimerkkirivi:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Kokeillaksesi automaattiyhdistämistä kopioi rivi niin kuin se esiintyy " +"tiedostoissasi." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Haun tulos:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Esimerkkihistorian aloitusrivi (edeltävällä kommentilla):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopioi historian aloitusrivi niin kuin se esiintyy tiedostoissasi\n" +"edeltävä kommentti mukaan lukien." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Historian lajittelujärjestys:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Historiatietueen aloitusrivin esimerkki (ilman alkukommenttia):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopioi tiedostoissasi käytetty historiatietueen aloitusrivi\n" +"mutta ilman alun kommenttia." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Lajitteluavaimen tulos:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Haku onnistui." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Haku epäonnistui." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Säännöllisen lausekkeen alkavien ja päättävien sulkujen määrä ei täsmää." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Leikepöydän tietojen kirjoitus väliaikaistiedostoon epäonnistui." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Leikepöydältä" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 ei ole tavallinen tiedosto." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Väliaikaistiedosto on: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Esikäsittely saattoi epäonnistui. Tarkista tämä komento:\n" +"\n" +" %1\n" +"\n" +"Esikäsittelykomento poistetaan nyt käytöstä." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Tiedosto %1 on liian iso käsiteltäväksi. Ohitetaan." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Rivinsovitusesikäsittely saattoi epäonnistui. Tarkista tämä komento:\n" +"\n" +" %1\n" +"Rivinsovitusesikäsittelykomento poistetaan nyt käytöstä." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Odotettiin välilyöntiä sulkevan lainausmerkin jälkeen." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Pariton lainausmerkki." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Odottamaton lainausmerkki parametrin sisällä." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Ohjelmaa ei määritetty." + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# *** TARKISTA: Voiko tähän saada %1:stä genetiivin, jolloin voisi olla ”%1 asetukset”? + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# pmap: =/gen=kdiff3:n/ +# pmap: =/elat=kdiff3:sta/ \ No newline at end of file diff --git a/po/fi/kdiff3fileitemactionplugin.po b/po/fi/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..afa06c9 --- /dev/null +++ b/po/fi/kdiff3fileitemactionplugin.po @@ -0,0 +1,105 @@ +# Copyright © 2012 This_file_is_part_of_KDE +# This file is distributed under the same license as the kdiff3 package. +# Tommi Nieminen , 2012, 2018, 2019, 2020. +# Lasse Liehu , 2013, 2014. +# +# KDE Finnish translation sprint participants: +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2020-07-31 13:17+0300\n" +"Last-Translator: Tommi Nieminen \n" +"Language-Team: Finnish \n" +"Language: fi\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-POT-Import-Date: 2012-12-01 22:21:45+0000\n" +"X-Generator: Lokalize 20.04.2\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3…" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Vertaa tiedostoon %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Yhdistä tiedostoon %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Tallenna ”%1” tuonnemmaksi" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Kolmivaiheinen yhdistäminen pohjaan" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Vertaa tiedostoon…" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Tyhjennä luettelo" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Vertaa" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Kolmivaiheinen vertailu" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Tietoa KDiff3-valikkoliitännäisestä…" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"KDiff3-tiedostotoimintoliitännäinen: tekijänoikeudet © 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Kontekstivalikkolaajennuksen käyttö:\n" +"Valitse ”Vertaa” verrataksesi vain kahta tiedostoa.\n" +"Jos toinen tiedosto on muualla, ”Tallenna” ensimmäinen tiedosto " +"tuonnemmaksi, jolloin se näkyy ”Vertaa tiedostoon…”-alivalikossa. Valitse " +"sitten toiselle tiedostolle ”Vertaa tiedostoon”.\n" +"Kolmivaiheisessa yhdistämisessä ”Tallenna” ensin pohjatiedosto ja " +"yhdistettävä haara ja valitse sitten ”Kolmivaiheinen yhdistäminen pohjaan” " +"kohteena käytettävässä toisessa haarassa.\n" +"Sama pätee myös kansioiden vertailuun ja yhdistämiseen." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Tietoa KDiff3-tiedostotoimintoliitännäisestä" \ No newline at end of file diff --git a/po/fr/diff_ext.po b/po/fr/diff_ext.po new file mode 100644 index 0000000..cae01a0 --- /dev/null +++ b/po/fr/diff_ext.po @@ -0,0 +1,131 @@ +# Simon Depiets , 2018. +# Xavier Besnard , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: diff_ext\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-04-29 08:38+0200\n" +"Last-Translator: Xavier Besnard \n" +"Language-Team: French \n" +"Language: fr\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 20.12.3\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Comparer avec %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Fusionner avec %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusion de trois versions de fichiers avec la base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Enregistrer « %1 » pour plus tard" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Comparer avec..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Effacer une liste" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Comparer" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparaison de trois versions de fichiers" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "À propos de Diff-Ext..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Tous droits réservés.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Ce programme est distribuable sous la licence « Clause BSD-2 ».\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Certaines extensions pour KDiff3 (c) 2006-2013 par Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Portage vers Qt5 / Kf5 effectué par Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Page d'accueil de Diff-Ext : http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "À propos de Diff-Ext pour KDiff3 (64 bits)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Comparer les fichiers sélectionnés" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Comparer « %1 » avec « %2 »" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Enregistrer « %1 » pour plus tard" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Impossible de démarrer KDiff3. Veuillez réinstaller KDiff3." + +# | msgid "Comment" +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Commande" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Ligne de commande" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext pour KDiff3" \ No newline at end of file diff --git a/po/fr/kdiff3.po b/po/fr/kdiff3.po new file mode 100644 index 0000000..1d81eb6 --- /dev/null +++ b/po/fr/kdiff3.po @@ -0,0 +1,3660 @@ +# translation of kdiff3.po to Français +# traduction de kdiff3.po vers le Français +# Copyright (C) 2004, 2005, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# Simon Depiets <2df@tuxfamily.org>, 2005, 2018, 2019, 2020. +# Joëlle Cornavin , 2008, 2009, 2010, 2011, 2012. +# Johnny Jazeix , 2020. +# Xavier Besnard , 2020, 2021, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-19 21:46+0100\n" +"Last-Translator: Xavier Besnard \n" +"Language-Team: French \n" +"Language: fr\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-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Generator: Lokalize 22.04.2\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Joëlle Cornavin, Simon Depiets, Xavier Besnard" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "jcorn@free.fr, sdepiets@gmail.com, xavier.besnard@neuf.fr" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Obtention de l'état du fichier : %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Lecture du fichier : %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Écriture du fichier : %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Mémoire pleine" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Création du dossier : %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Suppression du dossier : %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Suppression du fichier : %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Création d'un lien symbolique : %1 ==> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Renommage du fichier : %1 ==> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Copie du fichier : %1 ==> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Lecture du dossier : %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listage du dossier : %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Problème de perte de données :\n" +"Si cela se reproduit, veuillez contacter l'auteur.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Erreur interne critique" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Erreur interne critique." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Erreur interne critique. : " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Fichier %1 : ligne %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Fichier %1 : ligne non disponible" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Encodage :" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Style de fin de ligne :" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Encodage : %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Style de fin de ligne : %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Première ligne" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fin" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Ouvrir un fichier" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Autre" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copier A vers B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copier B vers A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Supprimer A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Supprimer B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Supprimer A et B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Fusionner vers A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Fusionner vers B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Fusionner vers A et B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Supprimer (s'il existe)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Fusion" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Fusion (manuelle)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Erreur : conflit de types de fichiers" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Erreur : changé et supprimé" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Erreur : les dates sont identiques mais les fichiers ne le sont pas." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Terminé" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Erreur" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Sauté." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Non enregistré." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "En cours..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "À faire." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nom" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Opération" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "État" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Non résolu" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Résolu" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Non blanc" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Blanc" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Vous effectuez actuellement une fusion de dossier. Voulez-vous vraiment " +"abandonner la fusion et analyser à nouveau le dossier ?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Avertissement" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Analyser à nouveau" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Poursuivre la fusion" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Impossible d'ouvrir les dossiers :" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Le dossier A « %1 » n'existe pas ou n'est pas un dossier.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Le dossier B « %1 » n'existe pas ou n'est pas un dossier.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Le dossier C « %1 » n'existe pas ou n'est pas un dossier.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Erreur d'ouverture d'un dossier" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Le dossier de destination ne doit pas être le même que A ou B quand trois " +"dossiers sont fusionnés.\n" +"Vérifiez encore avant de continuer." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Avertissement pour les paramètres" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Analyse des dossiers…" + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Lecture du dossier A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Lecture du dossier B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Lecture du dossier C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Certains sous-dossiers ne sont pas lisibles dans" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Vérifiez les permissions des sous-dossiers." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Prêt." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"État de la comparaison des dossiers\n" +"\n" +"Nombre de sous-dossiers : %1\n" +"Nombre de fichiers identiques : %2\n" +"Nombre de fichiers différents : %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Nombre de fusions manuelles : %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ce paramètre affecte toutes les opérations de fusion." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Changement de toutes les opérations de fusion" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Traitement en cours %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Impossible de traiter certains fichiers." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Abandon en raison d'un trop grand nombre d'erreurs." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Cette opération n'est actuellement pas possible." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Opération impossible" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Une erreur est survenue lors de la copie." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Erreur de fusion" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Opération de fusion inconnue. (Ceci ne devrait jamais arriver !)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Opération de fusion inconnue." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"La fusion est sur le point de commencer\n" +"\n" +"Choisissez « Effectuer la fusion » si vous avez lu les instructions et savez " +"ce que vous faites.\n" +"Choisir « Simuler la fusion » indiquera ce qui arrivera.\n" +"\n" +"Sachez que ce programme est encore au stade bêta et qu'il n'y a AUCUNE " +"GARANTIE d'aucune sorte ! Faites des sauvegardes de vos données vitales !" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Démarrage de la fusion" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Effectuer la fusion" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuler la fusion" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"L'élément mis en surbrillance est d'un type différent dans les différents " +"dossiers. Choisissez ce qu'il faut faire." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Les dates de modification du fichier sont identiques, mais les fichiers ne " +"le sont pas. Choisissez ce qu'il faut faire." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"L'élément mis en surbrillance a été modifié dans un dossier et supprimé dans " +"l'autre. Choisissez ce qu'il faut faire." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Cette opération n'est actuellement pas possible car une fusion de dossiers " +"est en cours." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Il s'est produit une erreur à la dernière étape.\n" +"Voulez-vous continuer avec l'élément ayant causé l'erreur ou voulez-vous le " +"sauter ?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continuer la fusion après une erreur" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continuer avec le dernier élément" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Sauter l'élément" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Opération de fusion terminée." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fusion terminée" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulation de fusion achevée : vérifiez si vous êtes d'accord avec les " +"opérations proposées." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Une erreur s'est produite. Cliquez sur « Ok » pour afficher les informations " +"détaillées." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" +"Erreur : durant la suppression de %1 : impossible de créer la sauvegarde." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "supprimer le dossier récursivement( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "supprimer( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Erreur : opération de suppression de dossier impossible durant la tentative " +"de lecture du dossier." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Erreur : opération de suppression de dossier( %1 ) impossible." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Erreur : opération de suppression impossible." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "fusion manuelle(%1, %2, %3 ==> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Remarque : après une fusion manuelle, l'utilisateur devra continuer en " +"appuyant sur F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Erreur : copie( %1 ==> %2 ) impossible. Impossible de supprimer la " +"destination existante." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copier le lien( %1 ==> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Erreur : copie des liens impossible : les liens distants ne sont pas encore " +"pris en charge." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Erreur : copie du lien impossible." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copie( %1 ==> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Erreur durant le renommage( %1 ==> %2 ) : impossible de supprimer la " +"destination existante." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "renommer( %1 ==> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Erreur : renommage impossible." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Erreur durant la création du dossier de %1. Impossible de supprimer le " +"fichier existant." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "création du dossier( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Erreur durant la création du dossier." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Dossier" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Type" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Taille" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Dernière modification" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destination du lien" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fichier" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Lien" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "non disponible" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest) : " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A : " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Base) : " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest) : " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B : " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest) : " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C : " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest : " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Enregistrer l'état de fusion des dossiers sous…" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Démarrer / Poursuivre la fusion des dossiers" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Lancer l'opération pour l'élément actuel" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Comparer le fichier sélectionné" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Fusionner le fichier actuel" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Fusion\n" +"Fichier" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Replier tous les sous-dossiers" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Déplier tous les sous-dossiers" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Choisir A pour tous les éléments" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Choisir B pour tous les éléments" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Choisir C pour tous les éléments" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Choisir automatiquement l'opération pour tous les éléments" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Pas d'opération pour tous les éléments" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Afficher les fichiers identiques" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identiques\n" +"Fichiers" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Afficher les fichiers différents" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Afficher les fichiers uniquement dans A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Fichiers\n" +"uniquement dans A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Afficher les fichiers uniquement dans B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Fichiers\n" +"uniquement dans B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Afficher les fichiers uniquement dans C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Fichiers\n" +"uniquement dans C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Comparer les fichiers explicitement sélectionnés" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Fusionner les fichiers explicitement sélectionnés" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ne rien faire" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Supprimer A et B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Fusionner vers A et B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Impossible de déterminer l'URL complète. Aucun parent renseigné." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Impossible de lire le fichier : %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Impossible de créer la copie temporaire de %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Impossible d'ouvrir %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Erreur de lecture depuis %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"La suppression d'une sauvegarde précédente a échoué pendant la tentative de " +"sauvegarde.\n" +"Nom du fichier : %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Le renommage a échoué pendant la tentative de sauvegarde.\n" +"Noms des fichiers : %1 ==> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configuration actuelle :" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Erreur d'option de configuration :" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Option --auto utilisée, mais aucun fichier résultat spécifié." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Option --auto ignorée pour la comparaison de dossiers." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Impossible d'enregistrer." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Ouverture de ces fichiers impossible :" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Erreur d'ouverture du fichier" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Ouvre les documents pour faire une comparaison..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Recharger" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Enregistre le résultat de la fusion. Tous les conflits doivent être résolus !" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Enregistre le document actuel sous..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Afficher les différences" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Quitte l'application" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Coupe la sélection et la place dans le presse-papiers" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copie la sélection dans le presse-papiers" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Colle le contenu du presse-papiers à la position actuelle" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Tout sélectionner dans la fenêtre actuelle" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Chercher une chaîne" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Chercher à nouveau la chaîne" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Active/désactive la barre d'état" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configurer KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Aller au delta actuel" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Actuel\n" +"Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Aller au premier delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Premier\n" +"Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Aller au dernier delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Dernier\n" +"Delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Saute les différences d'espaces quand « Afficher les espaces » est " +"désactivé)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Ne saute pas les différences d'espaces même quand « Afficher les espaces » " +"est désactivé)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Aller au delta précédent" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Précédent\n" +"Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Aller au delta suivant" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Suivant\n" +"Delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Aller au conflit précédent" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Précédent\n" +"Conflit" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Aller au conflit suivant" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Suivant\n" +"Conflit" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Aller au conflit non résolu précédent" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Précédent\n" +"Non résolu" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Aller au conflit non résolu suivant" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Suivant\n" +"Non résolu" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Sélectionner la(les) ligne(s) à partir de A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Choisir\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Sélectionner la(les) ligne(s) à partir de B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Choisir\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Sélectionner la(les) ligne(s) à partir de C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Choisir\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Aller automatiquement au conflit non résolu suivant après sélection de la " +"source" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Auto\n" +"Suivant" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Afficher les caractères d'espacement et de tabulation" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Blanc\n" +"Caractères" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Afficher les espaces" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Blanc\n" +"Deltas" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Afficher les numéros de lignes" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Ligne\n" +"Numéros" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Résoudre automatiquement les conflits simples" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Attribuer des deltas aux conflits" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Exécuter la fusion automatique de l'expression rationnelle" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Résoudre automatiquement les conflits d'historique" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Scinder les différences à la sélection" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Réunir les différences sélectionnées" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Afficher la fenêtre A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Afficher la fenêtre B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Afficher la fenêtre C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Vue d'ensemble normale" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Vue d'ensemble de A par rapport à B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Vue d'ensemble de A par rapport à C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Vue d'ensemble de B par rapport à C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Retour à la ligne automatique des fenêtres d'affichage de différences" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Ajouter l'alignement manuel des différences" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Effacer tous les alignements manuels des différences" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Mettre le focus sur la fenêtre suivante" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Mettre le focus sur la fenêtre précédente" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Changer l'orientation du séparateur" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Vue de l'écran divisé en dossier et texte" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Basculer entre l'affichage du dossier et l'affichage du texte" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Le résultat de la fusion n'a pas été enregistré." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Enregistrer et quitter" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Quitter sans enregistrer" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Enregistrement du résultat de la fusion impossible." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Vous effectuez actuellement une fusion de dossiers. Voulez-vous vraiment " +"l'interrompre ?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Enregistrement du fichier..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Enregistrement du fichier sous un nouveau nom..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Enregistrer sous..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Impression non implémentée." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Impression..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Impression de la page %1 sur %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Sélection)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "L'impression est terminée." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Impression interrompue." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Fermeture..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "(Dés)Activation de la barre d'outils..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "(Dés)Activation de la barre d'état..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Module KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Un module KDE pour afficher les images « SVG »" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configurer KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Impossible d'initialiser le composant KDiff.\n" +"Cet incident arrive d'ordinaire à cause d'un problème d'installation. " +"Veuillez consulter le fichier « README » dans le paquet source pour plus de " +"détails." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fichier" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "D&ossier" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Opération de fusion de l'élément actuel" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Opération de synchronisation de l'élément actuel" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "D&éplacement" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&ifférences" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "F&usion" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Fenêtre" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barre principale" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignoré. (Défini par l'utilisateur)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "(64 bits)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "(32 bits)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Outil de comparaison et de fusion de fichiers et de dossiers" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves Portage vers KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Fusionner les entrées." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Fichier de base explicite. Pour la compatibilité avec certains outils." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Fichier de sortie. Implique -m. Par ex. : -o nouveau_fichier.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Fichier de sortie, encore. (Pour la compatibilité avec certains outils)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Pas d'interface graphique si tous les conflits se résolvent automatiquement. " +"(Nécessite un fichier -o)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignorer --auto et toujours afficher l'interface graphique." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignoré." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Remplacement de nom visible pour le fichier d'entrée 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Remplacement de nom visible pour le fichier d'entrée 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Remplacement de nom visible pour le fichier d'entrée 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Remplacement de nom visible secondaire. À fournir une seule fois pour chaque " +"entrée." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Annuler un paramètre de configuration. À utiliser une seule fois pour chaque " +"paramètre. Par ex. : --cs « AutoAdvance=1 »" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" +"Afficher la liste des paramètres de configuration et les valeurs actuelles." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Utiliser un fichier de configuration différent." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "fichier 1 à ouvrir (base, si non spécifié, via --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "fichier 2 à ouvrir" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "fichier 3 à ouvrir" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Consulter kdiff3 --help pour les options prises en charge." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Impossible de comparer un fichier non-normal à un fichier normal." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mélange de liens et de fichiers normaux." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Lien : " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Taille. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Date et taille : " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Comparaison du fichier..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Choisir A partout" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Choisir B partout" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Choisir C partout" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Choisir A pour tous les conflits non résolus" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Choisir B pour tous les conflits non résolus" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Choisir C pour tous les conflits non résolus" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Choisir A pour tous les conflits d'espaces non résolus" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Choisir B pour tous les conflits d'espaces non résolus" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Choisir C pour tous les conflits d'espaces non résolus" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Nombre de conflits non résolus restants : %1 (dont %2 concernent des espaces)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"La sortie a été modifiée.\n" +"Si vous continuez, vos changement seront perdus." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Tous les fichiers d'entrée sont binairement identiques." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Tous les fichiers d'entrée contiennent le même texte." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Les fichiers %1 et %2 sont binairement identiques.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Les fichiers %1 et%2 ont un texte identique.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Nombre total de conflits : %1\n" +"Nombre de conflits automatiquement résolus : %2\n" +"Nombre de conflits non résolus : %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflits" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Tous les conflits ne sont pas encore résolus.\n" +"Fichier non enregistré." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflits restants" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Il y a un conflit de style de fin de ligne. Veuillez choisir manuellement le " +"style de fin de ligne.\n" +"Fichier non enregistré." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Création de la sauvegarde impossible. Fichier non enregistré." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Erreur lors de l'enregistrement du fichier" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Erreur durant l'écriture." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Sortie :" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modifié]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Encodage pour l'enregistrement :" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflit" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Codec de A : %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Codec de B : %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Codec de C : %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Boîte de dialogue" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B :" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (base) :" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Sortie (optionnel) :" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fichier..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Permuter / Copier les noms..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (optionnel) :" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Dossier…" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Un élément d'historique de contrôle de versions se compose de plusieurs " +"lignes.\n" +"Spécifiez l'expression rationnelle utilisée pour détecter la première ligne " +"(sans le commentaire de début).\n" +"Regroupez à l'aide de parenthèses les clés que vous voulez utiliser pour le " +"tri.\n" +"SI ce champ reste vide, alors KDiff3 part du principe que les lignes vides " +"séparent les éléments de l'historique.\n" +"Consultez la documentation pour les détails." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Chaque paire de parenthèses utilisée dans l'expression rationnelle pour " +"l'élément de début de l'historique\n" +"regroupe une clé susceptible d'être employée pour le tri.\n" +"Spécifiez la liste des clés (qui sont numérotées par ordre d'occurrence, \n" +"en commençant par 1) en utilisant « , » comme séparateur (par ex. " +"« 4,5,6,1,2,3,7 »).\n" +"Si ce champ reste vide, alors aucun tri ne sera effectué.\n" +"Consultez la documentation pour les détails." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Expression rationnelle pour les lignes depuis lesquelles KDiff3 devra " +"choisir automatiquement une source.\n" +"Lorsqu'une ligne présentant un conflit correspond à l'expression " +"rationnelle, alors\n" +"la ligne C - si elle est disponible, sera choisie, sinon ce sera la ligne B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Expression rationnelle pour le début de la ligne d'historique de contrôle de " +"versions.\n" +"Habituellement, cette ligne contient le mot clé « $Log$ ».\n" +"Valeur par défaut : « .*\\$Log.*\\$.* »" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Le renard roux rapide saute au dessus de la rivière\n" +"mais la petite poule rouge s'échappe avec un frisson.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Changer la police" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Police : %1, %2, %3\n" +"\n" +"Exemple :" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Changez ce paramètre si les caractères non-ASCII ne sont pas affichés " +"correctement." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configurer" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Police" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Police de l'éditeur et de la sortie de l'analyse des différences" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Police de l'application" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Police d'affichage des fichiers" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Couleur" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Paramètres des couleurs" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Vues de l'éditeur et de la fenêtre d'analyse de différences :" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Couleur du premier plan :" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Couleur de fond :" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Couleur de fond pour l'affichage des différences :" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Couleur A :" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Couleur B :" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Couleur C :" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Couleur des conflits :" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Couleur de fond de la plage actuelle :" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Couleur de fond pour les différences dans la plage actuelle :" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Couleur pour les plages de différences alignées manuellement :" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Affichage de comparaison des dossiers :" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Couleur pour les fichiers les plus récents :" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Le changement de cette couleur ne sera effectif qu'au prochain démarrage de " +"la comparaison des dossiers." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Couleur pour les fichiers les plus anciens :" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Couleur pour les fichiers d'âge moyen :" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Couleur pour les fichiers manquants :" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Éditeur" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportement de l'éditeur" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Une tabulation insère des espaces" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Activé : appuyer sur la touche de tabulation génère le nombre approprié " +"d'espaces.\n" +"Désactivé : un caractère de tabulation va être inséré." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Taille d'une tabulation :" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Indentation automatique" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Activé : l'indentation de la ligne précédente est utilisée pour une nouvelle " +"ligne.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Copier automatiquement la sélection" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Activé : toute sélection est immédiatement copiée dans le presse-papiers.\n" +"Désactivé : vous devrez effectuer la copie explicitement (ex. via Ctrl-C)." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos / Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Détecter automatiquement" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Configure les fins de ligne quand un fichier modifié est enregistré.\n" +"DOS/Windows : CR+LF, Unix : LF, avec CR= « 0D », LF= « 0A » " + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Analyse des différences" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Paramètres de l'analyse des différences" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignorer les nombres (les considérer comme des espaces)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignorer les caractères numériques durant une phase de mise en correspondance " +"de lignes. (Similaire à « Ignorer les espaces »).\n" +"Peut aider à comparer des fichiers comportant des données numériques." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignorer les commentaires C/C++ (les considérer comme des espaces)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Considérer les commentaires C/C++ comme des espaces." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignorer la casse (considérer comme des espaces)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Considérer les différences de casse comme des changements d'espaces. (« a » " +"<==> « A »)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Commande du préprocesseur :" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"prétraitement défini par l'utilisateur. (Voir les documentations pour les " +"détails)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Commande du préprocesseur pour la mise en correspondance de lignes :" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Ce préprocesseur n'est utilisé que durant la mise en correspondance de " +"lignes\n" +"(consultez la documentation pour les détails)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Essayer encore (plus lent)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Active l'option -minimal pour une analyse de différences externe.\n" +"L'analyse de gros fichiers sera beaucoup plus lente." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Aligner B et C pour 3 fichiers d'entrée" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Essayez d'aligner B et C lors de la comparaison ou de la fusion de trois " +"fichiers d'entrée.\n" +"Option non recommandée pour une effectuer une fusion, car cette dernière " +"pourrait s'en trouver plus complexe.\n" +"(Par défaut, elle est désactivée)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Fusion" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Paramètres de la fusion" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Délai d'avance automatique (en ms) :" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"En mode Avance automatique, le résultat de la sélection actuelle est " +"affiché \n" +"pour la période spécifiée, avant d'aller au conflit suivant. Intervalle : " +"0-2 000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Afficher les boîtes de dialogue d'information" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" +"Affiche une boîte de dialogue contenant des informations sur le nombre de " +"conflits." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Option par défaut pour les espaces lors de la fusion de 2 fichiers :" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Choix manuel" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Autoriser l'algorithme de fusion à sélectionner automatiquement une entrée " +"pour les changements d'espaces seuls." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Option par défaut pour les espaces lors de la fusion de 3 fichiers :" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Expression rationnelle de fusion automatique" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Expression rationnelle de fusion automatique :" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Exécuter la fusion automatique des expressions rationnelles au démarrage de " +"la fusion" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Exécute la fusion pour les expressions rationnelles de fusion automatique\n" +"immédiatement lorsqu'une fusion démarre.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Fusion de l'historique du contrôle de versions" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Expression rationnelle de début d'historique :" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Expression rationnelle de début d'un élément d'historique :" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Tri de fusion de l'historique" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Trie l'historique de contrôle de versions par clé." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Ordre des clés de tri du début de l'élément de l'historique :" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" +"Fusionner l'historique de contrôle de versions lors du démarrage de la fusion" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Exécuter la fusion automatique de l'historique de contrôle de versions au " +"début de la fusion." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Nombre maximal d'éléments d'historique :" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Couper après le nombre spécifié. Utiliser -1 pour un nombre illimité " +"d'éléments." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Testez vos expressions rationnelles" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Commande de fusion non pertinente :" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Si indiquée, ce script est lancé après une fusion automatique\n" +"quand aucun autre changement pertinent n'a été détecté.\n" +"Appelée avec les paramètres : nom_fichier1 nom_fichier2 nom_fichier3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Enregistrer automatiquement et quitter en cas de fusion sans conflits" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Lorsque KDiff3 a été lancé depuis la ligne de commande pour effectuer une " +"fusion de fichiers et\n" +"que tous les conflits peuvent être résolus sans interaction de " +"l'utilisateur, alors cette commande enregistre automatiquement et ferme " +"l'application.\n" +"(Similaire à l'option en ligne de commande « --auto »)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Dossiers récursifs" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Si vous voulez ou non analyser les sous-dossiers." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Motif(s) de fichiers :" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Motif(s) de fichiers à analyser. \n" +"Jokers : « * » et «  ? » \n" +"Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Motif(s) de fichiers refusé(s) :" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Motif(s) de fichiers à exclure de l'analyse.\n" +"Jokers : « * » et « ? »\n" +"Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Motif(s) de fichiers refusé(s) :" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Motif(s) de dossiers à exclure de l'analyse.\n" +"Jokers : « * » et « ? »\n" +"Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Utiliser un fichier « ignore »" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Étend l'exclusion de motif(s) à tout ce qui serait ignoré par le contrôle de " +"code source.\n" +"Grâce aux fichiers « ignore » locaux, ceci peut être spécifique à un dossier." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Chercher les fichiers et les dossiers cachés" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Chercher les fichiers et les dossiers cachés." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Suivre les liens vers des fichiers" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activé : compare le fichier sur lequel pointe le lien.\n" +"Désactivé : compare les liens." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Suivre les liens vers des dossiers" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Activé : compare le dossier sur lequel pointe le lien.\n" +"Désactivé : compare les liens." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Tenir compte de la casse lors de la comparaison des noms de fichiers" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"La comparaison de dossiers compare les fichiers ou les dossiers lorsque " +"leurs noms correspondent.\n" +"Réglez cette option si la casse des noms doit correspondre. (Désactivée par " +"défaut pour Windows, sinon Activée)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Déplier tous les sous-dossiers au chargement" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Activé : déplier tous les sous-dossiers lors d'une comparaison de dossiers.\n" +"Désactivé : conserver les sous-dossiers repliés." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Sauter le rapport d'état du dossier" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Activé : ne pas afficher l'État de la comparaison des dossiers.\n" +"Désactivé : afficher la boîte de dialogue d'état au démarrage." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Mode de comparaison de fichiers" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Comparaison binaire" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Comparaison binaire de chaque fichier. (Par défaut)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Analyse complète" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Effectue une analyse complète et affiche les informations statistiques dans " +"des colonnes supplémentaires.\n" +"(Plus lente qu'une comparaison binaire, beaucoup plus pour les fichiers " +"binaires)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Se fier à la taille et à la date de modification (peu sûr)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Suppose que les fichiers sont identiques si la date de modification et la " +"longueur du fichier sont égales.\n" +"Les fichiers ayant un contenu identique mais des dates de modification " +"distinctes apparaîtront comme étant différents.\n" +"Utile pour les dossiers volumineux ou les réseaux lents." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Se fier à la tailler et à la date, mais utiliser la comparaison binaire si " +"la date ne correspond pas (peu sûr)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Suppose que les fichiers sont identiques si la date de modification et la " +"longueur du fichier sont égales.\n" +"Si la date n'est pas identique mais que les tailles le sont, utilise la " +"comparaison binaire.\n" +"Utile pour les dossiers volumineux ou les réseaux lents." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Se fier à la taille (peu sûr)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Suppose que tous les fichiers sont identiques si leurs longueurs sont " +"égales.\n" +"Utile pour les dossiers volumineux ou les réseaux lents, quand la taille est " +"modifiée durant le téléchargement." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Synchroniser les dossiers" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Propose d'enregistrer les fichiers dans les deux dossiers pour que les deux " +"dossiers soient identiques ensuite.\n" +"Fonctionne seulement quand la comparaison de deux dossiers ne spécifie pas " +"de destination." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Différences d'espaces considérées comme égales" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Si les fichiers ne diffèrent que par des espaces, ils sont considérés comme " +"identiques.\n" +"Cette fonction n'est active que si vous choisissez l'analyse complète." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copier le plus récent au lieu de fusionner (peu sûr)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"N'ouvre pas le fichier, se contente de prendre le plus récent.\n" +"(À n'utilisez que si vous savez ce que vous faites !)\n" +"Option effective seulement lors de la comparaison de dossiers." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Sauvegarder les fichiers (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Quand il s'agira d'enregistrer un fichier sur un fichier plus ancien, alors " +"l'ancien\n" +"sera renommé avec une extension « .orig » au lieu d'être supprimé." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Paramètres régionaux" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Utiliser le même encodage pour tout :" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Cocher cette option permet de changer tous les encodages en ne modifiant que " +"le premier.\n" +"Décochez-la si des paramètres individuels différents sont nécessaires." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Remarque : l'encodage local est « %1 »" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Encodage du fichier pour A :" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Si cette option est cochée, alors l'encodage Unicode (UTF-16 ou UTF-8) sera " +"détecté.\n" +"Si le fichier n'est pas en Unicode, alors l'encodage sélectionné sera " +"utilisé comme solution de repli\n" +"(la détection de l'Unicode repose sur les premiers octets d'un fichier)." + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Détecter automatiquement Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Encodage du fichier pour B :" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Encodage du fichier pour C :" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Encodage du fichier pour la sortie de la fusion et l'enregistrement :" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Sélectionner automatiquement" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Si cette option est cochée, l'encodage provenant des fichiers d'entrée est " +"utilisé.\n" +"Dans les cas ambigus, une boîte de dialogue demandera à l'utilisateur de " +"choisir l'encodage pour l'enregistrement." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Encodage du fichier pour les fichiers préprocesseurs :" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Langue de droite à gauche" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Certaines langue se lisent de droite à gauche.\n" +"Ce paramètre changera l'afficheur et l'éditeur en conséquence." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Intégration" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Paramètres d'intégration" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Options en ligne de commande à ignorer :" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Liste des options en ligne de commande qui devront être ignorées quand " +"KDiff3 est utilisé par d'autres outils.\n" +"Plusieurs valeurs peuvent être spécifiées si on les sépare par des « ; »,\n" +"ce qui supprimera l'erreur « Option inconnue »." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Quitter également à l'aide de la touche « Échap »" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Méthode rapide pour sortir de l'application.\n" +"Pour les personnes qui sont habituées à utiliser la touche « Échap »." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"Cette commande réinitialise toutes les options. Pas seulement celles de la " +"rubrique actuelle." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Commande de préprocesseur : " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" +"Les options suivantes que vous avez choisies risquent de changer les " +"données :\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Il est fort probable que ce ne soit pas souhaité durant une fusion.\n" +"Voulez-vous désactiver ces réglages ou continuer avec ces paramètres actifs ?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Option peu sûre pour une fusion" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Utiliser ces options durant la fusion" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Désactiver les options peu sûres" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Chargement de A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Chargement de A : %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Chargement de B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Chargement de B : %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Différences : entre A et B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Différences de lignes : entre A et B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Chargement de C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Chargement de C : %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Différences : entre A et C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Différences : entre B et C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Différences de lignes : entre B et C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Différences de lignes : entre A et C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Tous les fichiers d'entrée contiennent le même texte, mais ne sont pas " +"binairement identiques." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Les fichiers %1 et %2 ont le même texte, mais ne sont pas binairement " +"identiques. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Certains fichiers d'entrée ne semblent pas être des fichiers texte pur.\n" +"Veuillez remarquer que la fusion KDiff3 n'a pas été prévue pour les données " +"binaires.\n" +"Continuez à vos risques et périls." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Il est impossible de convertir certains caractères d'entrée en Unicode " +"valable.\n" +"Il se peut que vous utilisiez un codec incorrect. (ex. UTF-8 pour des " +"fichiers non-UTF-8).\n" +"N'enregistrez pas le résultat si vous avez un doute. Poursuivez à vos " +"propres risques.\n" +"Les fichiers affectés sont dans %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Abandonner" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Ouverture des fichiers..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Coupe de la sélection..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Copie de la sélection dans le presse-papiers..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Insertion du contenu du presse-papiers..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" +"Retour à la ligne automatique (L'annulation désactive le retour à la ligne)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Calcul de la largeur maximale pour la barre de défilement horizontale" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Enregistrer et continuer" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continuer sans enregistrer" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Recherche terminée." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Recherche terminée" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" +"Rien n'est sélectionné dans l'une ou l'autre des fenêtres d'entrée des " +"différences." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Erreur lors de l'ajout d'une plage de différences manuel" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Annuler" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Permuter %1 <==> %2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copier %1 ==> Sortie" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Permuter %1<==>Sortie" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configurer..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Ouvrir un dossier" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Sélectionnez le fichier de sortie" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Tous les fichiers (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Texte à chercher :" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Tenir compte de la casse" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Chercher dans A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Chercher dans B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Chercher dans C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Chercher dans la sortie" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Chercher" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Contrôleur d'expressions rationnelles" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Exemple de ligne de fusion automatique :" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Pour effectuer un test de fusion automatique, copiez une ligne comme utilisé " +"dans vos fichiers." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Résultat de la correspondance :" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Exemple de ligne de début d'historique (avec commentaire de départ) :" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copiez une ligne de début d'historique comme utilisé dans vos fichiers,\n" +"y compris le commentaire de départ." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Ordre des clés de tri de l'historique :" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Exemple de ligne de début d'élément d'historique (avec commentaire de " +"départ) :" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copiez une ligne de début d'élément d'historique comme utilisé dans vos " +"fichiers,\n" +"mais en omettant le commentaire de départ." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Résultat de la clé de tri :" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Correspondance correcte." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Correspondance incorrecte." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Les parenthèses d'ouverture et de fermeture ne correspondent pas dans " +"l'expression rationnelle." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" +"Impossible d'écrire les données du presse-papiers dans un fichier temporaire." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Depuis le presse-papiers" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "« %1 » n'est pas un fichier normal." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Le fichier temporaire est : %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Il se peut que le prétraitement ait échoué. Vérifiez cette commande :\n" +"\n" +" %1\n" +"\n" +"La commande de prétraitement sera désactivée dorénavant." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Le fichier %1 est trop volumineux pour être traité. Il sera sauté." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Le prétraitement de mise en correspondance de lignes a probablement échoué. " +"Vérifiez cette commande :\n" +"\n" +" %1\n" +"\n" +"La commande de prétraitement de mise en correspondance de lignes sera " +"désactivée dorénavant." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Un espace est attendu après un guillemet fermant." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Guillemets non associés." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Guillemet inattendu dans l'argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Pas de programme spécifié." \ No newline at end of file diff --git a/po/fr/kdiff3fileitemactionplugin.po b/po/fr/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..a8c6f21 --- /dev/null +++ b/po/fr/kdiff3fileitemactionplugin.po @@ -0,0 +1,113 @@ +# translation of kdiff3fileitemactionplugin.po to Français +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Joëlle Cornavin , 2011. +# xavier , 2013, 2021. +# Simon Depiets , 2018, 2019. +# Johnny Jazeix , 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-01-12 07:29+0100\n" +"Last-Translator: Xavier Besnard \n" +"Language-Team: French \n" +"Language: fr\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 20.12.0\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Comparer avec %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Fusionner avec %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Enregistrer « %1 » pour plus tard" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusion de trois versions de fichiers avec la base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Comparer avec..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Effacer une liste" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Comparer" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparaison de trois versions de fichiers" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "À propos du module externe de menu KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Module externe d'actions sur des éléments de fichiers pour KDiff3 : " +"copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Utilisation de l'extension du menu contextuel :\n" +"Pour une comparaison simple de deux fichiers sélectionnés, choisissez " +"« Comparer ».\n" +"Si l'autre fichier se trouve dans un autre endroit quelconque, " +"« enregistrez » le premier fichier pour plus tard. Il apparaîtra dans le " +"sous-menu « Comparer avec... ». Puis utilisez « Comparer avec » sur le " +"second fichier.\n" +"Pour une fusion de 3 fichiers, « enregistrez » d'abord le fichier base, puis " +"la branche à fusionner et choisissez « Fusion de trois versions de fichiers " +"avec la base » sur l'autre branche, qui sera utilisée comme destination.\n" +"Le même principe s'applique à la comparaison et à la fusion de dossiers." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" +"À propos du module externe d'actions sur des éléments de fichiers pour KDiff3" \ No newline at end of file diff --git a/po/ga/kdiff3.po b/po/ga/kdiff3.po new file mode 100644 index 0000000..1d3f1eb --- /dev/null +++ b/po/ga/kdiff3.po @@ -0,0 +1,3340 @@ +# Irish translation of kdiff3 +# Copyright (C) 2009 This_file_is_part_of_KDE +# This file is distributed under the same license as the kdiff3 package. +# Kevin Scannell , 2009. +msgid "" +msgstr "" +"Project-Id-Version: playground-devtools/kdiff3.po\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2008-04-18 14:59-0500\n" +"Last-Translator: Kevin Scannell \n" +"Language-Team: Irish \n" +"Language: ga\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==2 ? 1 : n<7 ? 2 : n < 11 ? " +"3 : 4\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Kevin Scannell" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kscanne@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Cuimhne ídithe" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Making folder: %1" +msgstr "Comhadlann" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Removing folder: %1" +msgstr "Comhadlann" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading folder: %1" +msgstr "Comhadlann" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "níl ar fáil" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Ionchódú:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Ionchódú:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Deireadh" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open File" +msgstr "Comhad" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Cumaisc" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Críochnaithe." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Earráid" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Ainm" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Oibríocht" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stádas" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Réitithe" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Bán" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Rabhadh" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Athscan" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Saving file..." +msgid "Scanning folders..." +msgstr "Comhad á shábháil..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder A" +msgstr "Comhadlann" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder B" +msgstr "Comhadlann" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder C" +msgstr "Comhadlann" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Réidh." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error while creating folder." +msgstr "Earráid agus %1 á léamh" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Cineál" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Méid" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Comhad" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "níl ar fáil" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ná Déan Faic" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Earráid agus %1 á léamh" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Athluchtaigh" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Éirigh as an bhfeidhmchlár" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Gearr an rannán roghnaithe agus cuir é sa ghearrthaisce" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Cuir cóip den rannán roghnaithe sa ghearrthaisce" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Greamaigh inneachar na gearrthaisce ag ionad an chúrsóra" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Cumasaigh/díchumasaigh an barra stádais" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Comhad á shábháil..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Comhad á shábháil le hainm comhaid nua..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Sábháil Mar..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Á Phriontáil..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Roghnú" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Priontáil tobscortha." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Ag scor..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Barra uirlisí á scoránú..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Scoránaigh an barra stádais..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, fuzzy, kde-format +#| msgid "KDiff3" +msgid "&KDiff3" +msgstr "KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +#| msgid "Configure" +msgid "Configure KDiff3" +msgstr "Cumraigh" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Comhad" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Cumaisc" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Fuinneog" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Príomhbharra Uirlisí" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Déan neamhaird de" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Coinbhleachtaí" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Aschur" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding for saving:" +msgstr "Ionchódú:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Coinbhleacht" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Comhad..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "ISO 8859-1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Cumraigh" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Cló" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Dath" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Dath an tulra:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Dath an chúlra:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Eagarthóir" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Fuinneog" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Roghnaigh go hUathoibríoch" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Socruithe Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Déileálfar leis mar spás bán." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Déileálfar le nótaí tráchta C/C++ mar spás bán." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Déileálfar le nótaí tráchta C/C++ mar spás bán." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Déileálfar leis mar spás bán." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Déileálfar le difríochtaí i gcás mar athruithe sa spás bán. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Cumaisc" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Roghnaigh go hUathoibríoch" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Comhtháthú" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading A: %1" +msgstr "Ionchódú:" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading B: %1" +msgstr "Ionchódú:" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading C: %1" +msgstr "Ionchódú:" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Tobscoir" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Roghnúchán á ghearradh..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Roghnúchán á chóipeáil go dtí an ghearrthaisce..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Inneachar na gearrthaisce á ionsá..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cealaigh" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Cumraigh..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open Folder" +msgstr "Comhad" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Cásíogair" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Cuardach" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/ga/kdiff3fileitemactionplugin.po b/po/ga/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..40bfa0d --- /dev/null +++ b/po/ga/kdiff3fileitemactionplugin.po @@ -0,0 +1,93 @@ +# Irish translation of kdiff3fileitemactionplugin +# Copyright (C) 2011 This_file_is_part_of_KDE +# This file is distributed under the same license as the kdiff3fileitemactionplugin package. +# Kevin Scannell , 2011. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2011-12-28 12:28-0500\n" +"Last-Translator: Kevin Scannell \n" +"Language-Team: Irish \n" +"Language: ga\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==2 ? 1 : n<7 ? 2 : n < 11 ? " +"3 : 4\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare" +msgid "Compare with..." +msgstr "Cuir i gComparáid" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Cuir i gComparáid" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" \ No newline at end of file diff --git a/po/gl/diff_ext.po b/po/gl/diff_ext.po new file mode 100644 index 0000000..b778f3f --- /dev/null +++ b/po/gl/diff_ext.po @@ -0,0 +1,131 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Adrián Chaves (Gallaecio) , 2018, 2019. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2019-06-01 17:59+0200\n" +"Last-Translator: Adrián Chaves (Gallaecio) \n" +"Language-Team: Galician \n" +"Language: gl\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" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar con %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Fundir con %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusión de 3 ficheiros con base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Gardar «%1» para máis tarde" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Comparar con…" + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Limpar a lista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparación de 3 ficheiros" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Sobre Diff-Ext…" + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext © 2003-2006 Sergey Zorin. Todos os dereitos reservados.\n" + +#: diff_ext.cpp:325 +#, fuzzy, kde-format +#| msgid "This software is distributable under the BSD-2-Clause license.\n" +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" +"Este software pode distribuírse baixo os termos da licenza BSD de dúas " +"cláusulas.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Algúns complementos para KDiff3 © 2006-2013 Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Páxina web de Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, fuzzy, kde-format +#| msgid "About Diff-Ext for KDiff3 " +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Sobre Diff-Ext para KDiff3 " + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Comparar os ficheiros seleccionados" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Comparar «%1» con «%2»" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Gardar «%1» para unha operación futura" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Non se puido iniciar KDiff3. Instale KDiff3 de novo." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Orde" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Liña de ordes" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext para KDiff3" \ No newline at end of file diff --git a/po/gl/kdiff3.po b/po/gl/kdiff3.po new file mode 100644 index 0000000..3b3e993 --- /dev/null +++ b/po/gl/kdiff3.po @@ -0,0 +1,3720 @@ +# translation of kdiff3.po to galician +# +# mvillarino , 2006, 2007, 2008, 2009. +# Marce Villarino , 2009. +# Marce Villarino , 2010. +# Xabier Villar , 2011, 2013. +# Adrián Chaves Fernández (Gallaecio) , 2017. +# Adrián Chaves (Gallaecio) , 2017, 2018, 2019. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2019-10-19 22:33+0200\n" +"Last-Translator: Adrián Chaves (Gallaecio) \n" +"Language-Team: Galician \n" +"Language: gl\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 19.11.70\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Xabier Villar" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "xabier.villar@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Estase a obter o estado do ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Estase a ler o ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Estase a escribir o ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Esgotou a memoria" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Estase a crear o directorio: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Estase a retirar o ficheiro. %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Estase a retirar o ficheiro. %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Estase a crear a ligazón simbólica: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Renomeando o ficheiro: %1 → %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Estase a copiar o ficheiro: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Estase a ler o ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Estase a listar o directorio: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Erro de perda de datos:\n" +"Se fose reproducíbel, contacte co autor.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Erro interno grave" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Erro interno grave" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Erro interno grave" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Ficheiro %1: liña %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Ficheiro %1: a liña non está dispoñíbel" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codificación:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Estilo do fin de liña:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codificación: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Estilo de fin de liña: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Liña superior" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fin" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Abrir un ficheiro" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Outro" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copiar A para B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copiar B para A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Eliminar A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Eliminar B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Eliminar A e B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Xuntar en A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Xuntar en B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Xuntar en A e B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Eliminar (se existe)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Xuntar" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Xuntar (manual)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Erro: Tipos de ficheiros en conflito" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Erro: Cambiado e eliminado" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Erro: As datas son iguais pero os ficheiros non." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Feito" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Erro" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Ignorado." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Non gardado." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "En progreso…" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Por facer." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nome" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operación" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Estado" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Non resolvido" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Resolvido" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Non baleiro" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Baleiro" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Está a facer unha fusión de directorios. Quere realmente interromper a " +"fusión e analizar o directorio de novo?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Aviso" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Analizar de novo" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continuar coa fusión" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "A apertura dos directorios fallou:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "O directorio A «%1» non existe ou non é un directorio.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "O directorio B «%1» non existe ou non é un directorio.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "O directorio C «%1» non existe ou non é un directorio.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Erro de acceso ao ficheiro" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"O directorio de destino non pode ser o mesmo que o A ou o B cando son " +"fusionados tres directorios.\n" +"Comprobe de novo antes de continuar." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Aviso de parámetro" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Estase a analizar os directorios…" + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Estase a ler o ficheiro: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Estase a ler o ficheiro: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Estase a ler o ficheiro: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Algúns dos subcartafoles non eran lexíbeis" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Comprobe os permisos dos subcartafoles." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Listo." + +#: directorymergewindow.cpp:993 +#, fuzzy, kde-format +#| msgid "" +#| "Directory Comparison Status\n" +#| "\n" +#| "Number of subdirectories: %1\n" +#| "Number of equal files: %2\n" +#| "Number of different files: %3" +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Estado de comparación de directorios\n" +"\n" +"Número de subdirectorios: %1\n" +"Número de ficheiros iguais: %2\n" +"Número de ficheiros distintos: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Número de fusións manuais: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Isto afecta a todas as operacións de fusión." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Estase a cambiar todas as operacións de fusión" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Procesando %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Algúns ficheiros non puideron procesarse." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Esta operación non é posíbel de momento." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operación non posíbel" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Produciuse un erro ao copiar." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Erro na fusión" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Operación de fusión descoñecida. (Isto non debera ocorrer nunca!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Operación de fusión descoñecida." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"A fusión está a piques de comezar.\n" +"\n" +"Escolla «Facela» se leu as instrucións e sabe o que está a facer.\n" +"Se escolle «Simulala» saberá o que ocorrería.\n" +"\n" +"Teña en conta que este programa aínda está en estado Beta e non hai ningunha " +"GARANTÍA! Faga copias de seguranza dos seus datos vitais!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Estase a iniciar a fusión" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Facela" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulala" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"O elemento realzado ten un tipo distinto nos directorios. Escolla que facer." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"As datas de modificación dos ficheiros son iguais pero estes non o son. " +"Escolla que facer." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"O elemento realzado cambiou nun directorio e eliminouse no outro. Escolla " +"que facer." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Esta operación non é posíbel de momento porque se está a fundir o directorio." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Produciuse un erro no último paso.\n" +"Quere continuar co elemento que causou o erro ou quere saltalo?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continuar a fusión despois dun erro" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continuar co último elemento" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Saltar o elemento" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "A operación de fusión concluíu." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fusión completada" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"A simulación da fusión concluíu: Comprobe se concorda coas operacións " +"propostas." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Ocorreu un erro. Prema Aceptar para ver información detallada." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Erro: Eliminando %1: A creación da copia de seguranza fallou." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "eliminar recursivamente os directorios (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "eliminar (%1)" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Erro: a operaión de eliminación de directorio fallou ao intentar ler o " +"directorio." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Erro: a operación rmdir (%1) fallou." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Erro: a operación de eliminación fallou." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "unión manual(%1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr " Nota: Despois dunha unión manual debe continuar premendo F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "Erro: copiar(%1 -> %2) fallou. Non se eliminou o destino existente." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink(%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Erro: copyLink fallou: As ligazóns remotas aínda non se admiten." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Erro: copyLink fallou." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copia(%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Ocorreu un erro ao renomear (%1 → %2): Non se pode eliminar o destino " +"existente." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "renomear (%1 → %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Erro: o renomeamento fallou." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Erro durante makeDir de %1. Non se pode eliminar o ficheiro existente." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir(%1)" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Ocorreu un erro ao crear o directorio." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipo" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Tamaño" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrib" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Última modificación" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destino da ligazón" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Ficheiro" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Ligazón" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "non dispoñíbel" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Gardar o estado da fusión de directorios como…" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Iniciar/Continuar a fusión do directorio" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Executar a operación no elemento actual" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Comparar o ficheiro escollido" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Fundir o ficheiro actual" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Xuntar\n" +"o ficheiro" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Recoller todos os subcartafoles" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Expandir todos os subcartafoles" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Escoller todos os elementos de A" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Escoller todos os elementos de B" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Escoller todos os elementos de C" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Escoller automaticamente a operación para todos os elementos" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ningunha operación para todos os elementos" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Mostrar os ficheiros idénticos" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Ficheiros\n" +"idénticos" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Mostrar os ficheiros distintos" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Mostrar os ficheiros só en A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Ficheiros\n" +"só en A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Mostrar os ficheiros só en B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Ficheiros\n" +"só en B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Mostrar os ficheiros só en C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "Ficheiros só en C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Comparar os ficheiros escollidos explicitamente" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Fundir os ficheiros escollidos explicitamente" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Non facer ren" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Eliminar A e B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Xuntar en A e B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Non se pode determinar o URL completo. Non se indicou ningún pai." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Non se puido ler o ficheiro: %1." + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Fallou a creación da copia temporal de %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Fallou a abertura de %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Ocorreu un erro ao ler de %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"A eliminación dunha copia de seguranza anterior fallou ao intentar facer " +"unha copia de seguranza.\n" +"Ficheiro: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"O cambio de nome fallou ao intentar facer unha copia de seguranza.\n" +"Ficheiros: %1 → %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configuración actual:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Erro da opción de configuración:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"Indicouse a opción --auto, pero non se especificou ningún ficheiro de saída." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "A opción --auto é ignorada para a comparación de directorios." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "A garda fallou." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Fallou o acceso a estes ficheiros:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Erro ao abrir o ficheiro" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Abre os documentos para comparalos…" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Cargar de novo" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Garda o resultado da fusión. Todos os conflitos deben estar resolvidos!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Garda o documento actual como…" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Imprimir as diferenzas" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Sae da aplicación" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Corta a sección escollida e colócaa no portapapeis" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia a sección escollida no portapapeis" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Pega o contido do portapapeis na posición actual" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Escolle todo na xanela actual" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Busca un texto" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Busca de novo o texto" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Activa/desactiva a barra de estado" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configurar KDiff3…" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ir ao delta actual" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Delta\n" +"actual" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ir ao primeiro delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Primeiro\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ir ao último delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Último\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Ignora as diferenzas de espazos se «Mostrar os espazos en branco» está " +"desactivado.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Non ignora as diferenzas de espazos mesmo se «Mostrar os espazos en branco» " +"está desactivado.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ir ao delta anterior" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "Delta anterior" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ir ao seguinte delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "Seguinte delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ir ao conflito anterior" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflito\n" +"anterior" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ir ao seguinte conflito" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "Seguinte conflito" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ir ao anterior conflito por resolver" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Non resolvido\n" +"anterior" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ir ao seguinte conflito por resolver" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Seguinte\n" +"non resolvido" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Escoller as liñas de A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Escoller\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Escoller as liñas de B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Escoller\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Escoller as liñas de C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Escoller\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Ir automaticamente para o seguinte conflito por resolver tras escoller a " +"fonte" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Ir automaticamente\n" +"ao seguinte" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Mostrar os caracteres de espazos e tabuladores" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Caracteres\n" +"en branco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Mostrar os espazos en branco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Deltas\n" +"en branco" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Mostrar os números de liña" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Números\n" +"de liña" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Resolver automaticamente os conflitos simples" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Pasar os deltas para conflitos" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Executar a fusión automática de expresións regulares" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Resolver automaticamente os conflitos do historial" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Dividir a diferenza na selección" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Xuntar as diferenzas escollidas" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Mostrar a xanela A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Mostrar a xanela B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Mostrar a xanela C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Resumo normal" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Resumo A vs. B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Resumo A vs. C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Resumo B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Saltar de liña nas xanelas de diferenzas" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Engadir o aliñamento manual das diferenzas" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Limpar todos os aliñamentos de diferenzas manuais" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Enfocar a xanela seguinte" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Enfocar a xanela anterior" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Conmutar a orientación da repartición" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Dividir a vista de directorios e texto" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Conmutar entre a vista de directorios e de texto" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "O resultado da fusión aínda non se gardou." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Gardar e saír" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Saír sen gardar" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "A garda do resultado da fusión fallou." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Está a facer unha fusión de directorios. Quere realmente interrompela?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Estase a gardar o ficheiro…" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Estas a gardar o ficheiro cun nome novo…" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Gardar como…" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "A impresión non está realizada." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Imprimindo…" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Imprimindo a páxina %1 de %2." + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (selección)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "A impresión rematou." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Interrompeuse a impresión." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Saíndo…" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Estase a conmutar a barra de ferramentas…" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Conmutar a barra de estado…" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Parte de KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Unha KPart para mostrar imaxes SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configurar KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Non se puido inicializar a compoñente KDiff3.\n" +"Isto ocorre normalmente debido a un problema de instalación. Lea o ficheiro " +"README no paquete coas fontes para máis detalles." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Ficheiro" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operación de fusión do elemento actual" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operación de sincronización do elemento actual" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&ovemento" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "&Diferenzas" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "&Xuntar" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Xanela" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra de ferramentas Principal" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorado. (Definido polo usuario.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bits)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bits)" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Ferramenta para comparar e fundir ficheiros e directorios" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "© 2002-2014 Joachim Eibl, © 2017 Michael Reeve; Adaptación a KF5 e Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Fundir a entrada." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" +"Ficheiro de base explícito. Para compatibilidade con certas ferramentas." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Ficheiro de saída. Implica -m. P.ex.: -o novoficheiro.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Ficheiro de saída, de novo. (Para compatibilidade con certas ferramentas)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Sen interface se todos os conflitos son resolvidos automaticamente. (Precisa " +"de -o ficheiro)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorado." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Substitución do nome visíbel para o ficheiro de entrada 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Substitución do nome visíbel para o ficheiro de entrada 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Substitución do nome visíbel para o ficheiro de entrada 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Substitución alternativa do nome visíbel. Indique isto para cada entrada." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Substitúe unha opción de configuración. Use unha vez para cada opción. P." +"ex.: --cs \" AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Mostra unha lista das opcións de configuración e os valores actuais." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Usar un ficheiro de configuración distinto." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "o ficheiro 1 a abrir (base, se non se indicou mediante --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "o ficheiro 2 a abrir" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "o ficheiro 3 a abrir" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Ver con «kdiff3 --help» as opcións permitidas." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Non se pode comparar un ficheiro anormal cun ficheiro normal." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mestura de ligazóns e ficheiros normais." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Ligazón: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Tamaño. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data e tamaño: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Estase a comparar o ficheiro…" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Escoller A en todas as partes" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Escoller B en todas as partes" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Escoller C en todas as partes" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Escoller A en todos os conflitos por resolver" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Escoller B en todos os conflitos por resolver" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Escoller C en todos os conflitos por resolver" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Escoller A en todos os conflitos de espazos por resolver" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Escoller B en todos os conflitos de espazos por resolver" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Escoller C en todos os conflitos de espazos resolver" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Número de conflitos por resolver: %1 (dos cales %2 son espazos en branco)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Modificouse a saída.\n" +"Se continúa os seus cambios esqueceranse." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Todos os ficheiros de entrada son iguais a nivel binario." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Todos os ficheiros de entrada conteñen o mesmo texto." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Os ficheiros %1 e %2 son iguais a nivel binario.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Os ficheiros %1 e %2 teñen texto igual.\n" + +#: mergeresultwindow.cpp:1042 +#, fuzzy, kde-format +#| msgid "" +#| "Total number of conflicts: %1\n" +#| "Nr of automatically solved conflicts: %2\n" +#| "Nr of unsolved conflicts: %3\n" +#| "%4" +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Número total de conflitos: %1\n" +"Número de conflitos resoltos automaticamente: %2\n" +"Número de conflitos sen resolver: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflitos" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Aínda non se resolveron todos os conflitos.\n" +"O ficheiro non se gardou." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Quedan conflitos" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Hai un conflito no estilo do fin de liña. Escóllao manualmente.\n" +"Non se gardou o ficheiro." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"A creación da copia de seguranza fallou. O ficheiro non se gardou." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Erro ao gardar o ficheiro" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Ocorreu un erro ao gardar." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Saída:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modificado]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codificación para gardar:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflito" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Códec de A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Códec de B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Códec de C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base) :" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Resultado (opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Ficheiro…" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Intercambiar ou copiar os nomes…" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Un elemento de historial do control de versión ten varias liñas.\n" +"Indique a expresión regular usada para detectar a primeira liña (sen o " +"comentario inicial).\n" +"Use os parénteses para agrupar as chaves que quere usar na ordenación.\n" +"Se o deixa en branco, KDiff3 asume que as liñas baleiras separan os " +"elementos do historial.\n" +"Consulte documentación para saber máis detalles." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Cada paréntese usado na expresión regular para o elemento inicial do " +"historial\n" +"agrupa unha chave que pode usarse na ordenación.\n" +"Indique a lista de chaves (que son numeradas por orde de aparición,\n" +"comezando polo 1), usando a «,» como separador (p.ex., «4,5,6,1,2,3,7»).\n" +"De deixalo baleiro, non será feita ningunha ordenación.\n" +"Consulte a documentación para saber máis detalles." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"A expresión regular das liñas nas que KDiff3 deberá escoller automaticamente " +"unha orixe.\n" +"Cando unha liña cun conflito corresponda coa expresión regular entón\n" +"C -se está dispoñíbel-, en caso contrario escollerase B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"A expresión regular para o inicio de entrada de historial do control de " +"versións.\n" +"Normalmente, este valor contén a palabra clave «$Log$».\n" +"Valor predeterminado: «.*\\$Log.*\\$.*»" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Cambiar o tipo de letra" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Tipo de letra: %1, %2, %3\n" +"\n" +"Exemplo:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Cambie isto se os caracteres non-ASCII non son mostrados correctamente." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configurar" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Fonte" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Tipo de letra do resultado de Diff e do editor" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Tipo de letra da aplicación" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Tipo de letra da vista de ficheiros" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Cor" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Configuración das cores" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Vistas do editor e das diferenzas:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Cor principal:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Cor de fondo:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Cor de fondo das diferenzas:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Cor A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Cor B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Cor C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Cor de conflito:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Cor de fondo do intervalo actual:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Cor de fondo da diferenza do intervalo actual:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Cor dos intervalos de diferenzas aliñados manualmente:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "Vista de comparación dos directorios:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Cor do ficheiro máis recente:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Se cambia esta cor, só terá efecto ao iniciar a próxima comparación de " +"directorios." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Cor do ficheiro máis antigo:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Cor dos ficheiros intermedios:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Cor dos ficheiros en falta:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportamento do editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "O tabulador insire espazos" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Activado: premer Tab xera o número axeitado de espazos.\n" +"Non activado: inserirase un carácter de tabulación." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tamaño das tabulacións:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Sangrado automático" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Sinalado: O sangrado da liña anterior é usado na nova liña.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Copiar automaticamente a selección" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Sinalado: calquera selección é posta automaticamente no portapapeis.\n" +"Non sinalado: Terá que copiar explicitamente, p.ex., con Ctrl+C." + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "Dos/Windows" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Autodetect" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Detectar automaticamente" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Escolle as fins de liña para cando un ficheiro editado se garda.\n" +"DOS/Windows: CR+LF; UNIX: LF; con CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Configuración de Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignorar os números (tratar como espazo en branco)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignora os caracteres numéricos durante a fase de correspondencia das liñas. " +"(Similar a Ignorar os espazos).\n" +"Pode axudar a comparar ficheiros con datos numéricos." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignorar os comentarios de C/C++ (tratalos como espazo en branco)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tratar os comentarios de C/C++ como espazo en branco." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignorar as maiúsculas (tratalas como espazo en branco)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Trata as diferenzas de maiúsculas e minúsculas como cambios de espazo en " +"branco. («a»<=>«A»)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Orde do preprocesador:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Preprocesamento definido polo usuario. (Consulte a documentación para máis " +"detalles)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Orde do preprocesador para a correspondencia de liñas:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Este preprocesador só é usado na correspondencia das liñas.\n" +"(Consulte a documentación para máis detalles)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Intentar con persistencia (lento)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Activa a opción --minimal do «diff».\n" +"A análise dos ficheiros grandes será moito máis lenta." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Aliñar B e C para 3 ficheiros de entrada" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Intenta aliñar B e C ao comparar ou fusionar tres ficheiros de entrada.\n" +"Non se recomenda á hora de fusionar porque se pode complicar.\n" +"(De maneira predeterminada esta desactivado)." + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Xuntar" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Configuración da fusión" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Atraso no avance automático (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Cando estea no modo de Avance Automático, o resultado da selección actual\n" +"é mostrado durante o tempo indicado, antes de ir ao seguinte conflito. " +"Intervalo: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Mostrar os diálogos de información" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Mostra un diálogo con información sobre o número de conflitos." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" +"Comportamento predeterminado de fusión de espazo en branco con 2 ficheiros:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Escolla manual" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Permítelle ao algoritmo de unión escoller automaticamente a entrada a " +"utilizar para os cambios de só espazo en branco." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Predeterminado da fusión de espazo en branco con 3 ficheiros:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Expresión regular de fusión automática" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Expresión regular de fusión automática:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Executar a unión automática da expresión regular ao iniciar a fusión" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Executa a fusión para as expresións regulares de fusión automática\n" +"inmediatamente despois do inicio dunha fusión.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Fusión do historial do control de versións" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Expresión regular do inicio do historial:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Expresión regular do inicio da entrada do historial:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ordenación da fusión do historial" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ordenar o historial do control de versións por unha chave." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Orde da chave de ordenación do inicio da entrada no historial:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Unir o historial do control de versións ao iniciar a fusión" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Executa a fusión automática do historial do control de versións ao iniciar a " +"fusión." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Número máximo de entradas do historial:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Remata tras o número indicado de entradas. Empregue -1 para infinitas." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Verificar as expresións regulares" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Orde de fusión irrelevante:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"De indicarse, este script é executado despois da fusión automática,\n" +"cando non se detecten máis cambios relevantes.\n" +"É invocado cos parámetros: ficheiro1 ficheiro2 ficheiro3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Garda automaticamente e sae tras unha fusión sen conflitos" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Se KDiff3 se iniciou desde a liña de ordes para fusionar\n" +"ficheiros e todos os conflitos sexan resolúbeis sen interacción do usuario,\n" +"entón garda automaticamente e sae.\n" +"(Similar á opción da liña de ordes «--auto»)." + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Directorios recursivos" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "Indica se debe analizar os subcartafoles ou non." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Padróns de ficheiros:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Os padróns dos ficheiros a analizar.\n" +"Caracteres de substitución: «*» e «?»\n" +"Pode indicar varios padróns usando o separador: «;»" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Anti-padróns de ficheiros:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Os padróns dos ficheiros a excluír da análise.\n" +"Caracteres de substitución: «*» e «?»\n" +"Pode indicar varios padróns usando o separador: «;»" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Anti-padróns de ficheiros:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Os padróns dos ficheiros a excluír da análise.\n" +"Caracteres de substitución: «*» e «?»\n" +"Pode indicar varios padróns usando o separador: «;»" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "Empregar .cvsignore" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Estende o antipatrón a todo o que sería ignorado polo CVS.\n" +"Isto pode ser específico para cada directorio, mediante os ficheiros «." +"cvsignore» locais." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "Atopar ficheiros e directorios agochados" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Finds hidden files and directories." +msgid "Finds hidden files and folders." +msgstr "Atopa ficheiros e directorios agochados." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Seguir as ligazóns de ficheiros" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Sinalado: Compara o ficheiro ao que apunta a ligazón.\n" +"Non sinalado: Compara as ligazóns." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Seguir as ligazóns de ficheiros" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Sinalado: Compara o ficheiro ao que apunta a ligazón.\n" +"Non sinalado: Compara as ligazóns." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" +"Comparación de nomes de ficheiros que distingue maiúsculas de minúsculas" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"A comparación de directorios comparará os ficheiros ou directorios cando os " +"seus nomes casen.\n" +"Configure esta opción se os nomes deben corresponder. (De maneira " +"predeterminada, en Windows, non está sinalada; en caso contrario, está " +"sinalada.)" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold all subdirectories on load" +msgid "Unfold all subfolders on load" +msgstr "Expandir todos os subdirectorios ao cargar" + +#: optiondialog.cpp:1230 +#, fuzzy, kde-format +#| msgid "" +#| "On: Unfold all subdirectories when starting a directory diff.\n" +#| "Off: Leave subdirectories folded." +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Activado: Expandir todos os subdirectorios ao iniciar diferenzas de " +"directorios.\n" +"Desactivado: Deixar os subdirectorios colapsados." + +#: optiondialog.cpp:1234 +#, fuzzy, kde-format +#| msgid "Skip directory status report" +msgid "Skip folder status report" +msgstr "Saltar o informe de estado do directorio" + +#: optiondialog.cpp:1238 +#, fuzzy, kde-format +#| msgid "" +#| "On: Do not show the Directory Comparison Status.\n" +#| "Off: Show the status dialog on start." +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Activado: Non mostrar o estado da comparación dos directorios.\n" +"Desactivado: Mostrar o diálogo do estado no inicio." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Modo de comparación dos ficheiros" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Comparación binaria" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Comparación binaria de cada ficheiro. (De maneira predeterminada)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Análise completa" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Fai unha análise completa e mostra informacións estatísticas en columnas " +"adicionais.\n" +"(Máis lento que a comparación binaria, moito máis lento para ficheiros " +"binarios.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Confiar no tamaño e data de modificación (inseguro)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Asume que os ficheiros son iguais se a data de modificación e o tamaño do " +"ficheiro son iguais.\n" +"Os ficheiros con contidos iguais pero datas de modificación distintas " +"aparecerán como distintos.\n" +"Útil con directorios grandes ou redes lentas." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Confiar no tamaño e data, pero usar a comparación binaria se a data non casa " +"(inseguro)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Asume que os ficheiros son iguais se a data de modificación e o tamaño do " +"ficheiro son iguais.\n" +"Se a data non é igual pero si o son os tamaños, emprega a comparación " +"binaria.\n" +"Útil con directorios grandes ou redes lentas." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Confiar no tamaño (inseguro)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Asume que os ficheiros son iguais se o seu tamaño é igual.\n" +"Útil para directorios grandes ou redes lentas cando a data é modificada na " +"descarga." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Sincronizar os directorios" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Ofrece almacenar os ficheiros en ámbolos directorios\n" +"para que ambos queden iguais.\n" +"Funciona só ao comparar dous directorios sen indicar un destino." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "As diferenzas en espazos en branco son consideradas como iguais" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Se os ficheiros só difiren en espazos en branco considéraos iguais.\n" +"Isto está activo só cando é escollida a análise completa." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copiar o máis recente en vez de fundir (inseguro)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Do not look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Non analiza os ficheiros, simplemente colle o ficheiro máis recente.\n" +"(Use isto só se sabe o que está a facer!)\n" +"Só é efectivo ao comparar dous directorios." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Facer copia de seguranza dos ficheiros (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Cando un ficheiro vaia gardarse substituíndo a outro anterior, entón " +"renomearase\n" +"o ficheiro anterior cunha extensión «.orig» en vez de eliminalo." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Configuración rexional" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Utilizar a mesma codificación para todo:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Active isto para permitir cambiar todas as codificacións cambiando só a " +"primeira.\n" +"Desactíveo se precisa axustes individuais." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Nota: A codificación local é «%1»" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Codificación do ficheiro A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Se activa esta opción entón detectarase a codificación Unicode (UTF-16 ou " +"UTF-8).\n" +"Se o ficheiro non é Unicode entón empregarase a codificación escollida a " +"xeito de reserva.\n" +"(A detección de Unicode depende dos primeiros bytes do ficheiro.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Detectar automaticamente Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Codificación do ficheiro B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Codificación do ficheiro C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Codificación do ficheiro para fusionar o resultado e gardar:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Escoller automaticamente" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Se activa esta opción entón ha usarse a codificación dos ficheiros de " +"entrada.\n" +"En casos ambiguos un diálogo requiriralle que escolla a codificación." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Codificación dos ficheiros de preprocesador:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Idioma de dereita a esquerda" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Algúns idiomas lense de dereita a esquerda.\n" +"Esta opción cambia o visor e editor en consecuencia." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integración" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Configuración da integración" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opcións da liña de ordes a ignorar:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Unha lista das opcións da liña de ordes que deberán ignorarse, cando KDiff3 " +"o usen outras ferramentas.\n" +"Se desexa indicar varios valores, sepáreos por «;»\n" +"Isto elimina o erro de «Opción descoñecida»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Saír tamén coa tecla Esc" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Un sistema rápido de saír.\n" +"Para quen teña o costume de empregar a tecla de Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Isto repón todas as opcións, non só as do tema actual." + +# skip-rule: PT-2010-dual_command +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Orde do preprocesador: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "As seguintes opcións que escolleu poden cambiar os datos:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Case seguro que isto non é desexábel durante unha fusión.\n" +"Quere desactivar estes axustes ou continuar con eles activos?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opción insegura para fusión" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Usar estas opcións durante a fusión" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Desactivar as opcións inseguras" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Cargando A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Cargando A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Cargando B" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A: %1" +msgid "Loading B: %1" +msgstr "Cargando A: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diferenzas: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Diferenzas de liñas: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Cargando C" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A: %1" +msgid "Loading C: %1" +msgstr "Cargando A: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diferenzas: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diferenzas: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Diferenzas de liñas: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Diferenzas de liñas: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Todos os ficheiros de entrada conteñen o mesmo texto, pero non son iguais a " +"nivel binario." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Os ficheiros %1 e %2 teñen texto igual, pero non son iguais a nivel " +"binario.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Algúns dos ficheiros de entrada non parecen ser ficheiros de texto puros.\n" +"Lembre que a fusión de KDiff3 non se pensou para os datos binarios.\n" +"Continúe a súa conta e risco." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Non se puideron converter algúns caracteres de entrada a Unicode correcto.\n" +"Poida que estea a empregar un códec incorrecto. (p.ex. UTF-8 para ficheiros " +"que non son UTF-8).\n" +"Non garde o resultado se non está seguro. Continúe baixo a súa " +"responsabilidade.\n" +"Os ficheiros afectados están en %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Interromper" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Estase a abrir os ficheiros…" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Estase a cortar a selección…" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Estase a copiar a selección para o portapapeis…" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Estase a inserir o contido do portapapeis…" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "División visual das liñas («Cancelar» o desactiva)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Calculando a anchura máxima da barra de desprazamento horizontal." + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Gardar e continuar" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continuar sen gardar" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Busca rematada." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Busca rematada" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" +"Non hai nada escollido en ningunha das xanelas de entrada das diferenzas." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Ocorreu un erro ao engadir o intervalo manual de diferenzas" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancelar" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Trocar %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copiar %1->Resultado" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Trocar %1<->Resultado" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configurar…" + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Open File" +msgid "Open Folder" +msgstr "Abrir un ficheiro" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Escoller o ficheiro de saída" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Texto da busca:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Distinguir as maiúsculas" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Buscar A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Buscar B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Buscar C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Resultado da busca" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Buscar" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Verificador de expresións regulares" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Liña de fusión automática de exemplo:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Para probar a fusión automática, copie unha liña como se use nos seus " +"ficheiros." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultado correspondente:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Liña inicial do historial do exemplo (co comentario inicial):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copie unha liña inicial do historial, como é usada nos seus ficheiros,\n" +"incluíndo o comentario inicial." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Orde da chave do historial:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Liña inicial da entrada do historial de exemplo (sen o comentario inicial):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copie unha liña inicial de entrada no historial, como a usada nos seus " +"ficheiros,\n" +"pero omita o comentario inicial." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resultado da chave de ordenación:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Éxito na correspondencia." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "A correspondencia fallou." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Os parénteses de abertura e peche non casan na expresión regular." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "A escritura dos datos do portapapeis no ficheiro temporal fallou." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Do portapapeis" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 non é un ficheiro normal." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " O ficheiro temporal é: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"O preprocesamento posibelmente fallou. Revise sta orde:\n" +"\n" +" %1\n" +"\n" +"A orde de preprocesamento vai desactivarse." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "O ficheiro %1 é grande de máis para procesalo. Saltarase." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"O preprocesamento para atopar coincidencias en liñas probabelmente fallou. " +"Revise esta orde:\n" +"\n" +" %1\n" +"\n" +"A orde de preprocesamento para atopar coincidencias en liñas vai " +"desactivarse." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Esperábase un espazo despois de pechar as comiñas." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Comiñas sen pechar." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Carácter de comiña inesperado dentro do argumento." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Non se especificou o programa." \ No newline at end of file diff --git a/po/gl/kdiff3fileitemactionplugin.po b/po/gl/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..711bed0 --- /dev/null +++ b/po/gl/kdiff3fileitemactionplugin.po @@ -0,0 +1,114 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Xabier Villar , 2011, 2013. +# Adrián Chaves (Gallaecio) , 2017, 2018, 2019. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2019-03-22 20:25+0100\n" +"Last-Translator: Adrián Chaves (Gallaecio) \n" +"Language-Team: Galician \n" +"Language: gl\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" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3…" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar con %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Fundir con %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Gardar «%1» para máis tarde" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusión de 3 ficheiros con base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Comparar con…" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Limpar a lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparación de 3 ficheiros" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Sobre o complemento do menú de KDiff3…" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Complemento de accións de elementos de ficheiro de KDiff3: © 2011 Joachim " +"Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the context menu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare with...\" submenu. Then use \"Compare With\" " +#| "on the second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Utilización da extensión de menú contextual:\n" +"Para unha comparación simple de dous ficheiros escollidos escolla " +"«Comparar».\n" +"Se o outro ficheiro está noutro lugar antes debe «Gardar» o ficheiro para " +"máis tarde. Aparecerá no submenú «Comparar con…». Logo empregue «Comparar " +"con» no segundo ficheiro.\n" +"Para unha fusión de 3 ficheiros primeiro debe «Gardar» o ficheiro base, logo " +"a versión a fundir e logo escoller «Fusión de 3 ficheiros con base» na galla " +"que se empregará como destino.\n" +"O mesmo aplícase á comparación e fusión de directorios." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Sobre o complemento de accións de elementos de ficheiro de KDiff3" \ No newline at end of file diff --git a/po/hi/kdiff3.po b/po/hi/kdiff3.po new file mode 100644 index 0000000..557b5d5 --- /dev/null +++ b/po/hi/kdiff3.po @@ -0,0 +1,3381 @@ +# +# Raghavendra Kamath , 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-09-17 20:34+0530\n" +"Last-Translator: Raghavendra Kamath \n" +"Language-Team: kde-hindi\n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Hindi\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 21.08.1\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "फ़ाइल स्थिति प्राप्त की जा रही है: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "फ़ाइल पढ़ा जा रहा है: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "फ़ाइल: %1 लिखा जा रहा है" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "मेमोरी कम पड़ गई" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "डिरेक्ट्री बनाया जा रहा है: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "फ़ाइल मिटाया जा रहा है: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "फ़ाइल मिटाया जा रहा है: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "सिंबालिक कड़ी बनाई जा रही है: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "फ़ाइलनाम बदला जा रहा है: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "फ़ाइल नक़ल की जा रही है: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "फ़ाइल पढ़ा जा रहा है: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "डिरेक्ट्री सूचीबद्ध की जा रही है: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "गंभीर आंतरिक त्रुटि" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "गंभीर आंतरिक त्रुटि" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "गंभीर आंतरिक त्रुटि" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +msgid "File %1: Line not available" +msgstr "उपलब्ध नहीं" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "पंक्ति ख़त्म होने की शैलीः" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "अ" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "ब" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "स" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "अ (बेस):" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "पंक्ति ख़त्म होने की शैलीः" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, fuzzy, kde-format +msgid "Top line" +msgstr "शीर्ष पंक्ति %1" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "अंत" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "फ़ाइलें खोली जा रही हैं..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "अ की नक़ल ब में करें" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "ब की नक़ल अ में करें" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "अ को मिटाएँ" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "ब को मिटाएँ" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "अ तथा ब को मिटाएँ" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "अ में सम्मिलित करें" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "ब में सम्मिलित करें" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "अ तथा ब में सम्मिलित करें" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "मिटाएँ (यदि मौजूद है)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "सम्मिलित करें" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "सम्मिलित करें (हस्तचालित)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "त्रुटि: परस्पर विरोधी फ़ाइल क़िस्में" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "त्रुटि: तारीखें तो एक समान हैं, परंतु फ़ाइलें नहीं." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "सम्पन्न." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +msgid "Error" +msgstr "त्रुटि." + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "छोड़ा." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "सहेजा नहीं गया." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "प्रगति पर है..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "कार्य-सूची" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "नाम" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "ऑपरेशन" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "स्थिति" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "हल नहीं" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "हल कर लिया गया" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "सफेद-नहीं" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "सफेद" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "री-स्कैन" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "मिलाया जाना जारी रखें" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "डिरेक्ट्रीज़ खोलना असफल:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "डिरेक्ट्री अ \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "डिरेक्ट्री ब \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "डिरेक्ट्री स \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "फ़ाइल खोलने में त्रुटि" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "पैरामीटर चेतावनी" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "डिरेक्ट्रीज़ स्कैन किया जा रहा है..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "फ़ाइल पढ़ा जा रहा है: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "फ़ाइल पढ़ा जा रहा है: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "फ़ाइल पढ़ा जा रहा है: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "कुछ सबडिरेक्ट्रीज़ इसमें पढ़े नहीं जा सकने वाले हैं" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "सबडिरेक्ट्रीज़ की अनुमतियाँ जाँचें." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "तैयार." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "हस्तचालित सम्मिलित करने की संख्या:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "यह सभी सम्मिलित ऑपरेशन को प्रभावित करेगा" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "सभी सम्मिलित करने के ऑपरेशन को बदला जा रहा है" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "प्रोसेसिंग" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "यह ऑपरेशन वर्तमान में संभव नहीं है." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "ऑपरेशन वर्तमान में संभव नहीं" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "नक़ल करने के दौरान एक त्रुटि हुई.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "सम्मिलित करने में त्रुटि" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "सम्मिलित करने का अज्ञात ऑपरेशन. (ऐसा कभी नहीं होना चाहिए!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "सम्मिलित करने का अज्ञात ऑपरेशन. " + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "सम्मिलित करना प्रारंभ किया जा रहा है" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "इसे करें" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "इसे सिमुलेट करें" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "This operation is currently not possible." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "यह ऑपरेशन वर्तमान में संभव नहीं है." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "त्रुटि के बाद भी सम्मिलित करना जारी रखें" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "पिछली वस्तु के साथ जारी रखें" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "वस्तु छोड़ें" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "सम्मिलित करने की क्रिया पूरी हुई." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "सम्मिलित करना सम्पन्न" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "एक त्रुटि हुई. विस्तृत जानकारी देखने के लिए ठीक है को दबाएँ\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "त्रुटि: %1 को मिटाने के दौरान: बैकअप बनाने में असफल." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "डिरेक्ट्री ( %1 ) को रिकर्सिवली मिटाएँ" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "मिटाएं (%1)" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "त्रुटि: डिरेक्ट्री को पढ़ने की कोशिश में डिरेक्ट्री मिटाने का कार्य असफल." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "त्रुटि: rmdir( %1 ) क्रिया असफल." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "त्रुटि: डिरेक्ट्री मिटाने का कार्य असफल." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "हस्तचालित सम्मिलित करें( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +"टीप: हस्तचालित सम्मिलित करने के बाद उपयोक्ता को F7 को दबाकर जारी रखना चाहिए." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "त्रुटि: नक़ल ( %1 -> %2 ) असफल. मौजूदा गंतव्य को मिटाना असफल." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "कापीलिंक ( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "त्रुटि: कापीलिंक असफल: रिमोट कड़ियाँ अभी समर्थित नहीं हैं." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "त्रुटि: कापीलिंक असफल." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "नक़ल( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "नाम बदलें( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "त्रुटि: नाम-बदलना असफल." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "%1 के मेकडिर के दौरान त्रुटि. मौजूदा फ़ाइल मिटा नहीं सकते." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "मेकडिर( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "डिरेक्ट्री बनाने के दौरान त्रुटि." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "गंतव्य" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "क़िस्म" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "आकार" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "एट्रि." + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "अंतिम परिवर्धन" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "लिंक-गंतव्य" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +msgid "File" +msgstr "फ़ाइल..." + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "कड़ी" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "उपलब्ध नहीं" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (गंत.): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (आधार): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (गंत.): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (गंत.): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "गंतव्य:" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +msgid "Save Folder Merge State As..." +msgstr "डिरेक्ट्री सम्मिलित करें" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "डिरेक्ट्री सम्मिलित करना प्रारंभ करें/जारी रखें" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "मौज़ूदा वस्तु के लिए ऑपरेशन चलाएँ" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "चयनित फ़ाइल की तुलना करें" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "मौज़ूदा फ़ाइल सम्मिलित करें" + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +msgid "" +"Merge\n" +"File" +msgstr "सम्मिलित करें" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "सभी सबडिरेक्ट्रीज फ़ोल्ड करें" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "सभी सबडिरेक्ट्रीज अनफ़ोल्ड करें" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "सभी वस्तुओं के लिए अ का चयन करें" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "सभी वस्तुओं के लिए ब का चयन करें" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "सभी वस्तुओं के लिए स का चयन करें" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "सभी वस्तुओं के लिए क्रिया स्वचालित चयन करें" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "सभी वस्तुओं के लिए कोई क्रिया नहीं" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, fuzzy, kde-format +msgid "Show Different Files" +msgstr "भिन्न फ़ाइलों की संख्या:" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, fuzzy, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "चयनित फ़ाइल की तुलना करें" + +#: directorymergewindow.cpp:2982 +#, fuzzy, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "चयनित फ़ाइल की तुलना करें" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "कुछ नहीं करें" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "अ तथा ब को मिटाएँ" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "अ तथा ब में सम्मिलित करें" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "फ़ाइल पढ़ा जा रहा है: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "%1 की अस्थाई नक़ल बनाना असफल." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "%1 को खोलना असफल" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "%1 से पढ़ने में त्रुटि" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, fuzzy, kde-format +msgid "Current Configuration:" +msgstr "मौजूदा वस्तु सिंक ऑपरेशन" + +#: kdiff3.cpp:168 +#, fuzzy, kde-format +msgid "Config Option Error:" +msgstr "फ़ाइल खोलने में त्रुटि" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "विकल्प --auto का उपयोग किया गया, परंतु कोई आउटपुट फ़ाइल निर्दिष्ट नहीं." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "विकल्प --auto को डिरेक्ट्री तुलना करने में छोड़ा गया." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "सहेजने में असफल." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "इन फ़ाइलों को खोलना असफल:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "फ़ाइल खोलने में त्रुटि" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "दस्तावेज़ों को तुलना के लिए खोलता है..." + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +msgid "Reload" +msgstr "तैयार." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "मौजूदा दस्तावेज़ ऐसे सहेजता है..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "अनुप्रयोग से बाहर होता है" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "चुने हुए अंश को क्लिपबोर्ड पर नक़ल करता है" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "क्लिपबोर्ड अवयवों को सही स्थान पर चिपकाता है" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "स्ट्रिंग के लिए ढूंढें" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "स्ट्रिंग के लिए फिर से ढूंढें" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "स्थिति-पट्टी सक्षम/अक्षम करें" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "के-डिफ3 को कॉन्फ़िगर करें..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "मौज़ूदा डेल्टा में जाएँ" + +#: kdiff3.cpp:606 +#, fuzzy, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "मौज़ूदा डेल्टा में जाएँ" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "प्रथम डेल्टा में जाएँ" + +#: kdiff3.cpp:608 +#, fuzzy, kde-format +msgid "" +"First\n" +"Delta" +msgstr "प्रथम डेल्टा में जाएँ" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "अंतिम डेल्टा में जाएँ" + +#: kdiff3.cpp:610 +#, fuzzy, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "अंतिम डेल्टा में जाएँ" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "पिछला डेल्टा में जाएँ" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "पिछला डेल्टा में जाएँ" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "अगला डेल्टा में जाएँ" + +#: kdiff3.cpp:616 +#, fuzzy, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "अगला डेल्टा में जाएँ" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "पिछले परस्पर विरोधों में जाएँ" + +#: kdiff3.cpp:618 +#, fuzzy, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "परस्पर विरोध" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "अगले परस्पर विरोधों में जाएँ" + +#: kdiff3.cpp:620 +#, fuzzy, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "अगले परस्पर विरोधों में जाएँ" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "पिछले समाधान-रहित परस्पर विरोधों में जाएँ" + +#: kdiff3.cpp:622 +#, fuzzy, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "हल नहीं" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "अगले समाधान-रहित परस्पर विरोधों में जाएँ" + +#: kdiff3.cpp:624 +#, fuzzy, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "हल नहीं" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "अ से लाइन चुनें" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "ब से लाइन चुनें" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "स से लाइन चुनें" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "स्वचालित नक़ल चयन" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "भिन्नताओं के लिए टेबुलेटर अक्षर तथा जगह दिखाएँ " + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "सफेद जगह दिखाएँ" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "पंक्ति क्रमांक दिखाएँ" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "पंक्ति क्रमांक दिखाएँ" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "सादा परस्पर विरोधों का स्वचालित समाधान करें" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "डेल्टा को परस्पर विरोधों में सेट करें" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, fuzzy, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "सादा परस्पर विरोधों का स्वचालित समाधान करें" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, fuzzy, kde-format +msgid "Join Selected Diffs" +msgstr "चयनित फ़ाइल की तुलना करें" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "विंडो अ दिखाएँ" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "विंडो ब दिखाएँ" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "विंडो स दिखाएँ" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "सामान्य ओवरव्यू" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "अ वि. ब ओवरव्यू" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "अ वि. स ओवरव्यू" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "ब वि. स ओवरव्यू" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "वर्ड व्रेप डिफ विंडोज़" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "अगले विंडो पर फोकस" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "पिछले विंडो में फोकस" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "अलग करने की दिशा टॉगल करें" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "डिरेक्ट्री तथा पाठ स्प्लिट स्क्रीन दृश्य" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "डिरेक्ट्री तथा पाठ दृश्य के बीच टॉगल करें" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "सम्मिलित करने का परिणाम अभी सहेजा नहीं गया." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "सहेजें तथा बाहर हों" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "सहेजे बगैर बाहर हों" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "सम्मिलित किया जाने का परिणाम सहेजना असफल." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "फ़ाइल सहेजा जा रहा है..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "फ़ाइल नए फ़ाइलनाम के साथ सहेजा जा रहा है..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +msgid "Printing not implemented." +msgstr "सम्मिलित करने की क्रिया पूरी हुई." + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +msgid "Printing..." +msgstr "बाहर हो रहे हैं..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +msgid " (Selection)" +msgstr "अन्य फ़ॉन्ट चुनें" + +#: kdiff3.cpp:1025 +#, fuzzy, kde-format +msgid "Printing completed." +msgstr "सम्मिलित करने की क्रिया पूरी हुई." + +#: kdiff3.cpp:1029 +#, fuzzy, kde-format +msgid "Printing aborted." +msgstr "सम्मिलित करने की क्रिया पूरी हुई." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "बाहर हो रहे हैं..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "टूलबार टॉगल किया जा रहा है..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "स्थिति पट्टी टॉगल करें..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "के-डिफ3पार्ट" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "के-डिफ3 (&K)" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "के-डिफ3 को कॉन्फ़िगर करें" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "के-डिफ3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "फ़ाइल..." + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "मौजूदा वस्तु सम्मिलित करने की क्रिया" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "मौजूदा वस्तु सिंक ऑपरेशन" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "गतिविधि (&M)" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "डिफव्यू (&i)" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "सम्मिलित करें" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "विंडो (&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "इनपुट सम्मिलित करें." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "आउटपुट फ़ाइल. इम्प्लाइस -m. उदा.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "आउटपुट फ़ाइल, फिर से. (कुछ औज़ारों के साथ कम्पेटिबिलिटी के लिए.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +msgid "Ignored." +msgstr "केस अनदेखा करें" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "इनपुट फ़ाइल 1 (आधार) के लिए विजिबल नाम रीप्लेसमेंट." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "इनपुट फ़ाइल 2 के लिए विजिबल नाम रीप्लेसमेंट." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "इनपुट फ़ाइल 3 के लिए विजिबल नाम रीप्लेसमेंट." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, fuzzy, kde-format +msgid "Use a different config file." +msgstr "भिन्न फ़ाइलों की संख्या:" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "खोलने के लिए फ़ाइल1 (आधार, यदि इसके द्वारा निर्दिष्ट नहीं --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "खोलने के लिए फ़ाइल2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "खोलने के लिए फ़ाइल3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "कड़ियों की मिलावटें तथा सामान्य फ़ाइलें." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "कड़ी" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "आकार." + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "तारीख व आकार:" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "फ़ाइल की तुलना की जा रही है..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "सभी जगह अ चुनें" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "सभी जगह ब चुनें" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "सभी जगह स चुनें" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए अ चुनें" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए ब चुनें" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए स चुनें" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए अ चुनें" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए ब चुनें" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए स चुनें" + +#: mergeresultwindow.cpp:258 +#, fuzzy, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "बचे हुए समाधान-रहित विरोधाभासों की संख्या: %1" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"आउटपुट परिवर्धित किया जा चुका है.\n" +"यदि आप जारी रखते हैं तो आपके परिवर्तन खो जाएँगे." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "सभी इनपुट फ़ाइलें बाइनरी समान हैं." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "सभी इनपुट फ़ाइलें एक ही पाठ रखे हैं." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, fuzzy, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "फ़ाइलें ब तथा स बाइनरी समान हैं.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "फ़ाइलें अ तथा ब में पाठ समान हैं.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "परस्पर विरोध" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<कोई स्रोत पंक्ति नहीं>" + +#: mergeresultwindow.cpp:1841 +#, fuzzy, kde-format +msgid "" +msgstr "<विरोधाभास सम्मिलित करें>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<विरोधाभास सम्मिलित करें>" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"अब तक सभी विरोधाभासों का समाधान नहीं किया गया है.\n" +"फ़ाइल सहेजा नहीं गया.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "विरोधाभास बायाँ " + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "फ़ाइल सहेजने में त्रुटि" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "लिखने के दौरान त्रुटि." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "आउटपुट" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[परिवर्धित]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "Conflict" +msgstr "परस्पर विरोध" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "ब" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "अ (बेस):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "आउटपुट (वैकल्पिक):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "फ़ाइल..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "स (वैकल्पिक):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +msgid "Configure" +msgstr "कॉन्फ़िगर...." + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "संपादक तथा डिफ़ आउटपुट फ़ॉन्ट" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "फ़ाइल सहेजने में त्रुटि" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "रंग" + +#: optiondialog.cpp:596 +#, fuzzy, kde-format +msgid "Colors Settings" +msgstr "क्षेत्रीय विन्यास" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "अग्रभूमि का रंगः" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "पृष्ठभूमि का रंगः" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "डिफ पृष्ठभूमि रंगः" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "रंग अ:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "रंग ब:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "रंग स:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "विरोधाभास के लिए रंग:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "वर्तमान सीमा पृष्ठभूमि रंग:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "वर्तमान सीमा डिफ पृष्ठभूमि रंग:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +msgid "Folder Comparison View:" +msgstr "डिरेक्ट्री तुलना स्थिति" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "संपादक" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "संपादक व्यवहार" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "टैब जगह प्रविष्ट करता है" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "टैब आकारः" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "स्वचालित हाशिया छोड़ना" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "स्वचालित नक़ल चयन" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "विंडो (&W)" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "स्वचालित नक़ल चयन" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, fuzzy, kde-format +msgid "Diff" +msgstr "के-डिफ3" + +#: optiondialog.cpp:839 +#, fuzzy, kde-format +msgid "Diff Settings" +msgstr "डिफ तथा सम्मिलित करने का विन्यास" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें" + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +msgid "Ignore case (treat as white space)" +msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "केस डिफरेंसेस को सफेद जगह परिवर्तन के रूप में समझें. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "प्री-प्रोसेसर कमांड:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "उपयोक्ता पारिभाषित प्री-प्रोसेसिंग. (विवरण के लिए दस्तावेज़ देखें.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "लाइन-मैचिंग प्री-प्रोसेसर कमांड:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "गंभीर कोशिश करें (धीमा)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "सम्मिलित करें" + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "डिफ तथा सम्मिलित करने का विन्यास" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "स्वचालित एडवान्स देरी (मि.से.):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, fuzzy, kde-format +#| msgid "Show Window A" +msgid "Show info dialogs" +msgstr "विंडो अ दिखाएँ" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "सफेद जगह 2-फ़ाइल सम्मिलित डिफ़ॉल्ट:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "हस्तचालित चुनाव" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "सफेद जगह 3-फ़ाइल सम्मिलित डिफ़ॉल्ट:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "सबडिरेक्ट्रीज़ की संख्या:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "डिरेक्ट्रीज़ रिकर्सिव करें" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "क्या सबडिरेक्ट्रीज़ को विश्लेषण करना है या नहीं. " + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "फ़ाइल पैटर्न:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "फ़ाइल-एन्टी-पैटर्न:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "फ़ाइल-एन्टी-पैटर्न:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr ".cvsignore का उपयोग करें" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "छुपी फ़ाइलों तथा डिरेक्ट्रीज़ ढूंढें" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "छुपी फ़ाइलों तथा डिरेक्ट्रीज़ ढूंढें" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "फ़ाइल कड़ियों का अनुसरण करें" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "फ़ाइल कड़ियों का अनुसरण करें" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "सभी सबडिरेक्ट्रीज अनफ़ोल्ड करें" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "फ़ाइल तुलना मोड" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "बाइनरी तुलना" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "प्रत्येक फ़ाइल की बाइनरी तुलना. (डिफ़ॉल्ट)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "पूर्ण विश्लेषण" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, fuzzy, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "परिवर्धन तारीख पर भरोसा करें (असुरक्षित)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, fuzzy, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "परिवर्धन तारीख पर भरोसा करें (असुरक्षित)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "आकार पर भरोसा करें (असुरक्षित)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "डिरेक्ट्रीज़ सिंक्रोनाइज़ करें" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, fuzzy, kde-format +msgid "White space differences considered equal" +msgstr "सफेद जगह 3-फ़ाइल सम्मिलित डिफ़ॉल्ट:" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "सम्मिलित करने के बजाए नए की नक़ल करें (असुरक्षित)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "बैकअप फ़ाइलें (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "क्षेत्रीय विन्यास" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "स्थानीय एनकोडिंग इस्तेमाल करें" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, fuzzy, kde-format +msgid "Auto Select" +msgstr "स्वचालित नक़ल चयन" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, fuzzy, kde-format +msgid "Integration" +msgstr "ऑपरेशन" + +#: optiondialog.cpp:1436 +#, fuzzy, kde-format +msgid "Integration Settings" +msgstr "क्षेत्रीय विन्यास" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "यह सभी विकल्पों को रीसेट करता है. सिर्फ उनको ही नहीं जो मौजूदा विषय में हैं. " + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "प्री-प्रोसेसर-कमांड:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "निम्न विकल्प जो आपने चुने हैं वे डाटा को बदल सकते हैं:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "सम्मिलित करने के लिए विकल्प असुरक्षित हैं" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "इन विकल्पों का उपयोग सम्मिलित करने के दौरान करें" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "असुरक्षित विकल्प अक्षम करें" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "अ लोड किया जा रहा है" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "अ लोड किया जा रहा है" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "ब लोड किया जा रहा है" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "अ लोड किया जा रहा है" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "डिफ: अ <-> ब" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "लाइनडिफ: अ <-> ब" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "स लोड किया जा रहा है" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "अ लोड किया जा रहा है" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "डिफ: अ <-> स" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "डिफ: ब <-> स" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "लाइनडिफ: ब <-> स" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "लाइनडिफ: अ <-> स" + +#: pdiff.cpp:748 +#, fuzzy, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "सभी इनपुट फ़ाइलें एक ही पाठ रखे हैं." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "फ़ाइलें अ तथा ब बाइनरी समान हैं.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "छोड़ें" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "फ़ाइलें खोली जा रही हैं..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "चयन को काटा जा रहा है..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "चुने हुए की नकल क्लिपबोर्ड पर बनाया जा रहा है..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "क्लिपबोर्ड के वस्तुओं को प्रविष्ट किया जा रहा है..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "सहेजें तथा जारी रखें" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "सहेजे बगैर जारी रखें" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "ढूंढना सम्पन्न" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "ढूंढना सम्पन्न" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, fuzzy, kde-format +msgid "Error while adding manual diff range" +msgstr "डिरेक्ट्री बनाने के दौरान त्रुटि." + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "कॉन्फ़िगर...." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "फ़ाइलें खोली जा रही हैं..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "पाठ ढूंढें:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "केस सेंसिटिव" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "ढूंढें अ" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "ढूंढें ब" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "ढूंढें स" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "ढूंढने के पश्चात् आउटपुट" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "ढूंढें (&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, fuzzy, kde-format +msgid "Match failed." +msgstr "सहेजने में असफल." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "क्लिपबोर्ड डाटा को अस्थाई फ़ाइल में लिखना असफल." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "क्लिपबोर्ड से" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "कड़ियों की मिलावटें तथा सामान्य फ़ाइलें." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/hne/kdiff3.po b/po/hne/kdiff3.po new file mode 100644 index 0000000..f0ba694 --- /dev/null +++ b/po/hne/kdiff3.po @@ -0,0 +1,3409 @@ +# +# Ravishankar Shrivastava , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2009-03-20 10:56+0530\n" +"Last-Translator: Ravishankar Shrivastava \n" +"Language-Team: Hindi \n" +"Language: hne\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Hindi\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" +"X-Generator: Lokalize 0.3\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "रविसंकर सिरीवास्तव, जी. करूनाकर" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "raviratlami@aol.in," + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "फाइल स्थिति प्राप्त करत हे : %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "फ़ाइल पढ़त हे: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "फाइल: %1 लिखत हे" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "मेमोरी कम पड़ गिस" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "डिरेक्टरी बनात हे: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "फाइल मिटात हे: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "फाइल मिटात हे: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "सिंबालिक संकली बनावत हे: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "फाइलनाम बदलत हे: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "फाइल नकल करत हे : %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "फ़ाइल पढ़त हे: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "डिरेक्टरी सूची मं करत हे : %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "गंभीर अंदर के गलती" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "गंभीर अंदर के गलती" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "गंभीर अंदर के गलती" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "लाइन नइ मिलत हे" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "लकीर खतम होए के सैलीः" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "अ" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "ब" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "स" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "अ (बेस):" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "लकीर खतम होए के सैलीः" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "सबसे ऊपर के लाइन" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "आखरी" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "फाइल मन ल खोलत हे..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "युनिकोड, 8 बिट" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "अ के नकल ब मं करव" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "ब के नकल अ मं करव" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "अ ल मेटाव" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "ब ल मेटाव" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "अ अउ ब ल मेटाव" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "अ मं सम्मिलित करव" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "ब मं सम्मिलित करव" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "अ अउ ब मं सम्मिलित करव" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "मेटाव (यदि मौजूद हे)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "सम्मिलित करव" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "सम्मिलित करव (हस्तचालित)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "गलती: आपसी विरोधी फाइल किसिम" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "गलती: तारीकें तहां एक समान हे, फेर फाइल मन ल नइ." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "पूरा." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "गलती" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "छोड़ा." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "सहेजिस नइ गिस." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "प्रगति मं हे..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "काम-सूची" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "नाम" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "आपरेसन" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "स्थिति" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "हल नइ" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "हल कर ले गिस" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "सफेद-नइ" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "सफेद" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "चेतावनी" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "री-स्कैन" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "मिलाय जाना जारी रखव" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "डिरेक्टरीज खोलना फेल:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "डिरेक्टरी अ \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "डिरेक्टरी ब \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "डिरेक्टरी स \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "फाइल खोले मं गलती" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "पैरामीटर चेतावनी" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "डिरेक्टरीज स्कैन करत हे..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "फ़ाइल पढ़त हे: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "फ़ाइल पढ़त हे: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "फ़ाइल पढ़त हे: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "कुछ सबडिरेक्टरीज ये मां पढ़े नइ जा सके वाले हे" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "सबडिरेक्टरीज के अनुमति जांचव." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "तैयार." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "हस्तचालित सम्मिलित करे के संख्या:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "ये सब्बो सम्मिलित आपरेसन ल प्रभावित करही" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "सब्बो सम्मिलित करे के आपरेसन ल बदलत हे" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "प्रोसेसिंग" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "ये आपरेसन अभी हाल के मं संभव नइ हे." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "आपरेसन अभी हाल के मं संभव नइ" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "नकल करे के समय एक गलती होइस.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "सम्मिलित करे मं गलती" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "सम्मिलित करे के अग्यात आपरेसन. (अइसन कभू नइ होना चाही!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "सम्मिलित करे के अग्यात आपरेसन. " + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "सम्मिलित करना चालू करत हे" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "एला करव" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "एला सिमुलेट करव" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "This operation is currently not possible." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "ये आपरेसन अभी हाल के मं संभव नइ हे." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "गलती के बाद घलोक सम्मिलित करना जारी रखव" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "पिछला चीज के साथ जारी रखव" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "चीज छोड़व" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "सम्मिलित करे के काम पूरा होइस." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "सम्मिलित करना पूरा" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "एक गलती होइस. विस्तृत जानकारी देखे बर ठीक ल दबाव\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "गलती: %1 ल मेटाव के समय: बैकअप बनाए मं फेल." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "डिरेक्टरी ( %1 ) ल रिकर्सिवली मेटाव" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "मेटाव (%1)" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "गलती: डिरेक्टरी ल पढ़े के कोसिस मं डिरेक्टरी मेटाव के काम फेल." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "गलती: rmdir( %1 ) काम फेल." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "गलती: डिरेक्टरी मेटाव के काम फेल." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "हस्तचालित सम्मिलित करव( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "टीप: हस्तचालित सम्मिलित करे के बाद कमइया ल F7 ल दबाकर जारी रखना चाही." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "गलती: नकल ( %1 -> %2 ) फेल. अभी हाल के गंतव्य ल मिटाना फेल." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "कापीसंकली ( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "गलती: कापीसंकली फेल: रिमोट कड़ियाँ अभी समर्थित नइ हे." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "गलती: कापीसंकली फेल." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "नकल( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "नाम बदलव( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "गलती: नाम-बदलना फेल." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "%1 के मेकडिर के समय गलती. अभी हाल के फाइल मिटा नइ सकहू." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "मेकडिर( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "डिरेक्टरी बनाए के समय गलती." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "गंतव्य" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "किसिम" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "आकार" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "एट्रि." + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "आखरी परिवर्धन" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "संकली-गंतव्य" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "फाइल" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "कड़ी" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "नइ मिलत" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (गंत.): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (आधार): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (गंत.): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (गंत.): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "गंतव्य:" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +msgid "Save Folder Merge State As..." +msgstr "डिरेक्टरी सम्मिलित करव" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "डिरेक्टरी सम्मिलित करना चालू करव/जारी रखव" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "अभी हाल के चीज बर आपरेसन चलाव" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "चुने गे फाइल के तुलना करव" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "अभी हाल के फाइल सम्मिलित करव" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"फाइल\n" +"मिलाव" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "सब्बो सबडिरेक्टरीज फोल्ड करव" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "सब्बो सबडिरेक्टरीज अनफोल्ड करव" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "सब्बो चीज मन बर अ के चुनव" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "सब्बो चीज मन बर ब के चुनव" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "सब्बो चीज मन बर स के चुनव" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "सब्बो चीज मन बर काम अपने अपन चुनव" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "सब्बो चीज मन बर कोनो काम नइ" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "भिन्न फाइल देखाव" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "कुछ नइ करव" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "अ अउ ब ल मेटाव" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "अ अउ ब मं सम्मिलित करव" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "फ़ाइल पढ़त हे: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "%1 के अस्थाई नकल बनाना फेल." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "%1 ल खोलना फेल" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "%1 से पढ़े मं गलती" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "अभी हाल के कान्फिगरेसन:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "विकल्प --auto के उपयोग करिस, तिर कोनो आउटपुट फाइल निरधारित नइ." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "विकल्प --auto ल डिरेक्टरी तुलना करे मं छोड़ दे गिस." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "सहेजे मं फेल." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "ए फाइल मन ल खोलना फेल:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "फाइल खोले मं गलती" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "कागद मन ल तुलना बर खोलथे ..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "री-लोड" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "अभी हाल के कागद अइसन सहेजथे ..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "अनुपरयोग से बाहिर होथे " + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "चुने हुए अंस ल क्लिपबोर्ड मं नकल करथे " + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "क्लिपबोर्ड अवयव मन ल सही जगह मं चिपकाथे " + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "स्ट्रिंग बर खोजव" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "स्ट्रिंग बर फिर से खोजव" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "स्थिति-पट्टी सक्छम/अक्छम करव" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "के-डिफ3 ल कान्फिगर करव..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "अभी हाल के डेल्टा मं जाव" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"अभी हाल के\n" +" डेल्टा" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "पहिली डेल्टा मं जाव" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"पहिली \n" +"डेल्टा" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "आखरी डेल्टा मं जाव" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"आखरी\n" +"डेल्टा" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "पिछला डेल्टा मं जाव" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"पिछला \n" +"डेल्टा" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "अगला डेल्टा मं जाव" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"अगला \n" +"डेल्टा" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "पिछले आपसी विरोधों मं जाव" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"पिछला\n" +"आपसी विरोध" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "अगले आपसी विरोधों मं जाव" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"अगले \n" +"आपसी विरोध" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "पिछले समाधान-रहित आपसी विरोधों मं जाव" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"पिछला\n" +"हल नइ" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "अगले समाधान-रहित आपसी विरोधों मं जाव" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"अगला\n" +"हल नइ" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "अ से लाइन चुनव" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "ब से लाइन चुनव" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "स से लाइन चुनव" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"अपने अपन \n" +"अगला" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "भिन्नताओं बर टेबुलेटर अक्छर अउ जगह देखाव " + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "सफेद जगह देखाव" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "लकीर नंबर देखाव" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"लकीर \n" +"नंबर" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "सादा आपसी विरोधों के अपने अपन समाधान करव" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "डेल्टा ल आपसी विरोधों मं सेट करव" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "इतिहास आपसी विरोधों के अपने अपन समाधान करव" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "चुने गे डिफ मिलाव" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "विंडो अ देखाव" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "विंडो ब देखाव" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "विंडो स देखाव" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "सामान्य ओवरव्यू" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "अ वि. ब ओवरव्यू" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "अ वि. स ओवरव्यू" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "ब वि. स ओवरव्यू" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "वर्ड व्रेप डिफ विंडोज" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "अगले विंडो मं फोकस" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "पिछले विंडो मं फोकस" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "अलग करे के दिसा टागल करव" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "डिरेक्टरी अउ पाठ स्प्लिट स्क्रीन दृस्य" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "डिरेक्टरी अउ पाठ दृस्य के बीच टागल करव" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "सम्मिलित करे के परिनाम अभी सहेजे नइ गिस." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "सहेजव अउ बाहिर हों" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "सहेजे बिना बाहिर हों" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "सम्मिलित करे जाय के परिनाम सहेजना फेल." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "फाइल सहेजत हे..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "फाइल नवा फाइलनाम के साथ सहेजत हे..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "अइसन सहेजव..." + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +msgid "Printing not implemented." +msgstr "सम्मिलित करे के काम पूरा होइस." + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +msgid "Printing..." +msgstr "छापव..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +msgid " (Selection)" +msgstr "फोंट चुनव" + +#: kdiff3.cpp:1025 +#, fuzzy, kde-format +msgid "Printing completed." +msgstr "सम्मिलित करे के काम पूरा होइस." + +#: kdiff3.cpp:1029 +#, fuzzy, kde-format +msgid "Printing aborted." +msgstr "सम्मिलित करे के काम पूरा होइस." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "बाहिर होवत हे..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "टूलबार टागल करत हे..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "स्थिति पट्टी टागल करव..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "के-डिफ3पार्ट" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "के-डिफ3 (&K)" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "के-डिफ3 ल कान्फिगर करव" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "के-डिफ3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "फाइल (&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "अभी हाल के चीज सम्मिलित करे के काम" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "अभी हाल के चीज सिंक आपरेसन" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "गतिविधि (&M)" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "डिफव्यू (&i)" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "सम्मिलित करव" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "विंडो (&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "मुख्य औजार पट्टी" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "इनपुट मिलाव." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "आउटपुट फाइल. इम्प्लाइस -m. उदा.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "आउटपुट फाइल, फिर से. (कुछ औजार मन के साथ कम्पेटिबिलिटी बर.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "अनदेखा करव" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "इनपुट फाइल 1 (आधार) बर विजिबल नाम रीप्लेसमेंट." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "इनपुट फाइल 2 बर विजिबल नाम रीप्लेसमेंट." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "इनपुट फाइल 3 बर विजिबल नाम रीप्लेसमेंट." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "खोले बर फाइल1 (आधार, यदि एखर साथ निरधारित नइ --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "खोले बर फाइल2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "खोले बर फाइल3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "संकली के मिलावटें अउ सामान्य फाइल मन ल." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "कड़ी" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "आकार." + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "तारीक अउ आकार:" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "फाइल के तुलना करत हे ..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "सब्बो जगह अ चुनव" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "सब्बो जगह ब चुनव" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "सब्बो जगह स चुनव" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "सब्बो समाधान-रहित आपसी विरोधों बर अ चुनव" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "सब्बो समाधान-रहित आपसी विरोधों बर ब चुनव" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "सब्बो समाधान-रहित आपसी विरोधों बर स चुनव" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर अ चुनव" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर ब चुनव" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर स चुनव" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"आउटपुट सुधारे जा गे हे.\n" +"यदि आप मन जारी रखथो तहां आप मन के बदलाव खो जाही." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "सब्बो इनपुट फाइल बाइनरी समान हे." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "सब्बो इनपुट फाइल मन ल एके पाठ रखे हे." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "आपसी विरोध" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<कोई स्रोत लकीर नइ>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<विरोधाभास (सिरिफ सफेद जगह) सम्मिलित करव>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<विरोधाभास सम्मिलित करव>" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"अब तक सब्बो विरोधाभासों के समाधान नइ करे गे हे.\n" +"फाइल सहेजे नइ गिस.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "विरोधाभास डेरी " + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "फाइल सहेजे मं गलती" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "लिखे के समय गलती." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "आउटपुट" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[परिवर्धित]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +msgid "Conflict" +msgstr "आपसी विरोध" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "ब" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "अ (बेस):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "आउटपुट (वैकल्पिक):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "फाइल..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "स (वैकल्पिक):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "युनिकोड" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "लेटिन-१" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "कान्फिगर...." + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "फोंट" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "संपादक अउ डिफ आउटपुट फोंट" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "फाइल सहेजे मं गलती" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "रंग" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "रंग सेटिंग" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "आगू तरफ के रंगः" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "पिछोत अंगना के रंगः" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "डिफ पिछोत अंगना रंगः" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "रंग अ:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "रंग ब:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "रंग स:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "विरोधाभास बर रंग:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "अभी हाल के सीमा पिछोत अंगना रंग:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "अभी हाल के सीमा डिफ पिछोत अंगना रंग:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "डिरेक्टरी तुलना दृस्य:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "संपादक" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "संपादक व्यवहार" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "टैब जगह भरव करथे " + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "टैब आकारः" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "अपने अपन हासिया छोड़ना" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "अपने अपन नकल चयन" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "विंडो (&W)" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "अपने आप चुनव" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "डिफ" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "डिफ सेटिंग" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "सफेद जगह के रूप मं समझव." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ कमेंट्स ल सफेद जगह के रूप मं समझव" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ कमेंट्स ल सफेद जगह के रूप मं समझव" + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "सफेद जगह के रूप मं समझव." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "केस डिफरेंसेस ल सफेद जगह बदले के रूप मं समझव. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "प्री-प्रोसेसर कमांड:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "कमइया परिभासित प्री-प्रोसेसिंग. (विवरन बर कागद देखव.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "लाइन-मैचिंग प्री-प्रोसेसर कमांड:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "गंभीर कोसिस करव (धीमा)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "सम्मिलित करव" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "मिलाय के सेटिंग" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "अपने अपन एडवान्स देरी (मि.से.):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "जानकारी गोठ देखाव" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "सफेद जगह 2-फाइल सम्मिलित डिफाल्ट:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "हस्तचालित चुनाव" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "सफेद जगह 3-फाइल सम्मिलित डिफाल्ट:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "इतिहास प्रविस्टि के सबसे बड़े संख्या:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "डिरेक्टरीज रिकर्सिव करव" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "का सबडिरेक्टरीज ल विस्लेसन करना हे या नइ. " + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "फाइल पैटर्न:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "फाइल-एन्टी-पैटर्न:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "फाइल-एन्टी-पैटर्न:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr ".cvsignore के उपयोग करव" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "लुकाए फाइल मन ल अउ डिरेक्टरीज खोजव" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "लुकाए फाइल मन ल अउ डिरेक्टरीज खोजव" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "फाइल संकली के अनुसरन करव" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "फाइल संकली के अनुसरन करव" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "सब्बो सबडिरेक्टरीज अनफोल्ड करव" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "फाइल तुलना मोड" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "बाइनरी तुलना" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "हर एक फाइल के बाइनरी तुलना. (डिफाल्ट)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "पूरा विस्लेसन" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "सुधारे के तारीक मं भरोसा करव (असुरक्छित)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, fuzzy, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "सुधारे के तारीक मं भरोसा करव (असुरक्छित)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "आकार मं भरोसा करव (असुरक्छित)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "डिरेक्टरीज सिंक्रोनाइज करव" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "सम्मिलित करे के बदला मा नवा के नकल करव (असुरक्छित)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "बैकअप फाइल मन ल (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "छेत्रीय सेटिंग" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "टीप: लोकल एनकोडिंग हे" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "अपने आप चुनव" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "इंटीग्रेसन" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "इंटीग्रेसन सेटिंग" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "ये सब्बो विकल्प मन ल रीसेट करथे . सिरिफ उनको ही नइ जऊन अभी हाल के विसय मं हे. " + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "प्री-प्रोसेसर-कमांड:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "निम्न विकल्प जऊन आप मन चुने हेओ मन डाटा ल बदल सकथो :\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "सम्मिलित करे बर विकल्प असुरक्छित हे" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "ए विकल्प मन के उपयोग सम्मिलित करे के समय करव" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "असुरक्छित विकल्प अक्छम करव" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "अ लोड करत हे" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "अ लोड करत हे" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "ब लोड करत हे" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "अ लोड करत हे" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "डिफ: अ <-> ब" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "लाइनडिफ: अ <-> ब" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "स लोड करत हे" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "अ लोड करत हे" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "डिफ: अ <-> स" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "डिफ: ब <-> स" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "लाइनडिफ: ब <-> स" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "लाइनडिफ: अ <-> स" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "छोड़व" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "फाइल मन ल खोलत हे..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "चयन ल काटत हे..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "चुने हुए के नकल क्लिपबोर्ड मं बनात हे..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "क्लिपबोर्ड के चीज मन ल घुसात हे..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "सहेजव अउ जारी रखव" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "सहेजे बिना जारी रखव" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "ढूंढना पूरा" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "ढूंढना पूरा" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "कान्फिगर...." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "फाइल मन ल खोलत हे..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "पाठ खोजव:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "केस सेंसिटिव" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "खोजव अ" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "खोजव ब" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "खोजव स" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "खोजे के बाद् आउटपुट" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "खोजव (&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "रेगुलर एक्सप्रेसन जंचइया" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "छंटइया सूची परिनाम:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "मैच फेल." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "क्लिपबोर्ड डाटा ल अस्थाई फाइल मं लिखना फेल." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "क्लिपबोर्ड से" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "संकली के मिलावटें अउ सामान्य फाइल मन ल." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/hr/kdiff3.po b/po/hr/kdiff3.po new file mode 100644 index 0000000..ba19813 --- /dev/null +++ b/po/hr/kdiff3.po @@ -0,0 +1,3308 @@ +# Translation of kdiff3 to Croatian +# +# Andrej Dundovic , 2010. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2010-01-24 16:47+0100\n" +"Last-Translator: Andrej Dundovic \n" +"Language-Team: Croatian \n" +"Language: hr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\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-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Bijelo" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "" + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "" + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr "" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "" + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/hu/kdiff3.po b/po/hu/kdiff3.po new file mode 100644 index 0000000..d6f10f2 --- /dev/null +++ b/po/hu/kdiff3.po @@ -0,0 +1,3634 @@ +# Copyright (C) 2012 Free Software Foundation, Inc. +# +# Tamas Szanto , 2003. +# Balázs Úr , 2012, 2013. +msgid "" +msgstr "" +"Project-Id-Version: KDE 3.2\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2013-07-13 11:52+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: 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: Lokalize 1.5\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Úr Balázs" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "urbalazs@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "A fájlállapot lekérdezése: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Fájl beolvasása: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Fájl írása: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Elfogyott a memória" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Könyvtár létrehozása: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Fájl törlése: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Fájl törlése: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Szimbolikus link létrehozása: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Fájl átnevezése: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Fájl másolása: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Fájl beolvasása: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Könyvtár kilistázása: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Adatvesztési hiba:\n" +"Ha ez reprodukálható, kérjük vegye fel a kapcsolatot a szerzővel.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Súlyos belső hiba történt" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Súlyos belső hiba történt" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Súlyos belső hiba történt" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "A sor nem elérhető" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kódolás:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Sorvég stílus:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (alap):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Kódolás:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Sorvég stílus:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Felső sor" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Vég" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Fájlok megnyitása..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A másolása B-be" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B másolása A-ba" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A törlése" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B törlése" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A és B törlése" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Beolvasztás A-ba" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Beolvasztás B-be" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Beolvasztás A és B-be" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Törlés (ha létezik)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Összeolvasztás" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Összeolvasztás (kézi)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Hiba: ütköző fájltípusok" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Hiba: megváltozott és törölt" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Hiba: a dátumok megegyeznek, de a fájlok nem." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Kész." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Hiba" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Átlépve." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Nincs elmentve." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Folyamatban..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Feladat." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Név" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Művelet" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Állapot" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Megoldatlan" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Megoldott" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Nem fehér" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Fehér" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Egy könyvtár összeolvasztás még nem fejeződött be. Biztosan félbe szeretné " +"szakítani a műveletet és újra be szeretné olvasni a könyvtár tartalmát?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Figyelmeztetés" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Újraolvasás" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "A művelet folytatása" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Nem sikerült beolvasni ezeket a könyvtárakat:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Az \"A\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "A \"B\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "A \"C\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Fájlmegnyitási hiba" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"A célkönyvtár nem egyezhet meg sem az A, sem a B könyvtárral, ha három " +"könyvtár lesz összeolvasztva.\n" +"Továbblépés előtt ellenőrizze az értéket." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Figyelmeztetés - paraméter" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Könyvtárak pásztázása…" + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Fájl beolvasása: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Fájl beolvasása: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Fájl beolvasása: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Néhány alkönyvtár beolvasása nem sikerült itt:" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Ellenőrizze az alkönyvtárak jogosultságait." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Kész." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "A kézi összeolvasztások száma:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ez minden összeolvasztási műveletet érint." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Az összes összeolvasztási művelet megváltoztatása" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Feldolgozás " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Ez a művelet jelenleg nem lehetséges." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "A művelet nem lehetséges" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Hiba történt másolás közben.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Összeolvasztási hiba" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" +"Ismeretlen összeolvasztási művelet (normál körülmények között nem fordulhat " +"elő)." + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Ismeretlen összeolvasztási művelet." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Az összeolvasztás előkészítése megtörtént.\n" +"\n" +"Kattintson a \"Kezdődjön\" gombra, ha elolvasta a leírást és tudja, mi fog " +"történni.\n" +"Kattintson a \"Szimuláció\" gombra, ha látni szeretné, mi fog történni.\n" +"\n" +"Ez a program még béta állapotú, ezért nincs garancia a hibátlan működésre. A " +"fontos adatokról mindenképpen készítsen biztonsági másolatot!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Az összeolvasztás megkezdése" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Kezdődjön" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Szimuláció" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"A kijelölt elem típusa eltérő a könyvtárakban. Válassza ki, mit szeretne " +"tenni." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"A két fájl utolsó módosítási dátuma megegyezik, de a fájlok tartalma nem. Mi " +"történjen?" + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"A kijelölt elem típusa eltérő a könyvtárakban. Válassza ki, mit szeretne " +"tenni." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Ez a művelet most nem hajtható végre, mert folyamatban van egy könyvtár " +"összeolvasztás." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Hiba történt az utolsó lépsnél.\n" +"Folytatni szeretné a műveletet a hiba ellenére vagy át szeretné ugrani a " +"hibát okozó elemet?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Az összeolvasztás folytatása hiba esetén is" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Folytatás az utolsó elemmel" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Az elem átlépése" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Az összeolvasztási művelet befejeződött." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Az összeolvasztás befejeződött" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"A szimulált összeolvasztás befejeződött: ellenőrizze, hogy elfogadhatók-e a " +"javasolt műveletek." + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "Hiba történt. Kattintson az OK gombra részletes tájékoztatáshoz.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" +"Hiba történt %1 törlése közben: nem sikerült létrehozni egy biztonsági " +"másolatot." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "könyvtár (%1) törlése az alkönyvtárakkal együtt" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "törlés (%1)" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Hiba történt: a könyvtártörlés során, a könyvtár beolvasásakor, hiba történt." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Hiba: egy rmdir (%1) művelet nem sikerült." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Hiba történt: a törlési művelet nem sikerült." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "kézi összeolvasztás (%1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Megjegyzés: kézi összeolvasztás esetén a felhasználónak az F7-tel kell " +"továbblépnie." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Hiba: egy másolás (%1 -> %2) nem sikerült. Nem sikerült törölni a már létező " +"másolási célpontot." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Link másolása (%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Hiba: egy link másolása nem sikerült. Távoli linkeket nem lehet használni." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Hiba történt: egy link másolása nem sikerült." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "másolás (%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Hiba történt átnevezés (%1 -> %2) közben: a célfájl nem törölhető." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "átnevezés (%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Hiba történt: egy átnevezés nem sikerült." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Hiba történt a könyvtár (%1) létrehozása közben. A már létező fájl nem " +"törölhető." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Könyvtár létrehozása (%1)" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Hiba történt egy könyvtár létrehozása közben." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Cél" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Típus" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Méret" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attribútum" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Utolsó módosítás" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Link-Cél" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fájl" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Link: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "nem áll rendelkezésre" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (cél): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (alap): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (cél): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (cél): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Cél: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Könyvtár összeolvasztás állapotának mentése másként…" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "A könyvtár összeolvasztás kezdése/folytatása" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "A művelet végrehajtása az aktuális elemen" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "A kiválasztott fájl összehasonlítása" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Az aktuális fájl összeolvasztása" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Egyesítés\n" +"Fájl" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Az alkönyvtárak összecsukása" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Az alkönyvtárak kibontása" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Az 'A' kiválasztása az összes elemhez" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "A 'B' kiválasztása az összes elemhez" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "A 'C' kiválasztása az összes elemhez" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Automatikus kiválasztás az összes elemnél" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Nincs művelet az összes elemre" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Azonos fájlok megjelenítése" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Azonos\n" +"fájlok" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Eltérő fájlok megjelenítése" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Fájlok megjelenítése csak A-ban" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Fájlok\n" +"csak A-ban" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Fájlok megjelenítése csak B-ben" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Fájlok\n" +"csak B-ben" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Fájlok megjelenítése csak C-ben" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Fájlok\n" +"csak C-ben" + +#: directorymergewindow.cpp:2981 +#, fuzzy, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "A kiválasztott fájl összehasonlítása" + +#: directorymergewindow.cpp:2982 +#, fuzzy, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "A kiválasztott fájl összehasonlítása" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ne tegyen semmit" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A és B törlése" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Beolvasztás A és B-be" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Fájl beolvasása: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Nem sikerült ideiglenes másolatot készíteni a(z) %1 fájlról." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "%1 megnyitása nem sikerült." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "%1 olvasása közben hiba történt" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Biztonsági mentés készítése közben egy régebbi biztonsági mentést nem " +"sikerült törölni. \n" +"Fájlnév: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Biztonsági mentés készítése közben egy átnevezés nem sikerült. \n" +"A fájlok nevei: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Jelenlegi beállítás:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Beállítási opció hiba:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"Az --auto opciót használná a program, de nincs megadva a kimeneti fájl." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "" +"Az --auto opció figyelmen kívül lesz hagyva könyvtárak összehasonlításánál." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "A mentés nem sikerült." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Nem sikerült megnyitni a következő fájlokat:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fájlmegnyitási hiba" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Dokumentumok megnyitása összehasonlításhoz..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Újratöltés" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Az összeolvasztás eredményének elmentése. Minden ütközést fel kell oldani." + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Az aktuális dokumentum mentése mint..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Eltérések nyomtatása" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Kilépés az alkalmazásból" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Kivágja a kijelölt részt és a vágólapra helyezi" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kimásolja a kijelölt részt és a vágólapra helyezi" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "A vágólap tartalmának beillesztése a jelenlegi pozíciónál" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Minden kijelölése a jelenlegi ablakban" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Karakterlánc keresése" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "A karakterlánc keresése újból" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Az állapotsor ki-be kapcsolása" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "A KDiff3 beállításai…" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ugrás a jelenlegi deltára" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Jelenlegi\n" +"delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ugrás az első deltára" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Első\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ugrás az utolsó deltára" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Utolsó\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ugrás az előző deltára" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Előző\n" +"delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ugrás a következő deltára" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Következő\n" +"delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ugrás az előző ütközésre" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Előző\n" +"ütközés" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ugrás a következő ütközésre" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Következő\n" +"ütközés" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ugrás az előző feloldatlan ütközésre" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Előző\n" +"Megoldatlan" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ugrás a következő feloldatlan ütközésre" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Következő\n" +"Megoldatlan" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Sor(ok) kiválasztása A-ból" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Választás:\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Sor(ok) kiválasztása B-ből" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Választás:\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Sor(ok) kiválasztása C-ből" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Választás:\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"A forrás kiválasztása után automatikus ugrás a következő feloldatlan " +"ütközésre" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automatikus\n" +"Következő" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "A szóközök és tabulátorok megjelenítése eltéréseknél" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Az üres karakterek megjelenítése" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "A sorszámok megjelenítése" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Sor\n" +"számok" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Az egyszerű ütközések automatikus feloldása" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Delták beállítása az ütközésekhez" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, fuzzy, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Az egyszerű ütközések automatikus feloldása" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, fuzzy, kde-format +msgid "Join Selected Diffs" +msgstr "A kiválasztott fájl összehasonlítása" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Az A ablak megjelenítése" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "A B ablak megjelenítése" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "A C ablak megjelenítése" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normál áttekintés" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fókusz a következő ablakra" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fókusz az előző ablakra" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "A megosztás irányának megváltoztatása" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Osztott nézet (könyvtár és szöveg)" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Váltás a könyvtár- és szöveges nézet között" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Az összeolvasztás eredménye még nincs elmentve." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Mentés és kilépés" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Kilépés mentés nélkül" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Az összeolvasztás eredményét nem sikerült elmenteni." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Éppen folyamatban van egy könyvtárösszeolvasztás. Biztosan félbe szeretné " +"szakítani a műveletet?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "A fájl mentése..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "A fájl elmentése más néven..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Mentés másként…" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "A nyomtatás nincs megvalósítva." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Nyomtatás…" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Kijelölés" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Nyomtatás kész." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Nyomtatás félbeszakítva." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Kilépés..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Az eszköztár átkapcsolása..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Az állapotsor átkapcsolása..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "A KDiff3 beállításai" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, fuzzy, kde-format +#| msgid "" +#| "Could not find our part!\n" +#| "This usually happens due to an installation problem. Please read the " +#| "README-file in the source package for details." +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"A keresett komponens nem található.\n" +"Ez a hiba valószínűleg valamilyen telepítési probléma következménye. További " +"információ a forráscsomagban található README fájlban található." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fájl" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Összevonási művelet a jelenlegi elemmel" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Szinkronizálási művelet a jelenlegi elemmel" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Mozgatás" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Kü&lönbségnézet" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Összeolvasztás" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Ablak" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Fő eszköztár" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Összeolvasztás a bemenettel." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Az alapfájl explicit kijelölése. Kompatibilitási célokat szolgál." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" +"A kimeneti fájl neve. Maga után vonja a -m opciót. Például: -o újfájl.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "A kimeneti fájl neve, még egyszer. Kompatibilitási célokat szolgál." + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Nem jelenjen meg grafikus felület, ha az összes ütközés automatikusan " +"feloldható. (A -o fájlnév opcióval használható.)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Mellőzés" + +#: main.cpp:133 +#, fuzzy, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" +"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." + +#: main.cpp:134 +#, fuzzy, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" +"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." + +#: main.cpp:135 +#, fuzzy, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" +"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." + +#: main.cpp:136 +#, fuzzy, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, fuzzy, kde-format +msgid "Use a different config file." +msgstr "Az eltérő fájlok száma:" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" +"a megnyitandó fájl (1) - ez lesz az alap, ha nincs megadva a --base opció" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "a megnyitandó fájl (2)" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "a megnyitandó fájl (3)" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Linkek és normál fájlok vegyesen." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Link: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Méret. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Dátum és méret: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Fájl összehasonlítása…" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "A kiválasztása mindenhol" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "B kiválasztása mindenhol" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "C kiválasztása mindenhol" + +#: mergeresultwindow.cpp:147 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "A kiválasztása az összes feloldatlan ütközéshez" + +#: mergeresultwindow.cpp:148 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "B kiválasztása az összes feloldatlan ütközéshez" + +#: mergeresultwindow.cpp:149 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "C kiválasztása az összes feloldatlan ütközéshez" + +#: mergeresultwindow.cpp:150 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "A kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez" + +#: mergeresultwindow.cpp:151 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "B kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez" + +#: mergeresultwindow.cpp:152 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "C kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez" + +#: mergeresultwindow.cpp:258 +#, fuzzy, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"\n" +"A fel nem oldott ütközések száma: " + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"A kimenet megváltozott.\n" +"Ha továbblép, a módosítások elvesznek." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Az összes bemeneti fájl megegyezik (bináris módban)." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Az összes bemeneti fájl megegyezik (szöveges módban)." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, fuzzy, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "B és C binárisan megegyezik.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "A és B szövege megegyezik.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Ütközések" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<Összeolvasztási ütközés (Csak whitespace)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<Összeolvasztási ütközés>" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Még nincs feloldva az összes ütközés.\n" +"A fájl nem lesz elmentve.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Megmaradt ütközések" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Fájlmentési hiba" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Hiba történt írás közben." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Kimenet" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Módosítva]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding for saving:" +msgstr "Kódolás:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Ütközés" + +#: mergeresultwindow.cpp:3247 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Kodek innen" + +#: mergeresultwindow.cpp:3249 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Kodek innen" + +#: mergeresultwindow.cpp:3251 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Kodek innen" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (alap):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Kimenet (opcionális):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fájl…" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Nevek cseréje/másolása …" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (opcionális):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, fuzzy, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Akkor kell esetleg bejelölni, ha a nem ASCII karakterek helytelenül jelennek " +"meg." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Beállítás" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Betűkészlet" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "A szerkesztő és a diff-kimenet betűtípusa" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Fájlmentési hiba" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Szín" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Színek beállításai" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Előtérszín:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Háttérszín:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "A diff szöveg háttérszíne:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "A szín:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "B szín:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "C szín:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Ütközési szín:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "A jelenlegi tartomány háttérszíne:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "A jelenlegi tartomány diff-jének háttérszíne:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +msgid "Folder Comparison View:" +msgstr "A könyvtárak összehasonlítási állapota" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Legújabb fájl színe:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Legrégibb fájl színe:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Hiányzó fájlok színe:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Szerkesztő" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Szerkesztő viselkedés" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "A Tab billentyű szóközöket szúrjon be" + +#: optiondialog.cpp:790 +#, fuzzy, kde-format +#| msgid "" +#| "On: Pressing tab generates the appropriate number of spaces.\n" +#| "Off: A Tab-character will be inserted." +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Ha be van jelölve: a Tab lenyomásakor a megadott számú szóköz kerül a " +"szövegbe.\n" +"Ha nincs bejelölve: a Tab lenyomásakor Tab karakter kerül a szövegbe.." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tabulátorméret:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "A behúzás megőrzése" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Ha be van jelölve: új sor kezdésekor az előző sor behúzását használja a " +"program.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "A kijelölt adatok automatikus kimásolása a vágólapra" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Ha be van jelölve: a kijelölt adatok másolata mindig automatikusan a " +"vágólapra kerül.\n" +"Ha nincs bejelölve: a másolás csak parancsra történik meg (pl. a Ctrl+C-vel)." + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Ablak" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "A kijelölt adatok automatikus kimásolása a vágólapra" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff-beállítások" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "A C/C++-megjegyzések üres helynek tekintése." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"A számjegyek figyelmen kívül hagyása sorillesztésnél. (Hasonló 'Az üres " +"karakterek figyelmen kívül hagyása' opcióhoz.)\n" +"Néha szükség lehet erre az opcióra számadatokat tartalmazó fájlok " +"összehasonlításánál." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "A C/C++-megjegyzések üres helynek tekintése." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "A C/C++-megjegyzések üres helynek tekintése." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +msgid "Ignore case (treat as white space)" +msgstr "A C/C++-megjegyzések üres helynek tekintése." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Előfeldolgozási parancs:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"A felhasználó által megadott előfeldolgozás használata (a részletek a " +"dokumentációban találhatók)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Sorösszehasonlítási előparancs:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Ezt a parancsot sorillesztésnél használja a program.\n" +"(A részletek a dokumentációban találhatók.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Alaposabb próbálkozás (lassabb)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Bekapcsolja a --minimal opciót a külső diff programnál.\n" +"Hatására a sebesség jelentősen lecsökkenhet nagy fájlok esetén." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Összeolvasztás" + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "A diff és az összeolvasztás beállításai" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Automatikus léptetési késleltetés (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Automatikus léptetés esetén a megadott ideig a kijelölt rész látszik,\n" +"utána a program automatikusan a következő ütközésre lép. A megengedett " +"értéktartomány: 0-2000 ms" + +#: optiondialog.cpp:967 +#, fuzzy, kde-format +#| msgid "Show Window A" +msgid "Show info dialogs" +msgstr "Az A ablak megjelenítése" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Kézi választás" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Lehetővé teszi az összeolvasztási algoritmusnak, hogy automatikusan " +"kiválassza a megfelelő bemenetet, ha az üres helyek megváltozását kell nézni." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "Az alkönyvtárak száma:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Az alkönyvtárakban is" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "" +"Itt lehet megadni, hogy az összehasonlítás az alkönyvtárak tartalmára is " +"kiterjedjen-e." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Fájlminták:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Az ellenőrzendő fájlok mintája. \n" +"Használható illesztési karakterek: '*' és '?'\n" +"Több minta is megadható pontosvesszővel elválasztva." + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Kizáró fájlminták:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"A műveletből kizárni kívánt fájlok mintája. \n" +"Használható illesztési karakterek: '*' és '?'\n" +"Több minta is megadható pontosvesszővel elválasztva." + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Kizáró fájlminták:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"A műveletből kizárni kívánt fájlok mintája. \n" +"Használható illesztési karakterek: '*' és '?'\n" +"Több minta is megadható pontosvesszővel elválasztva." + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "A .cvsignore használata" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\"-files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"A kizárási mintát kiterjeszti a CVS által figyelmen kívül hagyott fájlokra.\n" +"A \".cvsignore\" fájlok segítségével ez minden könyvtárban külön megadható." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "A keresések a rejtett fájlokra és könyvtárakra is terjedjenek ki" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "A keresések a rejtett fájlokra és könyvtárakra is terjedjenek ki" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "A fájllinkek követése" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Be: összehasonlítás a link által mutatott fájllal.\n" +"Ki: a linkek összehasonlítása." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "A fájllinkek követése" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Be: összehasonlítás a link által mutatott fájllal.\n" +"Ki: a linkek összehasonlítása." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "Az alkönyvtárak kibontása" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Fájl összehasonlítási mód" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Bináris összehasonlítás" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Bináris összehasonlítás minden fájlra. (Alapértelmezett)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Teljes elemzés" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, fuzzy, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "A módosítási dátum valósnak feltételezése (nem megbízható!)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Két fájlt egyezőnek feltételez majd a program, ha a hosszuk és az utolsó " +"módosítás dátuma megegyezik.\n" +"Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség." + +#: optiondialog.cpp:1265 +#, fuzzy, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "A módosítási dátum valósnak feltételezése (nem megbízható!)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Két fájlt egyezőnek feltételez majd a program, ha a hosszuk és az utolsó " +"módosítás dátuma megegyezik.\n" +"Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "A méret valósnak feltételezése (nem megbízható!)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Két fájlt egyezőnek feltételez majd a program, ha a hosszuk megegyezik.\n" +"Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség, ha letöltéskor " +"a módosítási dátum megváltozik." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "A könyvtárak szinkronizálása" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"A program másolja át a fájlokat mindkét könyvtárba - ilyenkor\n" +"összehasonlítás után a könyvtárak meg fognak egyezni.\n" +"Csak akkor működik, ha az összehasonlításnál nincs megadva a cél." + +#: optiondialog.cpp:1291 +#, fuzzy, kde-format +msgid "White space differences considered equal" +msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Az újabb másolása összeolvasztás helyett (nem megbízható!)." + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Nem kell a fájlok tartalmával törődni, csak az újabb fájlt kell venni.\n" +"Csak akkor használja, ha tudja, milyen következményekkel jár ez a művelet!\n" +"Az opciónak csak két könyvtár összehasonlításakor van hatása." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Biztonsági mentések (.orig)" + +#: optiondialog.cpp:1314 +#, fuzzy, kde-format +#| msgid "" +#| "When a file would be saved over an old file, then the old file\n" +#| "will be renamed with a '.orig'-extension instead of being deleted." +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Mielőtt a program egy régebbi fájlt felülírna az újabbal, a régi fájl\n" +"legyen átnevezve '.orig' kiterjesztéssel (törlés helyett)." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Területi beállítások" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Megjegyzés: A helyi kódolás" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Automatikusan felismert Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automatikus kiválasztás" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Jobbról balra nyelv" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integráció" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integráció beállítások" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"Ezzel alapállapotba hozható az összes beállítás (nem csak az aktuális témáé)." + +#: pdiff.cpp:92 +#, fuzzy, kde-format +msgid "PreprocessorCmd: " +msgstr "Előfeldolgozási parancs:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A betöltése" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "A betöltése" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B betöltése" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "A betöltése" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Sordiff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C betöltése" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "A betöltése" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, fuzzy, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Az összes bemeneti fájl megegyezik (szöveges módban)." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "A és B fájl binárisan megegyezik.\n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Néhány bemeneti fáj bináris fájlnak tűnik.\n" +"A KDiff3-féle összeolvasztás szöveges fájlok kezelésére való.\n" +"Csak akkor lépjen tovább, ha valóban ezt szeretne." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Félbeszakítás" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Fájlok megnyitása..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "A kijelölt adatok kivágása..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "A kijelölt adatok másolása a vágólapra..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "A vágólap tartalmának beillesztése..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Mentés és folytatás" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Folytatás mentés nélkül" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "A keresés befejeződött." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "A keresés befejeződött" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, fuzzy, kde-format +msgid "Error while adding manual diff range" +msgstr "Hiba történt egy könyvtár létrehozása közben." + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Mégsem" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Csere: %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Másolás: %1->Kimenet" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Csere: %1<->Kimenet" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Beállítás…" + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Fájlok megnyitása..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Szöveg keresése:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Nagybetűérzékeny" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "A keresése" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "B keresése" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "C keresése" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "A keresés kimenete" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Keresés" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Reguláris kifejezés tesztelő" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, fuzzy, kde-format +msgid "Match failed." +msgstr "A mentés nem sikerült." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "A vágólap adatának írása ideiglenes fájlba nem sikerült." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "A vágólapról" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Linkek és normál fájlok vegyesen." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Az előfeldolgozás esetleg meghiúsult. Ellenőrizze ezt a parancsot:\n" +"\n" +" %1\n" +"\n" +"Az előfeldolgozási parancs most le lesz tiltva." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"A soregyezés-előfeldolgozás esetleg meghiúsult. Ellenőrizze ezt a " +"parancsot:\n" +"\n" +" %1\n" +"\n" +"A soregyezés-előfeldolgozási parancs most le lesz tiltva." + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Szóköz szükséges a záró aposztróf után." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Nem várt aposztróf az argumentumon belül." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Nincs program megadva." \ No newline at end of file diff --git a/po/hu/kdiff3fileitemactionplugin.po b/po/hu/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..3f816fa --- /dev/null +++ b/po/hu/kdiff3fileitemactionplugin.po @@ -0,0 +1,122 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Balázs Úr , 2012. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2012-06-28 18:34+0200\n" +"Last-Translator: Balázs Úr \n" +"Language-Team: Hungarian \n" +"Language: 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: Lokalize 1.4\n" + +#: kdiff3fileitemaction.cpp:81 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3 …" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Összehasonlítás ezzel: %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Egyesítés ezzel: %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "„%1” mentése későbbre" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3 utas egyesítés az alappal" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Összehasonlítás ezzel …" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Lista törlése" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Összehasonlítás" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3 utas összehasonlítás" + +#: kdiff3fileitemaction.cpp:162 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "A KDiff3 menü bővítmény névjegye …" + +#: kdiff3fileitemaction.cpp:270 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"KDiff3 fájlelem művelet bővítmény: Copyright (C) Joachim Eibl, 2011.\n" +"KDiff3 honlap: http://kdiff3.sourceforge.net\n" +"\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Az összefüggés menü kiegészítésének használata:\n" +"Két kiválasztott fájl egyszerű összehasonlításáért válassza az " +"„Összehasonlítás”-t.\n" +"Ha a másik fájl valahol máshol található, „Mentse” az első fájlt későbbre. " +"Fel fog tűnni az „Összehasonlítás ezzel…” almenüben. Eztán használja az " +"„Összehasonlítás ezzel” menüt a második fájlon.\n" +"Egy 3 utas egyesítésért először, „Mentse” az alap fájlt, aztán az ágat " +"egyesítésre, és aztán „3 utas egyesítés az alappal” a másik elágazáson, " +"amelyik célállomásként lesz használva.\n" +"Ugyanezt alkalmazza könyvtárra is összehasonlítás és egyesítés céljából." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "A KDiff3 fájlelem művelet bővítmény névjegye …" \ No newline at end of file diff --git a/po/ia/diff_ext.po b/po/ia/diff_ext.po new file mode 100644 index 0000000..f19a5b8 --- /dev/null +++ b/po/ia/diff_ext.po @@ -0,0 +1,129 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# giovanni , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-05-13 10:29+0200\n" +"Last-Translator: giovanni \n" +"Language-Team: Interlingua \n" +"Language: ia\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 20.04.2\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Compara con %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Fusiona con %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusion de 3 vias con base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Salveguarda '%1' per depost" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Compara con ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Netta lista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Compara" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparation de 3 vias" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "A proposito de Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Iste software es distribuibile sub le licentia BDS-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Alcun extensiones per KDiff3 (c) 2006-2013 per Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Portate a Qt5/Kf5 per Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Pagina initial per Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "A proposito de Diff-Ext per KDiff3 (64 Bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Compara files seligite" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Compara '%1' con '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Salveguarda '%1' per operation subsequente" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" +"Non poteva initiar KDiff3. Pro favor re-executa installation de KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Commando" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "LineaDeCommando" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext per KDiff3" \ No newline at end of file diff --git a/po/ia/kdiff3.po b/po/ia/kdiff3.po new file mode 100644 index 0000000..b54ea52 --- /dev/null +++ b/po/ia/kdiff3.po @@ -0,0 +1,3311 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# giovanni , 2020, 2021, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-01-06 21:44+0100\n" +"Last-Translator: giovanni \n" +"Language-Team: Interlingua \n" +"Language: ia\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 21.12.0\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Giovanni Sora" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "g.sora@tiscali.it" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Foras de Memoria" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Removente dossier : %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "File %1: Linea %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "File %1: Linea non disponibile" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codifica:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Stilo de fin linea:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codifica: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Stilo de fin linea: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Linea superior" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fin" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Aperi file" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Altere" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copia A in B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copia B in A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Dele A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Dele B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Dele A & B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Fusiona in A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Fusiona in B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Fusiona in A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Dele (si existe)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Fusiona" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Fusiona (manual)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Facite" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Error" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Saltate." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Non salveguardate." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "In progresso..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "De facer." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nomine" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operation" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stato" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Non resolvite" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Resolvite" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Blanco" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Aviso" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Re-examina" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continua fusionar" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Il falleva aperir directorios:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Dossier A \"%1\" non existe o non es un dossier.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Dossier B \"%1\" non existe o non es un dossier.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Dossier C \"%1\" non existe o non es un dossier.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Error de aperir dossier" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Aviso de parametro" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Scandente dossieres ..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Legente dossier A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Legente dossier B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Legente dossier C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Preste." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Processante %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Alcun files non poteva esser processate." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Iste operation actualmente non es possibile." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operation non possibile" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Un error occurreva durante que on copiava." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Fusiona error" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Incognite operation de fusion." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Initiante fusion" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Face lo" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Iste operation actualmente non es possibile proque le fusion de dossier es " +"currentemente executante." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continua fusionar post un error" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continua con ultime elemento" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Salta elemento" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operation de fusion complete." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fusion complete" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "Dele( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "fusion manual ( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "Copia( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "Renomina( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Error: falleva a renominar." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Error quando creava dossier." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Dossier" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Typo" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Dimension" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Ultime modification" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Ligamine-Destination" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "File" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Ligamine" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "Non disponibile" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A(Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr " B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Initia/Continua fusion de dossier" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Compara file seligite" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Fusiona file currente" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Fusiona\n" +"File" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Selige A per omne elementos" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Selige B per omne elementos" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Selige C per omne elementos" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nihil Facer" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Dele A && B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Fusiona in A && B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Aperir %1 falleva. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Il falleva a salveguardar." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Il falleva aperir iste files:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Error de aperir file" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Recarga" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Quita le application" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Talia le section seligite e pone lo al area de transferentia" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia le section seligite al area de transferentia" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Colla le contentos del area de transferentia al position currente" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Habilita/dishabilita le barra de stato" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Monstra numeros de linea (rango)" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Salvante file..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Salveguardar file con un nove nomine de file..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Salveguarda como..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Imprimente..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selection)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Exiente..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Commutar barra de instrumento ..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Commuta le barra de stato..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Un KPart pro monstrar imagines SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&File" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "D&ossier" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "Mo&vimento" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Fu&siona" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Fenestra" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra de instrumento principal" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorate." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "file2 de aperir" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "file3 de aperir" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Ligamine: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Dimension. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data & Grandor:" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Comparante file..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflictos" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Egresso:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modificate]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflicto" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialogo" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "File..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Dossier..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Cambia font" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configura" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Font" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Color" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Color de prime plano:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Color de fundo:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Color A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Color B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Color C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Redactor (Editor)" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Grandor de tabulation:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Auto indentation" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Auto relevate" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Fusiona" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Analyse complete" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Synchronisa dossieres" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Preferentias de rete" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Auto selige" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integration" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Cargante A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Cargante A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Cargante B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Cargante B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Cargante C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Cargante C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Aborta" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Aperir files..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Salveguarda && Continua" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continua sin salveguardar" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Cerca complete." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Cerca complete" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancella" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Swap %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configura..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Aperi dossier" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Selige file de exito" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Toto/Omne files (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Cerca texto:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Sensibile al differentia inter majusculas e minusculas" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Cerca A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Cerca B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Cerca C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Cerca exito" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Cerca" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultato de correspondentia:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Ordina resultato de clave:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Correspondentia successose." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Correspondentia fallite." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Ex area de transferentia" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Temp file es: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Nulle programma specificate." \ No newline at end of file diff --git a/po/ia/kdiff3fileitemactionplugin.po b/po/ia/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..c7366ad --- /dev/null +++ b/po/ia/kdiff3fileitemactionplugin.po @@ -0,0 +1,92 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# giovanni , 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-22 22:58+0100\n" +"Last-Translator: Giovanni Sora \n" +"Language-Team: Interlingua \n" +"Language: ia\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 2.0\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Compara con %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Fusiona con %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Salveguarda '%1' per depost" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusion de 3 vias con base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Compara con ..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Netta lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Compara" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparation de 3 vias" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "A proposito de plugin de menu de KDiff3...." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" \ No newline at end of file diff --git a/po/it/diff_ext.po b/po/it/diff_ext.po new file mode 100644 index 0000000..4a1e43d --- /dev/null +++ b/po/it/diff_ext.po @@ -0,0 +1,130 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# Paolo Zamponi , 2018, 2020, 2021. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-05-03 08:17+0200\n" +"Last-Translator: Paolo Zamponi \n" +"Language-Team: Italian \n" +"Language: 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" +"X-Generator: Lokalize 21.04.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Confronta con %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Fondi con %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusione a tre con base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Salva «%1» per dopo" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Confronta con ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Svuota l'elenco" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Confronta" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Confronto a 3" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Informazioni su Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Copyright (c) di Diff-Ext 2003-2006, Sergey Zorin. Tutti i diritti " +"riservati.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Questo software è distribuibile con licenza BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Alcune estensioni per KDiff3 (c) 2006-2013 create da Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Conversione a Qt5/Kf5 a cura di Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Pagina home di Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Informazioni su Diff-Ext per KDiff3 (64 Bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Confronta i file selezionati" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Confronta «%1» con «%2»" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Salva «%1» per operazioni successive" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Impossibile avviare KDiff3. Riavvia l'installazione di KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Comando" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Riga di comando" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext per KDiff3" \ No newline at end of file diff --git a/po/it/docs/kdiff3/index.docbook b/po/it/docs/kdiff3/index.docbook new file mode 100644 index 0000000..08e3ddc --- /dev/null +++ b/po/it/docs/kdiff3/index.docbook @@ -0,0 +1,4147 @@ + +KDiff3"> + + + + ASCII"> +]> + + + + + + +Manuale di &kdiff3; + + + Michael Reeves
reeves.87@gmail.com +
+
+ Joachim Eibl
joachim.eibl@gmx.de +
+
+StelvioRossetTraduzione della documentazione, 2004MarcelloAnniAggiornamento e revisione della traduzione, 2007FedericoZenith
federico.zenith@member.fsf.org
Aggiornamento della traduzione, 2009
ValterMura
valtermura@gmail.com
Aggiornamento della traduzione, 2018
+
+ + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +2019-02-22 +1.08.70 + + + +&kdiff3; è uno strumento per verificare le differenze ed eseguire fusioni tra file e cartelle, che: +confronta e fonde due o tre file di testo o cartelle in ingresso, +ne mostra le differenze riga per riga o carattere per carattere, +dà un modo semplice per fonderli, +ha un editor per risolvere comodamente i conflitti di fusione, +supporta la trasparenza di rete tramite KIO, +ha delle opzioni per evidenziare o nascondere le differenze costituite da spazi o commenti nel codice, +supporta Unicode, UTF-8 e altre codifiche, +stampa le differenze, +supporta la fusione delle parole chiave del controllo di versione e della cronologia. + +Questo documento descrive la versione 1.9 di &kdiff3;. + + + + + +KDE +kdiff3 +differenze +fusione +CVS +confronto tra tre file +confronta +file +cartelle +cartelle +controllo di versione +fusione di tre file +differenze in riga +sincronizza +kpart +kio +trasparenza di rete +editor +spazio +commenti + + +
+ +Introduzione +Un'altra interfaccia per confrontare file? +Per il confronto dei file esistono numerosi strumenti grafici. Perché dovresti scegliere &kdiff3;? Lascia che ti spieghi perché l'ho scritto. &kdiff3; è nato perché dovevo eseguire una difficile fusione tra file. La fusione è necessaria quando più persone lavorano sugli stessi file in un progetto. La fusione può essere per lo più automatica, quando gli strumenti di fusione non solo permettono la modifica dei nuovi file («rami») ma anche del file originale («base»). Lo strumento per la fusione sceglierà automaticamente solo le modifiche eseguite all'interno di un ramo. Quando più persone cambiano le stesse righe, allora lo strumento di fusione trova un conflitto che dovrà essere risolto manualmente. In quel caso la fusione era difficile in quanto un collaboratore aveva cambiato molte cose e corretto l'indentazione in molti punti. Inoltre, un altro aveva cambiato molto testo nello stesso file, dando luogo a molti conflitti durante l'operazione di fusione. Lo strumento che usavo a quel tempo mostrava solamente le righe modificate, ma non cosa era cambiato dentro di loro. Inoltre non c'erano informazioni su dove fosse cambiata solo l'indentazione. La fusione fu un piccolo incubo. Così fu l'inizio. La prima versione poteva mostrare le differenze all'interno di una riga e tra gli spazi. Successivamente molte altre funzionalità sono state introdotte per aumentarne l'utilità. Per esempio, se vuoi confrontare velocemente alcuni testi, è possibile copiarne il contenuto negli appunti e quindi incollarlo in una delle finestre delle differenze. Una funzionalità che ha richiesto molto lavoro è stato il confronto tra cartelle e la funzione di fusione, che hanno trasformato il programma quasi in navigatore di file completo. Spero che &kdiff3; sia utile anche a te. Divertiti! Joachim Eibl (2003) + + +Schermate e funzionalità +Questa schermata mostra la differenza tra due file di testo (utilizzando una vecchia versione di &kdiff3;): + + + + +La fusione di tre file è completamente supportata. Questa è particolarmente utile se due persone cambiano indipendentemente il codice. Si usa il file originale (la base) per aiutare &kdiff3; a selezionare automaticamente le modifiche giuste. Sotto le finestre che evidenziano le differenze, una finestra di modifica ti permetterà di risolvere i conflitti, mostrandone il risultato ottenuto. Puoi anche modificare il risultato delle operazioni. Questa schermata mostra il risultato della fusione di tre file in ingresso: + + + + + +&kdiff3; ti aiuta anche a confrontare e fondere intere cartelle. Questa schermata mostra &kdiff3; durante una fusione tra cartelle: + + + + + + +Altre funzionalità +Visore delle differenze per riga e per carattere +Sfruttando le potenzialità dei monitor a colori, &kdiff3; evidenzia accuratamente le differenze. Quando dovrai fare molte revisioni di codice, apprezzerai questo aiuto. + + + + + +Vedere le differenze tra spazi a colpo d'occhio +Saranno ben visibili spazi e tabulatori che risultano diversi. Quando le righe differiscono soltanto per uno spazio, lo si potrà subito vedere nella colonna di sommario sul lato sinistro (non dovrai più preoccuparti quando qualcuno cambia l'indentazione). + + + + + +Confronto tra tre file +Analizza tre file e verifica dove differiscono. Le finestre sinistra, centrale e destra si chiamano A, B e C ed hanno rispettivamente i colori blu, verde e magenta. Se per una riga due file sono uguali ed un altro è diverso, il colore indica quello diverso. Il colore rosso significa che tutti i file sono diversi. + + + + + +Comoda fusione di due o tre file in ingresso +&kdiff3; può essere usato per fondere due o tre file di ingresso e fonderli automaticamente il più possibile. Il risultato è presentato in una finestra di modifica dove la maggior parte dei conflitti possono essere risolti con un semplice clic del mouse: seleziona i relativi pulsanti ... nelle finestre di A, B e C per selezionare la sorgente da usare. È possibile anche selezionare più di una sorgente. Dato che questa finestra è un editor, qui si possono risolvere anche i conflitti che hanno bisogno di ulteriori correzioni, senza bisogno di altri strumenti. + + +Inoltre... + + Pulsanti per la navigazione veloce. + Un clic del mouse nella colonna di sommario sincronizza tutte le finestre, facendo loro mostrare la stessa posizione. + Seleziona e copia da una qualsiasi finestra ed incolla nella finestra del risultato della fusione. + Colonna riassuntiva che mostra dove sono cambiamenti e conflitti. + È possibile regolare i colori come vuoi. + Dimensione regolabile delle tabulazioni. + Opzione per inserire spazi invece che tabulatori. + Apri i file comodamente da una finestra, oppure specificandoli dalla riga di comando. + Ricerca di stringhe in tutto il testo della finestra con gli elementi di menu ModificaTrova (&Ctrl;F) e ModificaTrova successivo (F3). + Mostra il numero di ogni riga. + Incolla dagli appunti o trascina il testo in una finestra di confronto. + Trasparenza di rete tramite KIO. + Può essere usato come visore delle differenze dalla versione 3 di &kdevelop; 3. + A capo per righe lunghe. + Supporto per Unicode, UTF-8 e altre codifiche. + Supporto per le lingue scritte da destra a sinistra. + ... + + + + + +Confronto e fusione file + +Opzioni da riga di comando + +Confrontare due file: +kdiff3 file1 file2 + + + +Fondere due file: +kdiff3 file1 file2 -m + kdiff3 file1 file2 -o file_di_uscita + + + +Confrontare tre file: +kdiff3 file1 file2 file3 + + + +Fondere tre file: +kdiff3 file1 file2 file3 -m + kdiff3 file1 file2 file3 -o file_di_uscita + +Nota che file1 sarà trattato come la base di file2 e il file3. + + +Caso particolare: file con lo stesso nome +Se tutti i file hanno lo stesso nome, ma si trovano in cartelle diverse, è possibile specificare solamente il nome del primo file. Per esempio: +kdiff3 cartella1/file cartella2 cartella3 + + + +Riga di comando per avviare un confronto o una fusione tra cartelle: +È molto simile, ma ora lavoriamo sulle cartelle. +kdiff3 cartella1 cartella2 + kdiff3 cartella1 cartella2 -o cartella_destinazione + kdiff3 cartella1 cartella2 cartella3 + kdiff3 cartella1 cartella2 cartella3 -o cartella_destinazione + +Per maggiori informazioni sul confronto e fusione tra cartelle leggi qua. + + +Altre opzioni da riga di comando +Per vedere tutte le opzioni disponibili per la riga di comando scrivi: +kdiff3 --help + +Esempio di risultato: +Opzioni: + -m, --merge Fondi l'input. + -b, --base file Fissa il file di base. Per compatibilità con alcuni programmi. + -o, --output file File di uscita. Implica -m. Es.: -o nuovofile.txt + --out file File di uscita (per compatibilità con alcuni programmi). + --noauto Ignora --auto e mostra sempre l'interfaccia grafica. + --auto Senza interfaccia grafica se tutti i conflitti possono essere risolti automaticamente (richiede -o file). + --L1 alias1 Sostituzione del nome visibile per file di ingresso 1 (base). + --L2 alias2 Sostituzione del nome visibile per file di ingresso 2. + --L3 alias3 Sostituzione del nome visibile per file di ingresso 3. + -L, --fname alias Sostituzione del nome visibile alternativo. Da specificare per ogni ingresso. + --cs string Sovrascrive le impostazioni della configurazione. Usalo una volta per ogni impostazione. Per esempio: --cs "AutoAdvance=1" + --confighelp Mostra una lista di impostazioni di configurazione e i loro valori attuali. + --config file Usa un altro file di configurazione. + +L'opzione ti permette di regolare un valore di configurazione che altrimenti sarebbe modificabile solo tramite le finestre di configurazione. Stai però attento, perché quando &kdiff3; viene chiuso con il valore modificato, questa modifica verrà memorizzata con le altre impostazioni. Con puoi trovare i nomi degli elementi disponibili e i loro valori attuali. +Con puoi specificare un altro file di configurazione. Quando usi spesso &kdiff3; con configurazioni completamente diverse, questo ti permette di passare facilmente da una all'altra. + +Opzioni da riga di comando ignorabili +Molte persone vogliono usare &kdiff3; con qualche sistema di controllo di versione. Ma quando quel sistema di controllo di versione chiama &kdiff3; usando parametri della riga di comando che &kdiff3; non riconosce, allora &kdiff3; termina con un errore. L'elemento Integrazione nella finestra di dialogo delle impostazioni permette di specificare i parametri della riga di comando che dovrebbero essere ignorati da &kdiff3;. Essi appariranno nell'aiuto all'uso come in questo esempio: +--pippo Ignorato (definito dall'utente). + + + Opzioni da riga di comando da ignorare:Una lista di opzioni, separate da un punto e virgola, «;». Quando una di queste opzioni appare nella riga di comando, &kdiff3; la ignorerà e verrà eseguito senza riportare errori (le opzioni predefinite sono «u;query;html;abort»). + +Se questo non bastasse, si raccomanda di scrivere uno script per la shell per tradurre l'opzione. + + + + +Finestra di apertura dei file +Poiché devono essere selezionabili molti file, il programma ha una particolare finestra per aprirli: + + + +La finestra di apertura ti permette di scrivere il nome del file a mano, di selezionare un file con il navigatore mediante il pulsante File... o di scegliere i file più recenti da una lista a comparsa. Se riapri la finestra, i nomi attuali rimarranno lì. Il nome del terzo file di input non è necessario. Se il campo di C rimane vuoto, verrà fatta soltanto un'operazione di confronto tra due file. Puoi anche selezionare una cartella con Cartella.... Se per A è specificata una cartella sarà automaticamente attivato il confronto o la fusione di cartelle. Se A specifica un file ma B, C o l'uscita specificano una cartella, &kdiff3; usa il nome del file di A nelle cartelle specificate. Se viene selezionata la casella di controllo Fondi, allora la riga Uscita diverrà modificabile. Però non è necessario specificare subito il nome del file in uscita: lo potrai specificare in seguito, fino al momento del salvataggio. Il pulsante Configura... apre la finestra delle impostazioni per poter impostare le opzioni prima di avviare l'analisi. + + +Incolla e trascina l'ingresso +A volte vorresti confrontare parti di testo che non sono un file. &kdiff3; permette anche di incollare del testo dagli appunti nella finestra di confronto selezionata. L'analisi delle differenze apparirà immediatamente. Nella finestra di apertura dei file non dovrai specificare i file, basterà chiuderla con Annulla. È anche possibile usare il trascinamento: prendi un file dal gestore dei file o seleziona del testo da un editor, e trascinalo dentro una finestra di confronto. Qual è l'idea? A volte un file contiene due funzioni simili, ma controllare quanto lo sono effettivamente è una seccatura se si devono prima creare due file e quindi caricarli. Ora puoi semplicemente copiare, incollare e confrontare le sezioni rilevanti. Al momento non puoi trascinare niente da &kdiff3;. È supportato solo l'inserimento nella finestra di confronto delle differenze. Alcuni editor interpretano il trascinamento (drag and drop) in altri programmi come operazioni di taglia (invece che copia) e incolla. In tal caso i dati originali andrebbero quindi persi. + + +Confrontare i file e interpretare le informazioni nelle finestre di ingresso + + + +Riga informativaSopra ad ogni finestra di testo c'è una «riga informativa». Queste contengono una lettera A, B o C, il nome del file modificabile, un pulsante per la navigazione e il numero della prima riga visibile nella finestra (nota che C è opzionale). Ogni riga informativa appare con un colore diverso. Quando hai selezionato un altro file con la navigazione, o hai finito di modificare il nome di un file premendo &Enter;, il nuovo file verrà caricato e confrontato con i file già caricati. ColorazioneAlle tre finestre di ingresso sono assegnate le lettere A, B e C. A è colorata di blu, B di verde e C di magenta. Questi sono i colori predefiniti, ma puoi cambiarli nell'elemento Colore nella finestra di dialogo delle impostazioni. Quando si trova una differenza, il colore mostra quale file di ingresso differisce. Quando entrambi gli altri file di ingresso differiscono, il colore usato per evidenziare la situazione sarà il rosso (opzione Colore per i conflitti nell'elemento Colore nella finestra di dialogo delle impostazioni). Questo schema di colori è molto utile nel caso di tre file di ingresso, che discuteremo nella prossima sezione (Fusione). Colonna di riepilogoA sinistra di ogni testo è presente la colonna di «riepilogo». Se ci sono differenze su una riga, la colonna di riepilogo ne mostrerà il colore corrispondente. Nel riepilogo le differenze di soli spazi saranno evidenziate con una griglia. Per i linguaggi di programmazione in cui gli spazi non sono importanti è molto utile notare a colpo d'occhio se è stato cambiato qualcosa di importante (in C e C++ gli spazi sono importanti solamente dentro a stringhe, commenti, direttive al preprocessore e poche altre situazioni molto particolari). La linea verticale che separa la colonna di riepilogo e il testo è interrotta se il file di ingresso non presenta righe in questo punto. Quando è attivato il ritorno a capo, questa linea verticale sarà punteggiata in corrispondenza delle righe mandate a capo. Colonna riassuntivaSul lato destro, a sinistra della barra di scorrimento, si può vedere una colonna «riassuntiva». Essa mostra sinteticamente la colonna di sommario dell'ingresso A. Tutte le differenze e i conflitti sono visibili a colpo d'occhio. Quando si usano solo due finestre di ingresso, tutte le differenze appaiono in rosso, perché ogni differenza è un conflitto. Un rettangolo nero incornicia la parte visibile dell'ingresso. Per file di ingresso molto lunghi, quando il numero delle righe è maggiore dell'altezza in pixel della colonna riassuntiva, più righe di ingresso condividono una riga di riassunto. Qui un conflitto ha maggiore priorità rispetto alle semplici differenze, che hanno priorità sul caso di nessuna modifica, così che nessuna differenza o conflitto viene perso. Facendo clic su questa colonna riassuntiva ne verrà visualizzato il testo corrispondente. Allineare manualmente le righeA volte l'algoritmo affianca le linee sbagliate. Oppure vuoi confrontare un estratto di testo con del testo in una posizione completamente diversa nell'altro file. Per queste situazioni puoi ordinare manualmente a &kdiff3; di allineare certe righe. Seleziona il testo per il quale vuoi migliorare l'allineamento con il mouse, come se volessi copiare e incollare nella prima vista delle differenze, e quindi scegli l'elemento di menu Vista di confrontoAggiungi allineamento manuale delle differenze (scorciatoia da tastiera &Ctrl;Y). Apparirà una barra arancione nella colonna panoramica di fianco al testo scelto. Ripeti l'operazione per la seconda e (se disponibile) terza vista delle differenze. &kdiff3; ricalcolerà immediatamente le differenze ogni volta che lo farai, e allineerà automaticamente le righe scelte. Naturalmente qualcuna delle righe selezionate in precedenza potrebbe non corrispondere più. Attualmente la fusione non supporta l'uso dell'aiuto per le differenze manuali. Unire e dividere manualmente sezioni di differenzeIn alcuni casi &kdiff3; vedrà troppe o troppo poche sezioni di differenze per la fusione. In questo caso puoi unire o dividere le sezioni esistenti. Aggiungi le nuove sezioni selezionando per prima cosa del testo nelle righe corrispondenti in una delle finestre di ingresso (come quando si copia negli appunti). Scegli quindi l'elemento di menu FondiDividi differenze alla selezione. Le divisioni saranno aggiunte sopra la prima riga e sotto l'ultima del testo selezionato. Se vuoi aggiungere solo una sezione, seleziona il testo partendo da un'altra divisione di sezioni. Per unire le sezioni in una delle finestre di ingresso, seleziona qualcosa nelle righe che vuoi unire. Puoi anche unire diverse sezioni in un colpo solo. Seleziona quindi l'elemento di menu FondiUnisci le differenze selezionate. + + + +Operazione di fusione e la finestra di modifica del risultato + + + +Anche la finestra di modifica del risultato della fusione (sotto la finestra di ingresso) ha una riga informativa sovrastante che mostra il Risultato:, il nome del file e [Modificato] se qualcosa è stato variato. Normalmente essa contiene del testo creato dagli automatismi della fusione, ma spesso conterrà anche dei conflitti. !!! Il salvataggio è disabilitato fino a quando tutti i conflitti non sono risolti !!! (Usa il pulsante Vai al precedente/prossimo conflitto non risolto per ricercare i conflitti rimanenti). Se i file di ingresso sono solo due, ogni differenza è un conflitto che deve essere risolto manualmente. Con tre file di ingresso il primo è considerato come base, mentre il secondo e il terzo contengono le modifiche. Quando in qualche riga solo il file B o il file C presenta una differenza, ma non entrambi, allora sarà automaticamente selezionato il file modificato. Solo quando B e C hanno delle differenze sulle stesse righe il programma si accorgerà del conflitto, che dovrà essere risolto manualmente. Quando B e C coincidono, ma differiscono con A, allora sarà selezionato C. La colonna di sommarioLa finestra di modifica del risultato di fusione ha anche una colonna di sommario sulla sinistra. Essa mostra la lettera dell'input da dove la riga è stata selezionata o nulla se tutte le tre sorgenti hanno la stessa riga. Per i conflitti essa mostra un punto interrogativo "?" e la riga mostra "<Conflitto nel fondere>", tutto in rosso. Dato che risolvere conflitti riga per riga richiede molto tempo, le righe sono raggruppate per gruppi con le stesse caratteristiche di differenza e conflitto. Saranno separati solo i conflitti di spazi bianchi dai conflitti di spazi non bianchi in modo da facilitare la fusione dei file in cui l'indentazione, su molte righe, cambia. Impostare il gruppo attuale e sincronizzare la posizione delle viste di fusione e differenzeQuando si fa clic sulla colonna di sommario col &LMB; in una finestra, l'inizio del gruppo appartenente a quella riga sarà selezionato in tutte le finestre. Questo gruppo diverrà il «gruppo attuale». Esso è evidenziato con l'opzione Colore di fondo per questo intervallo attuale dell'elemento Integrazione nella finestra di dialogo delle impostazioni e una barra nera apparirà sul lato sinistro del testo. Scegliere gli input A, B o C per il conflitto attuale e per modificarloLa barra dei pulsanti sotto la barra dei menu contiene tre pulsanti di selezione degli input contenenti le lettere A, B e C. Fai clic nel pulsante di selezione input per inserire (o rimuovere se già inserite) le righe dalle rispettive sorgenti. Per scegliere le righe da più input fai clic nei rispettivi pulsanti nell'ordine necessario. Per esempio se vuoi che nell'output le righe della B appaiano prima delle righe della A, fai prima clic su B quindi su A. Se usi il pulsante Vai automaticamente al prossimo conflitto non risolto dopo la selezione del sorgente (vedi la sezione Avanzamento automatico), dovresti disabilitarla prima di scegliere le righe da diversi input o se vuoi modificare le righe dopo aver scelto. Altrimenti &kdiff3; salterà al prossimo conflitto dopo aver scelto il primo input. È spesso molto utile modificare direttamente l'output della fusione. La colonna di sommario mostrerà "m" per ogni riga che viene modificata manualmente. Quando per esempio le differenze sono allineate in modo che scegliere semplicemente gli input non sia soddisfacente, allora puoi marcare il testo necessario e usare il normale copia e incolla per inserirlo nell'output di fusione. Alcune volte, quando una riga viene rimossa dalla fusione automatica o da una modifica manuale e non rimangono altre righe nel gruppo, allora apparirà in questa riga il messaggio <Riga sorgente mancante>. Questa posizione verrà mantenuta dal gruppo nel caso tu cambiassi idea e volessi sezionare qualche altro sorgente. Questo testo non verrà reimmesso nel file salvato o in altre selezioni che desideri copiare ed incollare. Il testo "<Fondi conflitti>" apparirà negli appunti se copi ed incolli del testo contenente questa riga. Fai comunque attenzione nell'eseguire tale operazione. Scegliere l'input A, B o C per tutti i conflittiLa normale fusione inizierà risolvendo semplici conflitti automaticamente. Ma il menu Fondi permette altre azioni per altre necessità comuni. Se devi selezionare lo stesso sorgente per molti conflitti, potrai selezionare sempre A, B o C, o solamente per i conflitti non risolti restanti, o per i conflitti di spazi bianchi non risolti. Se vuoi decidere tu stesso ogni singola differenza, puoi Impostare le differenze come conflitti, o se vuoi ritornare all'opzione automatica di &kdiff3; seleziona Risolvi automaticamente i conflitti semplici. &kdiff3; riavvierà quindi la fusione. Per azioni che cambiano le tue precedenti modifiche &kdiff3; ti chiederà conferma prima di procedere. Quando si sceglie un sorgente per conflitti non risolti di spazi bianchi e quando vengono utilizzate le opzioni Ignora numeri (tratta come spazio) o Ignora commenti C/C++ (tratta come spazio) dell'elemento Differenze nella finestra di dialogo delle impostazioni, le variazioni nei numeri o nei commenti saranno trattati anch'essi come spazi. Fusione automatica della cronologia (log) e delle parole chiave del controllo di versioneMolti sistemi di controllo di versione supportano parole chiave speciali nel file. (es. "$Date$", "$Header$", "$Author$", "$Log$", ecc.) Durante il controllo il sistema di controllo di versione (VCS) cambia queste righe. Per esempio "$Date$" cambierà in "$Date: 2005/03/22 18:45:01 $". Dato che questa riga sarà diversa in ogni versione del file, richiederà l'interazione manuale durante la fusione. &kdiff3; offre la fusione automatica per questi elementi nell'elemento Fondi nella finestra di dialogo delle impostazioni. Per righe semplici che corrispondono all'opzione Fondi automaticamente le espressioni regolari in tutti i file di input &kdiff3; sceglierà la riga da B o - se disponibile - da C (è inoltre necessario che le righe in questione corrispondano nel confronto e la riga precedente non contenga alcun conflitto). Questa fusione automatica può essere avviata sia immediatamente dopo l'avvio della fusione (attiva l'opzione Avvia la fusione automatica delle espressioni regolari all'avvio di fusione) o in un secondo momento attraverso l'elemento di menu FondiAvvia la fusione automatica delle espressioni regolari. È supportata anche la fusione automatica per la cronologia del controllo di versione (nota anche come «registro»). La fusione automatica della cronologia può essere eseguita immediatamente all'avvio della fusione attivando l'opzione Fondi la cronologia del controllo di versione all'inizio della fusione dell'elemento Fondi nella finestra di dialogo delle impostazioni, o successivamente tramite l'elemento di menu FondiRisolvi automaticamente i conflitti di cronologia. Normalmente la cronologia del controllo di versione comincia con una riga contenente la parola chiave "$Log$". Questa deve essere corrisposta dall'opzione Espressione regolare dell'inizio di cronologia. &kdiff3; rileva quali righe successiva sono nella cronologia analizzando i caratteri iniziali che precedono la parola chiave "$Log$". Se gli stessi caratteri di «commento iniziale» appaiono anche nelle righe seguenti, anche queste verranno incluse nella cronologia. Durante il deposito, il VCS scrive una riga univoca che specifica informazioni di versione, data e ora, seguite da righe con commenti dell'utente. Queste righe costituiscono un elemento della cronologia. Questa sezione di cronologia cresce a ogni deposito, e le voci più recenti sono in cima (dopo la riga di inizio della cronologia). Quando, in sviluppo parallelo, due o più sviluppatori depositano un ramo del file, la cronologia di fusione conterrà diversi elementi che risultano come conflitti durante la fusione dei rami. Siccome fonderli può essere molto noioso, &kdiff3; offre aiuto con due possibili strategie: basta che inserisci le informazioni sulla cronologia da entrambi gli sviluppatori in cima o ordini le informazioni della cronologia secondo una chiave definita dall'utente. Il metodo inserisci tutti gli elementi e basta è più facile da configurare. &kdiff3; ha bisogno solo di un metodo per rilevare quali righe appartengano a un elemento di cronologia. La maggior parte dei VCS inserisce una riga vuota dopo ogni elemento di cronologia. Se non ci sono altre righe vuote, questo è un criterio sufficiente per &kdiff3;. Basta che imposti una Espressione regolare di inizio dell'elemento di cronologia vuota nell'elemento Fondi nella finestra di dialogo delle impostazioni. Se il criterio della riga vuota non è sufficiente, puoi specificare un'espressione regolare per rilevare l'inizio degli elementi di cronologia. Nota che &kdiff3; rimuoverà gli elementi di cronologia duplicati. Se un elemento di cronologia compare diverse volte nella cronologia di un file di ingresso, ne rimarrà solo uno nell'uscita. Se vuoi ordinare la cronologia, devi specificare come costruire la chiave di ordinamento. Usa le parentesi nella Espressione regolare di inizio dell'elemento di cronologia nell'elemento Fondi nella finestra di dialogo delle impostazioni per raggruppare parti dell'espressione regolare che dovrebbero essere usate in seguito per la chiave di ordinamento. Specifica quindi l'opzione Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia, specificando un elenco, separato da «virgole», di numeri che si riferiscono alla posizione del gruppo nell'espressione regolare. Siccome questo non è così facile da azzeccare al primo colpo, devi poter provare e migliorare le espressioni regolari e la generazione delle chiavi in una finestra apposita premendo il pulsante Prova le espressioni regolari. Esempio. Prendi in considerazione una cronologia che assomiglia a questa: +/************************************************************************** +** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ +** +** \main\integration_branch_12 2 Apr 2001 10:45:41 tom +** Fuso il ramo simon_branch_15. +** +** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry +** Migliorata la velocità della funzione convertToMesh(). +** Crash corretto. +**************************************************************************/ + +La riga di inizio della cronologia corrisponde all'espressione regolare ".*\$Log.*\$.*". Seguono quindi le voci della cronologia. La riga con la parola chiave "$Log$" comincia con due * dopo i quali segue uno spazio. &kdiff3; usa la prima stringa non di spazi come commento iniziale e assume che la cronologia si concluda nella prima riga senza questo commento iniziale. In questo esempio l'ultima riga finisce con una stringa che comincia anch'essa con due *, ma invece di un carattere di spaziatura seguono degli altri *. Perciò questa riga conclude la cronologia. Se l'ordinamento della cronologia non è necessario, l'espressione regolare dell'inizio degli elementi di cronologia potrebbe avere questo aspetto (questa riga è divisa in due parti per ragioni di spazio): +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + +Per dettagli sulle espressioni regolari, vedi la documentazione sulle espressioni regolari. Nota che "\s" (con la minuscola) corrisponde ai caratteri di spaziatura e "\S" (con la maiuscola) corrisponde a qualsiasi carattere non di spaziatura. Nell'esempio l'inizio degli elementi di cronologia contiene prima le informazioni di versione, con espressione regolare "\\main\\\S+", la data in forma di giorno "[0-9]+", mese "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" e anno "[0-9][0-9][0-9][0-9]", l'ora "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" e infine il nome dello sviluppatore ".*". Nota che i caratteri di «commento iniziale» (nell'esempio "**") saranno già rimossi da &kdiff3; prima del confronto, quindi l'espressione regolare comincia con una corrispondenza per zero o più caratteri di spaziatura, "\s*". Siccome i caratteri dei commenti possono essere diversi in ogni file (per esempio, C e C++ usano dei caratteri diversi rispetto a Perl), &kdiff3; si prende cura dei caratteri iniziali dei commenti, e tu non devi specificarli nell'espressione regolare. Se hai bisogno di una cronologia ordinata, deve essere calcolata la chiave di ordinamento. Per farlo, le parti rilevanti dell'espressione regolare devono essere raggruppate in parentesi (le parentesi aggiuntive possono essere lasciate se l'ordinamento della cronologia viene disabilitato). +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + +Le parentesi contengono ora: 1. informazioni di versione, 2. giorno, 3. mese, 4. anno, 5. ora, 6. nome. Se vogliamo ordinare per data e ora, dobbiamo costruire una chiave con gli elementi in un altro ordine di apparizione: prima l'anno, poi il mese, il giorno, l'ora, le informazioni di versione e il nome. Quindi, la chiave di ordinamento da specificare è "4,3,2,5,1,6". Siccome i nomi dei mesi non sono facili da ordinare ("Apr" sarebbe il primo), &kdiff3; rileva l'ordine in cui i nomi dei mesi sono stati dati e usa quell'ordine ("Apr" -> "04"). Se viene trovato un numero, verrà trasformato in un valore a quattro cifre con zeri iniziali per l'ordinamento. Infine, la chiave di ordinamento risultante per la prima riga di inizio degli elementi di cronologia sarà: +2001 04 0002 10:45:41 integration_branch_12 tom + +Per ulteriori informazioni vedi anche la sezione Impostazioni di fusione. + + + +Navigazione e modifica +È possibile navigare con le barre di scorrimento e con il mouse, ma puoi anche usare i tasti. Se fai clic dentro una delle finestre, potrai usare le scorciatoie &Left;, &Right;, &Up;, &Down;, &PgUp;, &PgDn;, &Home;, &End;, &Ctrl;&Home; e &Ctrl;&End; come faresti in altri programmi. La colonna riassuntiva di fianco alla barra di scorrimento verticale dei file di ingresso può anche essere usata per la navigazione facendoci clic. È anche possibile usare la rotellina del mouse per scorrere in alto e in basso. Nella finestra di modifica del risultato puoi anche usare gli altri tasti. Puoi passare tra le modalità di inserimento e di sovrascrittura con il tasto &Ins; (la predefinita è quella di inserimento). Fare clic col &LMB; in una qualsiasi colonna di sommario sincronizzerà tutte le finestre in modo da mostrare l'inizio dello stesso gruppo di righe (come spiegato nella sezione Impostare il gruppo attuale e sincronizzare la posizione delle viste di fusione e differenze. La barra dei pulsanti contiene inoltre nove pulsanti di navigazione con cui puoi passare alla differenza attuale, alla prima o all'ultima, a quella precedente o successiva (&Ctrl;&Down;/&Ctrl;&Up;), al conflitto precedente o successivo (&Ctrl;&PgDn;/&Ctrl;&PgUp;), o al conflitto non risolto precedente o successivo. Nota che per &kdiff3; un «conflitto» che non è stato risolto automaticamente all'inizio della fusione rimane un «conflitto» anche se è stato risolto; da qui la necessità di distinguere i «conflitti non risolti». +Avanzamento automatico +C'è anche un pulsante Vai automaticamente al prossimo conflitto non risolto dopo aver selezionato la fonte (avanzamento automatico). Se lo usi, quando una fonte è selezionata, &kdiff3; passerà e selezionerà il prossimo conflitto non risolto automaticamente. Ciò è d'aiuto quando vuoi sempre scegliere un solo file di ingresso. Quando hai bisogno di entrambe le fonti, o vuoi cambiare qualcosa dopo aver selezionato, probabilmente lo vorrai disattivare. Prima di procedere al prossimo conflitto non risolto, &kdiff3; mostrerà l'effetto della tua scelta per un breve periodo. Questo tempo è regolabile nell'elemento Fondi nella finestra di dialogo delle impostazioni. Puoi specificare il Ritardo nell'avanzamento automatico (ms) in millisecondi tra i valori 0 e 2000. Se vuoi ridurre il numero di volte che fai clic, usa un ritardo di avanzamento breve e le scorciatoie &Ctrl;1, &Ctrl;2 e &Ctrl;3 per selezionare A, B e C nel caso di molti conflitti. + + + +Selezione, Copia e Incolla +La finestre dell'ingresso non hanno un cursore, quindi le selezioni vanno fatte col &RMB; partendo dall'inizio, tenendolo premuto e spostandolo fino alla fine della selezione, dove lo rilasci. È possibile selezionare una singola parola facendo doppio clic. Nella finestra del risultato di fusione puoi anche selezionare con la tastiera, tenendo premuto il tasto &Shift; e navigando con i tasti freccia. Se la selezione deve andare oltre la parte visibile sullo schermo, puoi spostare il mouse ai bordi della finestra, il che fa scorrere &kdiff3; in quella direzione. Per selezioni molto grandi, puoi anche usare i tasti di navigazione tenendo premuto il &LMB;. Per esempio, usa &PgUp; e &PgDn; per andare velocemente a un certo punto; a quel punto rilascia il mouse. Per selezionare tutto nella finestra attiva, usa l'elemento di menu Modifica Seleziona tutto (&Ctrl;A). Per copiare negli appunti devi premere il pulsante Copia (&Ctrl;C o &Ctrl;&Ins;). Esiste anche l'opzione Copia automatica nell'elemento Editor nella finestra di dialogo delle impostazioni: se è attiva, tutto quello che selezioni verrà copiato immediatamente, senza farlo esplicitamente. Fai però attenzione, perché i contenuti degli appunti potrebbero andare accidentalmente persi. Taglia (&Ctrl;X o &Shift;∇) copia negli appunti ed elimina il testo selezionato. Incolla (&Ctrl;V o &Shift;&Ins;) inserisce il testo dagli appunti alla posizione del cursore o al posto della selezione attuale. Se incolli in una delle finestre di ingresso delle differenze, i contenuti degli appunti saranno mostrati in quella finestra, e il confronto verrà immediatamente riavviato. Ciò è utile se vuoi prendere del testo da qualche parte e confrontarlo con qualcos'altro senza prima dover creare dei file. + + +Salvataggio +Il salvataggio sarà permesso solo quando tutti i conflitti saranno stati risolti. Se il file esiste già, e l'opzione Copie di sicurezza è abilitata nell'elemento Cartella nella finestra di dialogo delle impostazioni, il file esistente sarà rinominato con l'estensione .orig, ma se quest'ultimo file esiste sarà rimosso. Se concludi o avvii una nuova analisi delle differenze, e i dati non sono stati ancora salvati, &kdiff3; ti chiederà se vuoi salvare, annullare o procedere senza salvare. &kdiff3; non intercetta nessun segnale, quindi se si «uccide» il processo di &kdiff3; tutti i dati andranno persi. I caratteri di fine riga sono salvati secondo il metodo appropriato per il sistema operativo in uso. Sui sistemi Unix ogni riga termina con il carattere "\n", mentre sui sistemi Windows ogni riga termina con i caratteri di ritorno a capo e di nuova riga, "\r\n". &kdiff3; non mantiene i caratteri di fine riga originali del file, il che vuol dire che non dovresti usare &kdiff3; con i file binari. + + +Ricerca delle stringhe +Puoi cercare una stringa in ogni finestra di testo di &kdiff3;. L'elemento di menu ModificaTrova... (&Ctrl;F) apre una finestra che ti permette di specificare la stringa da cercare. Puoi anche selezionare le finestre nella quali cercare. La ricerca partirà sempre dall'inizio. Usa l'elemento di menu ModificaTrova successivo... (F3) per passare alla prossima occorrenza. Se decidi di cercare su più finestre, la ricerca comincerà dalla prima finestra, poi passerà alla seconda, e via discorrendo. + + +Stampa +&kdiff3; supporta la stampa delle differenze dei file di testo. L'elemento di menu FileStampa... (&Ctrl;P) apre una finestra di dialogo che ti permette di selezionare la stampante e regolare altre opzioni. Ci sono diverse possibilità per regolare l'intervallo di stampa. Siccome le finestre di stampa sono diverse a seconda del sistema operativo, il modo esatto in cui regolarlo varia. + + Tutto:Stampa tutto. + Attuale:Stampa una pagina partendo dalla prima riga visibile nella finestra. Sui sistemi senza questa opzione, essa è ottenibile chiedendo di stampare il numero di pagina 10000. + Selezione:Prima di stampare, seleziona il testo con il mouse (come quando fai copia e incolla) in una delle finestre d'ingresso delle differenze per definire le righe di inizio e fine. Se non è stato selezionato del testo nelle finestre di ingresso delle differenze, questa scelta non sarà disponibile. Sui sistemi senza questa opzione, essa è ottenibile chiedendo di stampare il numero di pagina 9999. + Intervallo:Specifica la prima e l'ultima pagina. + +Altre opzioni di stampa importanti saranno dedotte dalle opzioni normali: + Carattere e sue dimensioni + Mostra i numeri di riga + A capo automatico + Colori + ecc. + +Si raccomanda inoltre di usare il formato orizzontale quando si stampa. + + +Opzioni +Le opzioni e l'elenco dei file recenti saranno salvate all'uscita del programma e ricaricate quando verrà riavviato (elemento di menu ImpostazioniConfigura &kdiff3;...). +Carattere +Seleziona un carattere a larghezza fissa. Su alcuni sistemi questa finestra potrebbe presentare anche caratteri a larghezza variabile, ma non dovresti usarli. + + +Colori + + Editor e visore delle differenze: + + Colore di primo piano:Normalmente nero. + Colore di sfondo:Normalmente bianco. + Colore di sfondo per le differenze:Normalmente grigio chiaro. + Colore per A:Normalmente blu scuro. + Colore per B:Normalmente verde scuro. + Colore per C:Normalmente magenta scuro. + Colore per i conflitti:Normalmente rosso. + Colore di sfondo per l'intervallo attuale:Normalmente giallo chiaro. + Colore di sfondo per le differenze dell'intervallo attuale:Normalmente giallo scuro. + Colore per intervalli di differenze allineati manualmente:Normalmente arancione. + + Vista di confronto delle cartelle: + + Colore del file più recente:Normalmente verde. + Colore del file più vecchio:Normalmente rosso. + Colore del file di età media:Normalmente giallo acceso. + Colore per file mancanti:Normalmente nero. + + +Il cambio dei colori per il confronto tra cartelle avrà effetto solo all'avvio del prossimo confronto tra cartelle. +Su sistemi con soli 16 o 256 colori, alcuni colori non sono disponibili nella forma esatta. In questi sistemi il pulsante Valori predefiniti selezionerà un colore puro. + + +Impostazioni dell'editor + + Il tabulatore inserisce spaziSe questo è disabilitato e premi il tasto verrà inserito un carattere di tabulazione, altrimenti verranno inseriti il numero appropriato di spazi. + Dimensione della tabulazione:Può essere regolata a seconda delle necessità. Il valore predefinito è 8. + Rientro automaticoQuando premi &Enter; o Return, il rientro della riga precedente sarà usato per quella nuova. + Copia automaticamente la selezioneOgni selezione è immediatamente copiata negli appunti quando attiva, e non sarà necessario copiarla esplicitamente. + Tipo di fine riga:Quando salvi un file puoi decidere quali caratteri di fine riga usare.L'impostazione predefinita è quella abituale del sistema operativo in uso. + + + +Impostazioni delle differenze +Nel confronto dei file, &kdiff3; prova prima a confrontare le righe uguali in tutti i file di ingresso. Solo durante questa fase potrebbe ignorare gli spazi. La seconda fase confronta ogni riga. In questa fase gli spazi non saranno ignorati. Anche durante la fusione gli spazi non saranno ignorati. + + + Ignora i numeri (tratta come spazio)Come impostazione predefinita questa opzione è disattivata. I caratteri numerici (da 0 a 9, ., -) saranno ignorati nella prima parte dell'analisi nella quale si fanno corrispondere le righe. Nel risultato le differenze saranno comunque mostrate, ma i caratteri numerici saranno trattati come spazi. + Ignora i commenti C e C++ (tratta come spazio)Come impostazione predefinita questa opzione è disattivata. Le variazioni dei commenti saranno trattate come variazioni di spazi. + Ignora maiuscole/minuscole (tratta come spazio)Come impostazione predefinita questa opzione è disattivata. Le differenze tra maiuscole e minuscole (come tra A e a) saranno trattate come differenze tra spazi. + Comando per il preprocessore:Vedi la prossima sezione. + Comando del preprocessore per confrontare righe:Vedi la prossima sezione. + Ricerca approfondita (lenta)Ricerca approfondita per ricercare la più piccola differenza (Normalmente attiva). Questo sarà probabilmente utile per file complicati e lunghi. E lento per file molto lunghi. + Allinea B e C per tre file di ingressoCerca di allineare B e C quando si confrontano o fondono tre file di ingresso. Non è raccomandato per la fusione perché questa potrebbe divenire più complicata. Come impostazione predefinita è disattivata. + + + +Impostazioni di fusione + + Ritardo nell'avanzamento automatico (ms):Quando l'opzione di auto avanzamento automatico è attiva si specifica quando lungo mostrare il risultato delle selezione prima di saltare al prossimo conflitto non risolto. + Mostra finestre informativeMostra una finestra con informazioni sul numero di conflitti. + Trattamento predefinito degli spazi bianchi nel fondere 2 file:Risolvi automaticamente tutti i conflitti di spazi scegliendo il file specifico (l'impostazione predefinita è la scelta manuale). Utile se gli spazi non sono importanti in molti file. Se ti serve solo di rado, è meglio usare Scegli A/B/C per tutti i conflitti di spazi non risolti nel menu Fondi. Nota che, se abiliti Ignora i numeri (tratta come spazio) o Ignora i commenti C e C++ (tratta come spazio), questa scelta automatica verrà applicata anche per i conflitti tra numeri o commenti. + Espressione regolare di fusione automatica:Espressione regolare per le righe dove &kdiff3; dovrebbe scegliere automaticamente una sorgente. Vedi anche Fusione automatica.... + Esegui la fusione automatica con espressioni regolari all'avvio della fusioneSe attivo, &kdiff3; esegue la fusione automatica usando l'opzione Espressione regolare di fusione automatica: all'avvio di una fusione. + Espressione regolare di inizio dell'elemento di cronologia:Espressione regolare per l'inizio di un elemento di cronologia di fusione. Normalmente questa riga contiene la parola chiave "$Log$". Il valore predefinito è ".*\$Log.*\$.*". + Espressione regolare di inizio dell'elemento di cronologia:Un elemento di cronologia di fusione consiste di diverse righe. Specifica l'espressione regolare per rilevarne la prima (senza il commento iniziale). Usa le parentesi per raggruppare le chiavi che vuoi usare per l'ordinamento. Se lasciato vuoto, &kdiff3; suppone che le righe vuote separino gli elementi di cronologia. Vedi anche Fusione automatica.... + Ordinamento della fusione della cronologiaAbilita l'ordinamento della cronologia del controllo di versione. + Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia:Ciascun paio di parentesi usato nell'espressione regolare per l'elemento iniziale della cronologia raccoglie una chiave disponibile per l'ordinamento. Specifica l'elenco di chiavi (numerate in ordine di apparizione partendo da 1) usando una virgola ',' come separatore, per esempio 4,5,6,1,2,3,7. Se lasciato vuoto, non verrà eseguito alcun riordinamento. Vedi anche Fusione automatica.... + Fondi la cronologia del controllo di versione all'inizio della fusioneSe attivato, &kdiff3; esegue la fusione automatica della cronologia usando le opzioni sunnominate all'avvio di una fusione. + Numero massimo di elementi nella cronologia:&kdiff3; tronca l'elenco della cronologia dopo il numero di elementi specificato. Usa -1, che è anche il valore predefinito, per evitare il troncamento. + Prova le espressioni regolariQuesto pulsante mostra una finestra che permette di migliorare e provare le espressioni regolari indicate sopra. Basta copiare i dati dai file nelle righe d'esempio, e l'opzione Risultato di corrispondenza: mostrerà subito se la corrispondenza avviene o no. Il Risultato della chiave di ordinamento: mostrerà la chiave usata per il riordinamento della fusione della cronologia. + Comando di fusione irrilevante:Specifica un comando da chiamare quando &kdiff3; rileva che, per una fusione a tre file, il file B non contribuisce alcun dato di rilievo che non sia già contenuto nel file C. Il comando viene chiamato con tre nomi di file come parametri. I dati corrispondenti alla Espressione regolare di fusione automatica o nella cronologia non sono considerati di rilievo. + Salvataggio automatico e uscita in caso di fusione senza conflittiQuando &kdiff3; viene avviato per una fusione di file dalla riga di comando e tutti i conflitti sono risolvibili senza azione da parte dell'utente, salva automaticamente ed esce (è simile all'opzione da riga di comando ). + + + + +Fusione tra cartelle +Queste opzioni riguardano la scansione delle cartelle e la gestione della fusione: vedi la documentazione sul confronto e la fusione tra cartelle per maggiori dettagli. Tuttavia, qui c'è un'opzione di rilievo anche per il salvataggio di file singoli: + + Copie di sicurezza (.orig)Quando viene salvato un file e ne esiste una versione precedente, la versione originale sarà rinominata con un'estensione .orig. Se esiste già una vecchia copia di sicurezza con estensione .orig, questa verrà eliminata senza farne un'altra copia. + + + +Lingua e paese + + Usa la stessa codifica per tuttoLe opzioni di codifica che seguono possono essere fissate separatamente per ogni voce o, se questa opzione è attivata, il primo valore vale per tutti. + Nota: la codifica locale è «%1»Davanti ai selettori di codifica appare questa nota che ti dice qual è la codifica locale. Non è modificabile, serve solo a ricordarti la codifica locale nel caso che tu non lo sapessi già, ma avessi bisogno di selezionarla. + Codifica per i file A/B/C:Cambia la codifica dei file in ingresso. Ha effetto sulla visualizzazione dei caratteri speciali. Poiché puoi aggiustare separatamente le codifiche, potrai confrontare e fondere file prodotti con codifiche diverse. + Codifica per i file fusione e salvataggio:Quando avrai modificato un file, potrai scegliere con quale codifica salvarlo sul disco fisso. + Codifica per i file sottoposti al preprocessore:Quando definisci un preprocessore questo deve essere in grado di operare sulla codifica in uso (ad esempio, i tuoi file sono Unicode a 16 bit e il tuo preprocessore può operare solo su file &ASCII; a 8 bit). Con questa opzione puoi definire la codifica del risultato del preprocessore. + Lingue scritte da destra a sinistra:Alcune lingue sono scritte da destra a sinistra. Quando questa opzione è attivata, &kdiff3; scrive il testo da destra a sinistra nelle finestre di ingresso delle differenze e nella finestra di uscita della fusione. Nota che se avvii &kdiff3; dalla riga di comando con l'opzione , anche tutta l'interfaccia grafica sarà impostata da destra a sinistra (è una funzionalità fornita da &Qt;). Questa documentazione è stata scritta presumendo che questa opzione o la disposizione inversa dell'interfaccia non siano state attivate. Nel caso in cui utilizzassi queste opzioni dovrai quindi sostituire alcune occorrenze di «sinistra» o «destra» con la loro rispettiva controparte. + + + + +Varie +Queste opzioni e azioni sono disponibili nei menu o nelle barre dei pulsanti. + + Opzioni delle colonne riassuntive:Queste opzioni sono disponibili solo quando si confrontano tre file. Nella modalità normale tutte le differenze vengono mostrate in una sola colonna riassuntiva codificata con dei colori. Però, a volte, potrebbe interessarti evidenziare solo le differenze tra due dei tre file. Selezionare Riassunto tra A e B, Riassunto tra A e C, o Riassunto tra B e C aprirà una seconda colonna riassuntiva di fianco a quella normale con le informazioni richieste. + A capo automatico nelle finestre delle differenzeLe righe più lunghe della larghezza della finestra vengono mostrate su più righe. + Mostra finestra A, B o C:Alle volte vuoi usare meglio lo spazio sullo schermo per le righe lunghe. Nascondi le finestre non importanti (nel menu Finestra). + Inverti l'orientamento di divisionePassa tra mostrare le finestre delle differenze una di fianco all'altra (A a sinistra di B, che a sua volta è a sinistra di C) o una sopra l'altra (A sopra B, a sua volta sopra C). Questo potrebbe essere utile nel caso di righe lunghe (nel menu Finestra). + Fondi il file attualeFunziona se confronti solo due file. Basta un clic per avviare la fusione, che usa il nome dell'ultimo file di ingresso come predefinito. Quando lo usi per riavviare una fusione, sarà conversato il nome del file di uscita. + Mostra spaziDisabilitalo per sopprimere l'evidenziazione delle modifiche di soli spazi nel testo o nelle colonne riassuntive. Nota che vale anche per le modifiche dei numeri o dei commenti se sono attive le opzioni Ignora i numeri (tratta come spazio) o Ignora i commenti C e C++ (tratta come spazio). + Mostra spazi e tabulazioniAlcune volte la visualizzazione degli spazi e dei tabulatori disturba. È possibile eliminarla. + Mostra numeri di rigaPuoi selezionare se, per il file di ingresso, il numero di riga deve essere visualizzato. + + + +Configurazione delle scorciatoie da tastiera +Attualmente solo la versione &frameworks; supporta la configurazione personalizzata delle scorciatoie da tastiera (menu ImpostazioniConfigura le scorciatoie). + + + +Comandi per il preprocessore +&kdiff3; supporta due opzioni del preprocessore. + + Comando per il preprocessore:Quando un file viene letto viene incanalato come ingresso a questo comando esterno. Verrà visualizzato il risultato del comando invece del file iniziale. Puoi scrivere il tuo preprocessore secondo le tue esigenze specifiche. Usalo per esempio per tagliare parti di file che danno fastidio, per correggere automaticamente il rientro, eccetera. + Comando del preprocessore per confrontare righe:Quando un file viene letto, esso viene trattato da questo comando esterno. Se viene specificato un comando come preprocessore (vedi sopra), allora l'uscita dal preprocessore è anche l'ingresso del preprocessore che confronta le righe. Il risultato sarà usato durante la fase di analisi delle righe coincidenti. Puoi scrivere un tuo preprocessore personalizzato che risolva le tue esigenze. Ogni riga in ingresso deve avere una riga corrispondente in uscita. + + +L'idea è quella di permettere la maggior flessibilità possibile nell'impostare il risultato del confronto. Purtroppo ciò richiede l'uso di un programma esterno, e molti utenti non hanno voglia di scriversene uno. La buona notizia è che molto spesso sed o perl sono perfettamente in grado di svolgere il lavoro richiesto. +Esempio. Caso semplice: considera il file a.txt (6 righe): +aa + ba + ca + da + ea + fa + +e il file b.txt (3 righe): +cg + dg + eg + +Senza un preprocessore le righe che seguono dovrebbero essere posizionate accanto ad ogni altra: +aa - cg + ba - dg + ca - eg + da + ea + fa + +Questo probabilmente non è il risultato voluto, dato che è la prima lettera quella che contiene l'informazione realmente interessante. Per aiutare l'algoritmo di corrispondenza a ignorare la seconda lettera, possiamo utilizzare un comando di preprocessore per la concordanza della riga, che sostituisca «g» con «a»: +sed 's/g/a/' + +Con questo comando il risultato del confronto sarebbe: +aa + ba + ca - cg + da - dg + ea - eg + fa + +Internamente l'algoritmo di concordanza vede i file dopo l'esecuzione del preprocessore di concordanza della riga, ma sullo schermo il file non viene cambiato (normalmente l'esecuzione del preprocessore cambierebbe i dati anche sullo schermo). + +Concetti di base del <command +>sed</command +> +Questa sezione spiega sommariamente alcune funzionalità elementari di sed. Per maggiori informazioni vedi info:/sed o https://www.gnu.org/software/sed/manual/html_mono/sed.html. Puoi trovare una versione di sed precompilata per &Windows; a http://unxutils.sourceforge.net. Nota che gli esempi seguenti danno per scontato che sed sia in una cartella compresa nella variabile d'ambiente PATH. Se ciò non fosse, dovrai specificare il percorso completo del comando. +In questo contesto viene utilizzato solo il comando sostitutivo sed: +sed 's/ESPR.REG./SOSTITUZIONE/FLAG' + +Prima di usare un nuovo comando all'interno di &kdiff3;, dovresti prima testarlo in una console. Qui torna utile il comando echo. Esempio: +echo abrakadabra | sed 's/a/o/' + -> obrakadabra + +Questo esempio mostra un comando sed molto semplice che sostituisce la prima occorrenza di «a» con «o». Se volessi sostituire tutte le occorrenze, dovresti invece utilizzare il flag «g»: +echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + +Il simbolo «|» è il comando di incanalamento che trasferisce il risultato del comando precedente all'ingresso del comando successivo. Se vuoi eseguire una prova con un file più lungo, puoi utilizzare cat nei sistemi tipo &UNIX; o type in quelli &Windows;. sed eseguirà la sostituzione per ciascuna riga. cat nome_file | sed opzioni + + + +Esempi per l'uso di <command +>sed</command +> in &kdiff3; +Ignorare altri tipi commenti +Attualmente &kdiff3; riconosce solo commenti C e C++. Se utilizzi l'opzione Preprocessore per il confronto di righe: puoi anche ignorare altri tipi di commenti, convertendoli in commenti C e C++. +Per esempio, per ignorare i commenti che iniziano per «#», potresti convertirli in «//». Tieni presente che devi anche attivare l'opzione Ignora i commenti C e C++ (tratta come spazio) per far funzionare il trucco. Un Preprocessore per il confronto di righe: appropriato potrebbe essere: +sed 's/#/\/\//' + +Poiché per sed il carattere «/» ha un significato speciale, è necessario porre un carattere «\» prima di ogni «/» nella stringa del nuovo testo. Spesso il carattere «\» è richiesto per aggiungere o togliere un significato speciale a certi caratteri. Le virgolette semplici (') sono importanti solo quando si eseguono test nella shell dei comandi, dato che in caso contrario tenterà di elaborare alcuni caratteri. &kdiff3; non fa questo, eccetto che per le sequenze di escape «\"» e «\\». + +Differenze senza distinzione delle maiuscole +Usa questo comando di Preprocessore per il confronto di righe: per convertire tutto in maiuscolo: +sed 's/\(.*\)/\U\1/' + +«.*» è un'espressione regolare corrispondente a qualsiasi stringa, e, in questo caso, a tutti i caratteri della riga. Il «\1» nella stringa di sostituzione rappresenta il testo trovato nel contenuto della prima coppia di parentesi tonde «\(» e «\)». La «\U» converte in maiuscolo il testo inserito. + + +Ignorare le parole chiave del controllo di versione +CVS e altri sistemi per il controllo di versione usano molte parole chiave per inserire stringhe generate automaticamente (vedi la pagina Info di CVS). Tutte queste seguono lo schema $KEYWORD testo generato$. A questo punto serve un comando di preprocessore che rimuova solo il testo generato: +sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + +I «\|» separano le possibili parole chiave. Puoi modificare questa lista secondo le tue esigenze. Il «\» prima di «$» è necessario, altrimenti «$» corrisponderebbe alla fine della riga. +Nel provare sed potrai incominciare a capire ed apprezzare queste strane espressioni regolari. Sono molto utili perché ci sono molti altri programmi che supportano cose molto simili. + + +Ignorare i numeri +Per ignorare i numeri, in realtà, c'è un'opzione interna. Però, come ulteriore esempio, ecco come apparirebbe come comando di preprocessore per trovare una riga corrispondente. +sed 's/[0123456789.-]//g' + +Ogni carattere compreso tra le parentesi quadre «[» e «]» verrà riconosciuto e rimosso (sostituito con nulla). + + +Ignorare alcune colonne +A volte un testo è formattato molto rigorosamente, e contiene delle colonne da ignorare sempre, mentre ci sono altre colonne da tenere e analizzare. Nell'esempio seguente, le prime cinque colonne (cioè caratteri) saranno ignorate, le dieci successive sono salvate, ne vengono ignorate altre cinque, il resto della riga viene tenuto. +sed 's/.....\(..........\).....\(.*\)/\1\2/' + +Ogni punto «.» corrisponde a un qualsiasi carattere singolo. «\1» e «\2» nella stringa di sostituzione si riferiscono al contenuto della prima e seconda coppia di parentesi tonde «\(» e «\)», indicanti il testo da tenere. + + +Combinare più sostituzioni +A volte, potresti voler applicare più sostituzioni in una volta. In tal caso si può usare un punto e virgola «;» per separarle l'una dall'altra. Ad esempio: +echo abracadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + OBROCODOBRO + + + +Usare <command +>perl</command +> invece di <command +>sed</command +> +Invece di sed potresti voler utilizzare un altro comando, ad esempio perl. +perl -p -e 's/ESPR.REG./SOSTITUZIONE/FLAG' + +Alcuni dettagli sono però diversi in perl. Nota che mentre sed necessita delle parentesi tonde come «\(» e «\)», in perl servono le più semplici «(» e «)», senza farle precedere da «\». Per esempio: + sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + +Ordine di esecuzione del preprocessore +I dati sono incanalati attraverso tutti i preprocessori interni ed esterni nel seguente ordine: + +Preprocessore normale, +Preprocessore per il confronto di righe, +Ignora le lettere maiuscole (tratta come spazio) (conversione in maiuscolo), +Rilevamento dei commenti C e C++: +Ignora i numeri (tratta come spazio), +Ignora gli spazi + +I dati, dopo essere passati dal preprocessore normale, saranno tenuti per la visualizzazione e la fusione. Le altre operazioni modificano solo i dati visti dall'algoritmo che rileva le differenze tra le righe corrispondenti. Nei rari casi in cui si usa il preprocessore normale, bisogna tener presente che il preprocessore di corrispondenza delle righe vede l'uscita del preprocessore normale come proprio ingresso. + + +Attenzione +I comandi di preprocesso sono spesso utilissimi, ma, come per ogni opzione che modifichi il testo o che nasconda automaticamente certe differenze, possono far sfuggire certe differenze, o nel peggiore dei casi distruggere dati importanti. Per questa ragione, se durante una fusione è in funzione un comando del preprocessore normale, &kdiff3; te lo dirà e ti chiederà se vuoi disattivarlo. Però non ti avviserà se è attiva l'opzione Preprocessore per il confronto di righe:. La fusione non sarà completata finché non saranno risolti tutti i conflitti. Se hai disabilitato l'elemento di menu Vista di confrontoMostra spazi, anche le differenze che sono state rimosse con l'opzione Preprocessore per il confronto di righe: saranno invisibili. Se il pulsante Salva resta disattivato durante una fusione (perché sussistono dei conflitti), assicurati di attivare l'elemento di menu Vista di confrontoMostra spazi. Se non vuoi fondere manualmente queste differenze meno importanti, puoi selezionare l'elemento di menu FondiScegli [A|B|C] per tutti i conflitti di spazi non risolti. + + + + + +Confronto e fusione di cartelle con &kdiff3; +Introduzione al confronto e alla fusione tra cartelle +Spesso i programmatori devono modificare molti file in una cartella per realizzare i loro scopi. Per questo &kdiff3; permette anche di confrontare e fondere ricorsivamente intere cartelle. Anche se confrontare e fondere delle cartelle sembra abbastanza semplice, ci sono diversi dettagli da considerare. Il più importante è ovviamente che ora molti file potrebbero essere coinvolti in ogni operazione. Se non hai copie di sicurezza dei dati originali, può essere molto difficile se non impossibile tornare allo stato originale. Quindi, prima di avviare una fusione, assicurati che i tuoi dati siano al sicuro e che sia possibile tornare indietro. È una tua decisione se archiviarli o se usare un sistema di controllo delle versioni, ma anche i programmatori esperti hanno bisogno dei vecchi sorgenti ogni tanto. Nota che anche se io (l'autore di &kdiff3;) cerco di fare del mio meglio, non posso garantire che non ci siano errori. In accordo con la licenza &GNU; GPL, non c'è alcuna garanzia per questo programma. Quindi attenzione e ricordate: +
+ Errare è umano, ma per fare un gran casino è necessario un computer. +
+Ecco quindi quello che questo programma può fare per te: &kdiff3;... + + ... legge e confronta due o tre cartelle ricorsivamente, + ... fa particolare attenzione ai collegamenti simbolici, + ... permette di sfogliare i file con un doppio clic del mouse, + ... per ogni elemento propone un'operazione di fusione, che puoi cambiare prima di avviare la fusione delle cartelle, + ... permette di simulare la fusione ed elenca le azioni che verrebbero fatte, senza eseguirle per davvero, + ... permette di fondere, e permette l'intervento manuale quando questo è necessario, + ... ti permette di avviare l'operazione selezionata per tutti gli elementi (tasto F7) o per l'elemento selezionato (tasto F6), + ... permette di continuare la fusione dopo l'interazione manuale con il tasto F7, + ... a scelta, crea delle copie di sicurezza, con l'estensione .orig, + ... + +
+ +Avviare il confronto o la fusione di cartelle +Questa operazione è molto simile al confronto e alla fusione di un file. È necessario specificare le cartelle nella riga di comando o nel dialogo di selezione dei file. +Confronta o fondi due cartelle: +kdiff3 cartella1 cartella2 + kdiff3 cartella1 cartella2 -o cartella_destinazione + +Se non viene specificata una cartella di destinazione, &kdiff3; userà cartella2. + + +Confronta o fondi tre cartelle: +kdiff3 cartella1 cartella2 cartella3 + kdiff3 cartella1 cartella2 cartella3 -o cartella_destinazione + +Quando si fondono tre cartelle, cartella1 viene usata come base della fusione. Se non è stata specificata alcuna cartella di destinazione per la fusione, &kdiff3; userà cartella3. + +Nota che solo il confronto inizia automaticamente, non la fusione. Per farla devi prima selezionare un elemento del menu o il tasto F7 (maggiori dettagli di seguito). + + + +Informazioni visibili sulla fusione delle cartelle +Durante la lettura delle cartelle appare un messaggio per notificare lo stato di avanzamento. Se annulli la scansione delle cartelle, saranno elencati solo i file che sono stati confrontati fino a quel momento. Quando la scansione delle cartelle è completata, &kdiff3; mostra un elenco dei risultati a sinistra, ... + + + +... e i dettagli dell'elemento attualmente selezionato a destra: + + + + + +La colonna del nome +Ogni file e cartella trovato durante la scansione è mostrato qui in un albero. Puoi selezionare un elemento facendoci clic con il mouse. Normalmente le cartelle sono chiuse. È possibile espanderle e richiuderle con un clic su + o - rispettivamente, facendo doppio clic sull'elemento, o usando i tasti &Left; o &Right;. Il menu Cartella contiene inoltre due azioni, Chiudi tutte le sottocartelle e Apri tutte le sottocartelle con le quali puoi richiudere o espandere tutte le cartelle in una sola volta. Se fai doppio clic su un file, il confronto verrà avviato e apparirà la finestra delle differenze dei file. +L'immagine nella colonna del nome corrisponde al tipo di file nella prima cartella (A). Può essere una di queste: + + File normale + Cartella normale (immagine di una cartella) + Collegamento a un file (immagine di un file con una freccia) + Collegamento a una cartella (immagine di una cartella con una freccia) + +Se il tipo di file è diverso nelle altre cartelle, questo è visibile nelle colonne A, B e C e nella finestra che mostra i dettagli dell'elemento selezionato. Nota che in questo caso nessuna operazione di fusione potrà essere selezionata automaticamente. Quando la fusione sarà avviata, l'utente sarà informato dei problemi di questo tipo. + + +Le colonne <guilabel +>A</guilabel +>, <guilabel +>B</guilabel +> e <guilabel +>C</guilabel +> e lo schema di colorazione +Come si può vedere nell'immagine sopra, i colori rosso, verde, giallo e nero sono utilizzati nelle colonne A, B e C. + + Nero: questo elemento non esiste in questa cartella. + Verde: elemento più recente. + Giallo: più vecchio del verde, più recente del rosso. + Rosso: elemento più vecchio. + +Per gli elementi risultati identici dal confronto, il colore è identico anche se l'età non lo è. Le cartelle sono considerate uguali se tutti gli elementi in esse contenuti sono identici. In tal caso avranno anche lo stesso colore. L'età di una cartella, però, non è considerata per il suo colore. L'idea di questo schema di colorazione l'ho avuta dal comando dirdiff. I colori sembrano i colori di una foglia, che è verde quando è nuova, successivamente ingiallisce e diventa rossa quando è vecchia. + +La colonna <guilabel +>Operazione</guilabel +> +Dopo aver confrontato le cartelle, &kdiff3; valuta anche una proposta di fusione. Questa è visibile nella colonna Operazione. Puoi modificare l'operazione facendo clic su quella che desideri cambiare. Apparirà un piccolo menu che permetterà di selezionare un'operazione per quell'elemento. Puoi anche selezionare le operazioni necessarie con la tastiera: &Ctrl;1, &Ctrl;2, &Ctrl;3, &Ctrl;4, e &Ctrl; selezionano rispettivamente, A, B, C, Fondi ed Elimina, se disponibili. Questa operazione verrà eseguita durante la fusione. Quali operazioni sono disponibili dipende dall'elemento e dalla modalità di fusione attuale. La modalità di fusione è una tra le seguenti: + + Fusione di tre cartelle (A è considerato la base più vecchia di entrambe). + Fusione di due cartelle. + Modalità di sincronizzazione di due cartelle (attivabile con l'opzione Sincronizza cartelle). + +Nella fusione di tre cartelle l'operazione proposta sarà: Se per un elemento… + + … le tre cartelle sono uguali: copia da C + … A e C sono uguali ma B no: copia da B, o elimina la destinazione se B non esiste + … A e B sono uguali ma C no: copia da C, o elimina la destinazione se C non esiste + … B e C sono uguali ma A no: copia da C, o elimina la destinazione se C non esiste + … esiste solo A: elimina la destinazione, se esiste + … esiste solo B: copia da B + … esiste solo C: copia da C + … A, B e C non sono uguali: fondi + … A, B e C non sono dello stesso tipo (per esempio A è una cartella e B è un file): «Errore: tipi di file in conflitto». La fusione tra cartelle non può essere avviata finché esistono questi elementi. + +Nella fusione di due cartelle l'operazione proposta sarà: se per un elemento… + + … entrambe le cartelle sono uguali: copia da B + … A esiste, ma B no: copia da A + … B esiste, ma A no: copia da B + … A e B esistono ma non sono uguali: fondi + … A e B non sono dello stesso tipo (per esempio A è una cartella, B è un file): «Errore: tipi di file in conflitto». La fusione non può essere avviata finché esistono questi elementi. + +La modalità di sincronizzazione è attiva se solo sono state specificate due cartelle e nessuna destinazione, e se è attiva l'opzione Sincronizza cartelle. &kdiff3; selezionerà quindi un'operazione predefinita in modo che entrambe le cartelle divengano successivamente uguali. Se per un elemento… + + … entrambe le cartelle sono uguali: non sarà fatto nulla + … A esiste, ma B no: copia A in B + … B esiste, ma A no: copia B in A + … A e B esistono, ma non sono uguali: fondi e memorizza il risultato in entrambe le cartelle (il nome del file di salvataggio visibile all'utente è quello di B, ma &kdiff3; copia B anche in A). + … A e B non sono dello stesso tipo (per esempio A è una cartella, B è un file): «Errore: tipi di file in conflitto». La fusione non può essere avviata finché esistono questi elementi. + +Quando due cartelle vengono fuse ed è selezionata l'opzione Copia il più recente invece di fondere (non sicuro), &kdiff3; verificherà le date e proporrà di scegliere il file più recente. Se i file non sono uguali ma hanno la stessa data, il risultato dell'operazione sarà «Errore: le date coincidono ma i file sono diversi». La fusione delle cartelle non può essere avviata finché esistono questi elementi. + + +La colonna <guilabel +>Stato</guilabel +> +Durante la fusione i file saranno elaborati uno per volta. La colonna di stato indicherà Fatto per gli elementi correttamente fusi, e altri messaggi se si è verificato qualche imprevisto. Quando una fusione è completa, si dovrebbe fare un'ultima verifica per vedere se gli stati di tutti gli elementi sono corretti. + + +Le colonne delle statistiche +Quando la modalità di confronto dei file Analisi completa è stata abilitata nelle opzioni, &kdiff3; mostrerà delle colonne supplementari con il numero di conflitti non risolti, risolti, di spazi vuoti e non (la colonna Risolto sarà mostrata solo quando si confrontano o fondono tre cartelle). + + +Selezionare i file elencati +Diverse opzioni influenzano quali file vengono qui elencati. Ad alcune si può accedere nella finestra delle impostazioni. Il menu Cartella contiene le voci: + Mostra file identici: i file che sono stati verificati essere identici in tutte le cartelle di ingresso. + Mostra file diversi: file che esistono in due o più cartelle e che non sono uguali. + Mostra file solo in A: file che esistono solo in A, ma non in B o C. + Mostra file solo in B: file che esistono in B, ma non in A o C. + Mostra file solo in C: file che esistono in C, ma non in A o B. + +Attiva le opzioni di visualizzazione solo per gli elementi che vuoi elencare. Se per esempio vuoi solo elencare tutti gli elementi che esistono in A o B, ma non in entrambi, dovrai attivare Mostra file solo in A e Mostra file solo in B, e disattivare tutti gli altri (Mostra file identici, Mostra file diversi, Mostra file solo in C). L'elenco sarà immediatamente aggiornato secondo le modifiche. Queste opzioni valgono anche per le cartelle, con un'eccezione: disabilitare Mostra file diversi non nasconderà le cartelle complete, ma funzionerà solo per i loro file. Nota che tra queste opzioni solo Mostra file identici è persistente; le altre sono abilitate quando si avvia &kdiff3;. + + + + + +Fondere le cartelle +Puoi o fondere l'elemento attualmente selezionato (file o cartella), o tutti gli elementi. Quando hai scelto tutte le tue operazioni (anche in tutte le sottocartelle) puoi avviare la fusione. Attenzione che se non specifichi esplicitamente una cartella di destinazione, questa sarà C nella modalità con tre cartelle, B nella modalità con due, e nella modalità di sincronizzazione sarà A o B. Se è stata specificata la cartella di destinazione, va verificato anche che tutti gli elementi di uscita siano nell'albero. Ci sono alcune opzioni che fanno omettere certi elementi dal confronto e dalla fusione delle cartelle. Verifica queste opzioni per non avere delle brutte sorprese: + + Cartelle ricorsive: se disabilitata, gli elementi nelle sottocartelle non saranno trovati. + Schemi di file e Schemi di file da escludere: include o esclude gli elementi corrispondenti + Escludi file nascosti + Opzioni di visualizzazione (Mostra file identici/diversi, File solo in in A/B/C) + +Se cambi le impostazioni per elencare più file, devi riesaminare la cartella con CartellaRiesamina; questo perché &kdiff3; non confronta i file esclusi con questi criteri per accelerare il confronto. Se hai cambiato gli schemi per file o cartelle per escludere dei file, la lista dei file sarà aggiornata subito dopo la chiusura della finestra delle opzioni. Nota che, quando scrivi in una cartella completamente nuova, di solito vuoi copiare anche i file identici. In tal caso abilita l'opzione Mostra file identici. Se la cartella di destinazione è uno degli ingressi, questo non è necessario perché il file è già lì. Se fin qui sei soddisfatto, il resto è facile. Per fondere tutti gli elementi: seleziona Avvia o continua fusione tra cartelle nel menu Cartella o premi il tasto F7, che ne è la scorciatoia predefinita. Per fondere solo l'elemento attuale, seleziona Esegui operazione sull'elemento attuale o premi F6. Se esistono ancora elementi con operazioni non valide a causa di tipi di file in conflitto, apparirà una finestrella per indicarli e poter selezionare un'operazione valida. Se fondi tutti gli elementi, apparirà una finestra con le opzioni Procedi, Simula e Annulla. + + Seleziona Simula se vuoi vedere cosa verrebbe fatto senza farlo per davvero. Verrà mostrato un elenco dettagliato di tutte le operazioni. + Altrimenti, seleziona Procedi per avviare la fusione vera e propria. + +&kdiff3; avvierà quindi l'operazione specifica per tutti gli elementi. Se si richiede un'interazione manuale (fusione di un singolo file), sarà aperta la finestra di fusione (vedi la schermata grande). Quando hai finito con la fusione manuale di un file, riseleziona Avvia o continua fusione tra cartelle o il tasto F7. Se non hai ancora salvato, una finestra te lo chiederà. &kdiff3; procederà quindi al prossimo elemento. Quando &kdiff3; incontra un errore, lo segnalerà e mostrerà le informazioni di stato in dettaglio. In fondo a questo elenco ci saranno alcuni messaggi d'errore che dovrebbero aiutare a capire la causa del problema. Quando si fa riprendere la fusione (tasto F7), &kdiff3; darà la scelta tra riprovare o saltare l'elemento che ha causato il problema. Ciò significa che prima di continuare puoi scegliere un'altra operazione, o risolvere il problema in altro modo. &kdiff3; mostrerà infine una finestrella al completamento della fusione. Se alcuni elementi sono stati fusi individualmente prima di eseguire la fusione tra cartelle, &kdiff3; lo ricorderà per tutta la sessione di fusione, e non li fonderà di nuovo quando la fusione di tutti gli altri elementi verrà eseguita più tardi. Questi elementi sono considerati completati anche quando la fusione viene saltata o non viene salvato nulla. Solo quando cambi l'operazione di fusione lo stato di completamento dell'elemento sarà rimosso, e l'elemento sarà fuso di nuovo. + + +Opzioni per il confronto e la fusione tra cartelle +Le preferenze di &kdiff3; (ImpostazioniConfigura &kdiff3;) ha una sezione chiamata «Fusione tra cartelle» con queste opzioni: + + + Cartelle ricorsiveSeleziona se cercare ricorsivamente nelle cartelle. + Schemi di file:Solo i file che corrispondono ad uno schema saranno inseriti nell'albero. È possibile specificare più di uno schema usando il punto e virgola («;») come separatore. I caratteri jolly possibili sono «*» e «?»; per esempio «*.cpp;*.h». Il valore predefinito è «*». Questi schemi non sono usati per le cartelle. + Schemi di file da escludere:I file che corrispondono a questi schemi saranno esclusi dall'albero. È possibile specificare più di uno schema usando il punto e virgola («;») come separatore. I caratteri jolly possibili sono « +>*» e «?». Il valore predefinito è «*.orig;*.o;*.obj». + Schemi di file da escludere:Le cartelle che corrispondono a questi schemi saranno escluse dall'albero. È possibile specificare più di uno schema usando il punto e virgola («;») come separatore. I caratteri jolly possibili sono «*» e «?». Il valore predefinito è «CVS;deps;.svn». + Usa file «ignore»Ignora i file e le cartelle che verrebbero ignorati anche dal tuo controllo di versione. Molti file generati automaticamente vengono ignorati medianti elenchi «ignore». Il vantaggio principale è che questo può cambiare per ogni cartella, secondo un file locale «ignore». Per maggiori dettagli, consulta la documentazione del controllo di versione. + Trova file e cartelle nascostiSu alcuni filesystem esiste l'attributo nascosto per i file. Su altri un nome del file che comincia con un punto (.) lo rende nascosto. Questa opzione permette di decidere se includere questi file nell'albero oppure no. Come impostazione predefinita è attivato. + Segui i collegamenti dei filePer i collegamenti a file: quando disabilitato, vengono confrontati i collegamenti simbolici. Quando abilitato, vengono confrontati i file collegati. Come impostazione predefinita è disattivato. + Segui i collegamenti delle cartellePer collegamenti a cartelle: quando disabilitato, vengono confrontati i collegamenti simbolici. Quando attivato, i collegamenti saranno trattati come una cartella e saranno scansionati ricorsivamente. Nota che il programma non verifica se il collegamento è ricorsivo. Quindi, per esempio, se una cartella contenente un collegamento ad un'altra causa un ciclo infinito, dopo un po' ciò causerà un esaurimento della memoria e manderà il programma in blocco. Come impostazione predefinita è disattivato. + Distingui le maiuscole nel confronto dei nomi dei fileIl valore predefinito è falso su &Windows;, vero per gli altri sistemi operativi. + Modalità di confronto dei file: + + Confronto binarioQuesta è la modalità di confronto predefinita. + Analisi completaOpera un analisi approfondita di ogni file e mostra le colonne con le informazioni statistiche (numero di conflitti non risolti, risolti, relativi a spazi non bianchi e relativi a spazi bianchi). L'analisi completa è più lenta di una semplice analisi binaria, e ancora più lenta se applicata a file non di testo (indica gli schemi di file da escludere appropriati). + Fidati della grandezza e della data di modifica (non sicuro)Se si confrontano cartelle grandi in una rete lenta, potrebbe essere più veloce confrontare solamente le date di modifica e la dimensione dei file. Ma questo aumento di velocità ha il prezzo di una piccola incertezza. Usa questa opzione con cautela. Come impostazione predefinita è disattivata. + Fidati della dimensione (non sicuro)Simile a fidarsi delle date di modifica. Non c'è un vero confronto. Due file sono considerati uguali se la loro dimensione risulta uguale. Questo è utile quando l'operazione di copia file non ha mantenuto la data di modifica. Usa questa opzione con cautela. Come impostazione predefinita è disattivata. + + + Sincronizza cartelleAttiva la modalità di sincronizzazione quando vengono confrontate due cartelle e non è stata indicata una cartella di destinazione. In questa modalità le operazioni proposte saranno scelte in modo che entrambe le cartelle sorgenti siano in seguito uguali. Anche il risultato di fusione sarà scritto in entrambe le cartelle. Come impostazione predefinita è disattivato. + Copia il più recente invece di fondere (non sicuro)Invece di fondere, l'operazione proposta copierà il sorgente più recente se ci sono state modifiche; è potenzialmente pericoloso, perché si assume che l'altro file non sia stato modificato: controlla per assicurartene ogni volta. Come impostazione predefinita è disattivato. + Copie di sicurezza (.orig)Se un file, o un'intera cartella, è sostituito con un altro o viene eliminato, la versione originale sarà rinominata con l'estensione .orig. Se esiste già una copia precedente con estensione .orig, sarà eliminata senza farne una copia. Inoltre, ciò ha effetto sulla comune fusione tra singoli file, non solo sulla fusione tra cartelle. Come impostazione predefinita è attivato. + + + +Altre funzioni nella finestra di fusione tra cartelle +Modalità a schermo intero o diviso +Normalmente l'elenco di visualizzazione della fusione delle cartelle rimane visibile mentre un file viene confrontato o fuso. Con il mouse puoi muovere la barra di separazione tra l'elenco dei file e le finestre delle differenze testuali. Se non lo vuoi, puoi disabilitare l'elemento di menu CartellaVista separata di cartelle e testi. Potrai quindi usare l'elemento di menu CartellaCambia vista per passare tra l'elenco di file e la vista delle differenze, che quindi occuperà tutto lo schermo. + +Confrontare o fondere un file singolo +Probabilmente è più semplice fare doppio clic col mouse su un file per confrontarlo; esiste però anche una voce nel menu Cartella. Puoi anche fondere direttamente un file singolo selezionandolo e scegliendo l'elemento di menu FondiFondi il file attuale. Al salvataggio del risultato, lo stato del file verrà segnato come completato, e il file non verrà fuso di nuovo se viene avviata una fusione tra cartelle. Nota però che queste informazioni di stato andranno perse se esegui nuovamente una scansione delle cartelle con CartellaRiesamina. + +Confrontare o fondere file con nomi diversi +A volte devi confrontare o fondere file con nomi diversi, per esempio un file e la sua copia di sicurezza nella stessa cartella. Seleziona il file facendo clic sull'icona nella colonna A, B o C. Il primo file selezionato sarà segnato con A, il secondo e il terzo con B e C indipendentemente dalla colonna in cui si trovano. Si possono scegliere tre file al massimo in questo modo. Procedi scegliendo l'elemento di menu CartellaConfronta file selezionati esplicitamente o CartellaFondi file selezionati esplicitamente. Per comodità, queste voci appaiono anche nel menu contestuale quando fai clic destro sull'ultimo file selezionato. Il confronto o la fusione di un file avverrà nella stessa finestra. Se questo metodo viene usato per le cartelle, sarà aperta una nuova finestra. + +
+ + +Argomenti vari + +Trasparenza di rete con KIO +Gli slave KIO +La libreria KIO di &frameworks; supporta la trasparenza di rete tramite gli slave KIO. &kdiff3; li usa per leggere i file in ingresso e per esaminare le cartelle. Ciò significa che è possibile specificare file e cartelle locali o remoti con un &URL;. Esempio: +kdiff3 prova.cpp ftp://ftp.tantolontano.it/prova.cpp +kdiff3 tar:/home/pincopallino/archivio.tar.gz/cartella ./cartella + + +La prima riga confronta un file locale con un file su un server &FTP;. La seconda riga confronta una cartella contenuta in un archivio compresso con una locale. Altri slave KIO interessanti sono: + +File dal Web (http:), +File da &FTP; (ftp:), +Trasferimento di file cifrato (fish:, sftp:), +Partizioni condivise di &Windows; (smb:), +File locali (file:), + +Altre cose possibili, ma probabilmente meno utili sono: + +Pagine Man (man:), +Pagine Info (info:), + + + +Come scrivere gli &URL; +Un &URL; ha una sintassi diversa rispetto ai percorsi dei file delle cartelle locali. Si dovrebbero considerare alcune cose: + +Un percorso può essere relativo e può contenere . o ... Quando non è possibile per gli &URL;, che sono sempre assoluti. I caratteri speciali devono essere scritti con i caratteri di escape («#» diventa «%23», lo spazio -> diventa %20, e via discorrendo). Per esempio un file chiamato #pippo# dovrebbe avere l'&URL; «file:/%23pippo%23». Quando gli &URL; non funzionano come ci si aspetta, prova ad aprirli con &konqueror; e vedere cosa succede. + + + + +Funzionalità degli slave KIO +La trasparenza di rete ha uno svantaggio: non tutte le risorse hanno le stesse funzionalità. A volte ciò è dovuto al filesystem del server, altre volte al protocollo. Ecco un breve elenco di limitazioni: + +A volte manca il supporto per i collegamenti. O non c'è modo di distinguere se il collegamento punti a un file o a una cartella; si presume sempre un file (ftp:, sftp:). Non si può sempre sapere la dimensione del file. Supporto limitato per i permessi. Manca la possibilità di cambiare i permessi o la data di modifica, quindi i permessi e la data di modifica di una copia saranno diversi dall'originale (vedi l'opzione Fidati della dimensione (non sicuro)). Queste operazioni sono permesse solo per i file locali. + + + + + +Usare &kdiff3; come un componente KPart +&kdiff3; è un componente KPart. Attualmente implementa l'interfaccia KParts::ReadOnlyPart. Il suo impiego principale è come visore di differenze in &kdevelop;. &kdevelop; fa sempre partire prima il visore delle differenze interno. Per richiamare &kdiff3; premi il &RMB; nella finestra del visore e seleziona Mostra in KDiff3Part dal menu contestuale. &kdiff3; richiede normalmente due file completi in ingresso. Quando viene usato come componente, &kdiff3; presupporrà che il file di ingresso sia una patch nel formato unificato. &kdiff3; recupererà i nome originali dei file dalla patch. Deve essere disponibile almeno uno dei due file. &kdiff3; chiamerà quindi patch per ricreare il secondo file. In &dolphin; puoi selezionare una patch e selezionare dal menu contestuale Anteprima inKDiff3Part. Nota che questa opzione non funzionerà se nessuno dei file originali è disponibile, e non è affidabile se i file originali sono stati modificati prima della generazione della patch. Quando avviato come componente, &kdiff3; include solo la differenza tra due file, e una barra degli strumenti e un menu ridotti. La fusione o il confronto tra cartelle non sono supportati. + + + +Usare &kdiff3; come strumento Diff e Merge di &git; +&kdiff3; può essere utilizzato come strumento diff e merge di &git;. +Basta che aggiungi le righe seguenti al tuo file gitconfig. +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <percorso all'eseguibile kdiff3 nel tuo sistema> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <percorso all'eseguibile kdiff3 nel tuo sistema +> + +Poi per osservare la differenza tra i due commit usa git difftool first_hash second_hash --tool=kdiff3 --cc qualche_file_nel_git_tree +Per eseguire la fusione di un ramo con &kdiff3; usa git merge nome_ramo && git mergetool --tool=kdiff3 +Dopo aver risolto i conflitti di fusione nel solito modo, è sufficiente eseguire il commit delle modifiche per finire il lavoro. + + + + +Domande e risposte&reporting.bugs; &updating.documentation; + +Perché si chiama &kdiff3;? Gli strumenti KDiff e KDiff2 (ora &kompare;) esistono già. Inoltre &kdiff3; dovrebbe suggerire che può fondere come lo strumento diff3 presente nella raccolta degli strumenti diff. + +Perché l'ho rilasciato con la GPL? Ho usato a lungo programmi GPL e ho imparato molto guardando il codice sorgente. Così questo è il mio Grazie a tutti i programmatori che a loro volta hanno fatto o faranno lo stesso. + +Mancano alcuni pulsanti e funzioni. Cosa c'è che non va? Hai compilato da sorgente, ma probabilmente non hai specificato correttamente il prefisso per l'installazione. Come impostazione predefinita cmake vuole installare in /usr/local, ma in questo modo non è possibile trovare il file delle risorse dell'interfaccia utente (ossia kdiff3ui.rc). Il file README contiene maggiori informazioni su quale sia il prefisso giusto. + +Spesso le righe simili ma non uguali appaiono fianco a fianco, ma a volte no. Perché? Le righe che presentano differenze di soli spazi sono inizialmente trattate come uguali, mentre una sola differenza non di spazi le rendono diverse. Che righe simili appaiano fianco a fianco è una coincidenza, ma questo fortunatamente è spesso il caso. Vedi anche l'aiuto per le differenze manuali. + +Perché tutti i conflitti devono essere risolti prima di poter salvare il risultato della fusione? Per ogni sezione uguale o diversa, l'editor nella finestra del risultato di fusione ricorda l'inizio e la fine. Questo è necessario per poter risolvere i conflitti manualmente semplicemente selezionando il pulsante del sorgente (A, B o C). Queste informazioni andranno perse in seguito al salvataggio del testo, perché è troppo oneroso creare un formato di file che supporti il salvataggio e il ripristino di tutte le informazioni necessarie. + +Come posso sincronizzare le viste di differenze e fusioni, in modo che tutte le viste mostrino la stessa posizione del testo? Fai clic nella colonna di sommario a sinistra del testo (vedi anche qui). + +Perché l'editor nella finestra del risultato di fusione non ha una funzione di annullamento? Questa funzione richiedeva troppo sforzo. È sempre possibile ripristinare una versione da una sorgente (A, B o C) facendo clic il rispettivo pulsante. Per modifiche maggiori si raccomanda comunque l'uso di un altro editor. + +Quando ho rimosso del testo mi è apparso improvvisamente «<Riga sorgente mancante>», e non può essere eliminato. Cosa significa e come si può rimuovere? L'editor nella finestra del risultato della fusione ricorda dove inizia e dove finisce ogni sezione diversa o uguale. «<Riga sorgente mancante>» significa che in una sezione non c'è più nulla, nemmeno un carattere di ritorno a capo. Questo può capitare sia nella fusione automatica che modificando il file a mano. Questo non è un problema, perché questa indicazione non apparirà nel file salvato. Se rivuoi il file originale basta selezionare la sezione (fai clic sulla colonna di sommario a sinistra) e fai quindi clic sul pulsante del sorgente con il contenuto voluto (A/B o C). + +Perché &kdiff3; non supporta l'evidenziazione della sintassi? &kdiff3; già usa molti colori per l'evidenziazione delle differenze. Altre evidenziazioni farebbero confusione. Per questi scopi usa un altro editor. + +Posso usare &kdiff3; per confrontare file di OpenOffice.org, &Microsoft; Word, &Microsoft; Excel, &PDF;, eccetera? Nonostante &kdiff3; possa analizzare ogni tipo di file, probabilmente il risultato non sarà molto soddisfacente. &kdiff3; è stato fatto per confrontare file di testo semplice. OpenOffice.org, &Microsoft; Word, &Microsoft; Excel, eccetera, memorizzano molte più informazioni nei file (sul tipo di carattere, le immagini, le pagine, i colori, e via discorrendo) di cui &kdiff3; non sa nulla. Quindi &kdiff3; ti mostrerà i contenuti del file interpretato come testo semplice, ma ciò potrebbe essere illeggibile, o almeno sembrerà molto strano. Siccome la maggior parte dei programmi oggigiorno memorizza i contenuti in formato &XML;, dovresti poterli leggere come testo semplice. Quindi se c'è stato solo un piccolo cambiamento, &kdiff3; potrebbe ancora essere d'aiuto. La migliore soluzione se vuoi solo confrontare il testo (senza oggetti integrati, come le immagini) è usare gli elementi di menu ModificaSeleziona tutto e ModificaCopia nel programma per copiare il testo rilevante negli appunti e in seguito incollare il testo in &kdiff3; in una finestra di confronto. Vedi anche la sezione Seleziona, Copia e Incolla. + +Dov'è finita l'opzione delle cartelle Elenca solo le differenze? Ora ci sono varie opzioni di «visualizzazione» nel menu Cartella. Disabilitare Mostra file identici produce la stessa cosa che faceva l'abilitazione di Elenca solo le differenze. + +Come faccio a fare una grande selezione nella finestra di ingresso delle differenze, visto che ci vuole così tanto tempo per lo scorrimento? Comincia la selezione come al solito (fai clic e tieni premuto il &LMB;). Quindi usa i tasti di navigazione (per esempio &PgUp; e &PgDn;) mentre tieni premuto il &LMB;. Vedi anche la sezione Seleziona, Copia e Incolla. + +Qui ci sono molte informazioni, ma non hai trovato una risposta alla tua domanda? Inviami la tua domanda. Ogni commento sarà apprezzato. + + + + + + +Riconoscimenti e licenza + +&kdiff3; - Strumento per confrontare e fondere file e cartelle +Copyright del programma 2002-2007 di Joachim Eibl joachim.eibl@gmx.de +Sono ben accette nuove idee e segnalazioni di errori da colleghi e da tutte le persone su Internet. Grazie! + +Copyright della documentazione © 2002-2007 di Joachim Eibl joachim.eibl@gmx.de + +Copyright della documentazione © 2017-2019 Michael Reeves reeves.87 at gmail.com + +Aggiornamento e revisione della traduzione (2020), attuale responsabile: Valter Mura valtermura@gmail.com Aggiornamento e revisione della traduzione (2009): Federico Zenith federico.zenith@member.fsf.org Aggiornamento e revisione della traduzione (2005): Andrea Celli Traduzione 2004: Stelvio Rosset &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/it/docs/kdiff3/man-kdiff3.1.docbook b/po/it/docs/kdiff3/man-kdiff3.1.docbook new file mode 100644 index 0000000..849f4dd --- /dev/null +++ b/po/it/docs/kdiff3/man-kdiff3.1.docbook @@ -0,0 +1,447 @@ + + +]> + + + +Manuale utente di KDiff3 +BurkhardLueck pagina man di KDiff3. &Burkhard.Lueck.mail; +22/02/2019 +kdiff3 1.9 + + + +kdiff3 +1 + + + +kdiff3 +Strumento per il confronto e la fusione di file e cartelle + + + +kdiff3 file file file alias1 alias2 alias3 alias string file + + + +Descrizione +Confronta due o tre file o cartelle in ingresso. + + + + +Opzioni + + + +Ignorato (definito dall'utente). + + + + +Ignorato (definito dall'utente). + + + + +Ignorato (definito dall'utente). + + + + +Ignorato (definito dall'utente). + + + + +Fondi l'ingresso. + + + + file +File di base esplicito. Per compatibilità con certi programmi. + + + + file +File di uscita. Implica «-m». Per esempio: -o file_nuovo.txt + + + + file +File di uscita, di nuovo. Per compatibilità con certi programmi. + + + + +Senza interfaccia se ogni conflitto è risolvibile automaticamente. Serve «-o file». + + + + +Ignora --auto e mostra sempre l'interfaccia grafica. + + + + alias1 +Mostra sostituzione del nome per il file di ingresso 1 (base). + + + + alias2 +Mostra sostituzione del nome per il file di ingresso 2. + + + + alias3 +Mostra sostituzione del nome per il file di ingresso 3. + + + + alias +Sostituzione del nome visibile alternativo. Da specificare una volta per ogni ingresso. + + + + string +Sovrascrive il valore di un'impostazione di configurazione. Usa una volta per ogni impostazione. Per esempio: AutoAdvance=1. + + + + +Mostra la lista delle impostazioni di configurazione e i valori attuali. + + + + file +Usa un file di configurazione diverso. + + + + +File1 da aprire (base, se non specificato con --) + + + + +File2 da aprire + + + + +File3 da aprire + + + + + + + +Vedi anche + +Ulteriore documentazione utente è disponibile su help:/kdiff3 (puoi inserirlo come &URL; in &konqueror;, oppure eseguire khelpcenter help:/kdiff3). +kf5options(7) +qt5options(7) + + + + +Autori +Questo manuale è stato scritto da &Burkhard.Lueck; &Burkhard.Lueck.mail;. + + + diff --git a/po/it/kdiff3.po b/po/it/kdiff3.po new file mode 100644 index 0000000..1e61ba3 --- /dev/null +++ b/po/it/kdiff3.po @@ -0,0 +1,3609 @@ +# translation of kdiff3.po to Italian +# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. +# Andrea Celli , 2003, 2004, 2005. +# Marcello Anni , 2006, 2007. +# Giovanni Venturi , 2006. +# Federico Zenith , 2009, 2010, 2011. +# Valter Mura , 2018, 2019, 2020, 2021, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-22 20:20+0100\n" +"Last-Translator: Valter Mura \n" +"Language-Team: Italian \n" +"Language: 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" +"X-Generator: Lokalize 22.04.0\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Valter Mura,Federico Zenith,Marcello Anni,Andrea Celli" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "valtermura@gmail.com,,," + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Recupero informazioni sullo stato del file: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Lettura del file: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Scrittura del file: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Memoria esaurita" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Creazione della cartella: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Rimozione della cartella: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Rimozione del file: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Creazione del collegamento simbolico: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Rinomina del file: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Copia del file: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Lettura della cartella: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Elenco della cartella: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Errore: perdita dati\n" +"Se è riproducibile, sei pregato di segnalarlo all'autore.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Grave errore interno" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Grave errore interno." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Grave errore interno: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "File %1: riga %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "File %1: riga non disponibile" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codifica:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Tipo di fine riga:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codifica: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Tipo di fine riga: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Riga superiore" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fine" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Apri file" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Altro" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copia A su B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copia B su A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Elimina A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Elimina B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Elimina A e B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Fondi con A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Fondi con B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Fondi con A e B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Elimina (se esiste)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Fondi" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Fondi (manuale)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Errore: tipi di file in conflitto" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Errore: modificato ed eliminato." + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Errore: le date coincidono ma i file sono diversi." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Fatto" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Errore" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Saltato." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Non salvato." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "In esecuzione..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Da fare." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nome" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operazione" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stato" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Non risolto" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Risolto" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Non vuoto" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Vuoto" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Stai fondendo delle cartelle. Sei sicuro di voler interrompere la fusione e " +"riesaminare la cartella?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Avviso" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Riesamina" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continua la fusione" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Apertura di cartelle non riuscita:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "La cartella A «%1» non esiste o non è una cartella.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "La cartella B «%1» non esiste o non è una cartella.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "La cartella C «%1» non esiste o non è una cartella.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Errore nell'apertura di una cartella" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"La cartella di destinazione non può essere la stessa di A o B quando si " +"fondono tre cartelle.\n" +"Ricontrolla prima di continuare." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Attenzione ai parametri" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Esame delle cartelle..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Lettura della cartella A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Lettura della cartella B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Lettura della cartella C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Alcune sottocartelle non erano leggibili" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Controlla i permessi per le sottocartelle." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Pronto." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Stato confronto delle cartelle\n" +"\n" +"Numero delle sottocartelle: %1\n" +"Numero di file uguali: %2\n" +"Numero di file diversi: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Numero di fusioni manuali: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Questo riguarda tutte le operazioni di fusione." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Modifica di tutte le operazioni di fusione" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Elaborazione di %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Non è stato possibile elaborare alcuni file." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Interruzione a causa di troppi errori." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Questa operazione non è attualmente possibile." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operazione non possibile" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Si è verificato un errore durante la copia." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Errore di fusione" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Operazione di fusione sconosciuta (non deve mai succedere)." + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Operazione di fusione sconosciuta." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"La fusione sta per iniziare.\n" +"\n" +"Scegli «Procedi» se hai letto le istruzioni e sai cosa stai facendo.\n" +"\n" +"Scegli «Simula» per vedere cosa succederebbe.\n" +"\n" +"Stai attento perché questo programma è ancora una «beta» e non c'è " +"nessuna garanzia che funzioni! Fai una copia di sicurezza dei tuoi " +"dati importanti!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Inizio della fusione" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Procedi" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simula" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"L'elemento evidenziato è di diverso tipo nelle diverse cartelle. Scegli cosa " +"fare." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Le date di modifica dei file sono uguali ma i file sono diversi. Scegli cosa " +"fare." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"L'elemento evidenziato è stato modificato in una cartella ed eliminato " +"nell'altra. Scegli cosa fare." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Attualmente non si può effettuare questa operazione perché è in corso una " +"fusione tra cartelle." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Si è verificato un errore nell'ultimo passaggio.\n" +"Vuoi continuare con l'elemento che ha provocato l'errore o vuoi saltarlo?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continua la fusione dopo un errore" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continua con l'ultimo" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Saltalo" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operazione di fusione completata." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fusione completata" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Fusione simulata completata: controlla se ti vanno bene le operazioni " +"proposte." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Si è verificato un errore. Premi OK per maggiori informazioni." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Errore: nell'eliminare %1: impossibile creare una copia di sicurezza." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "elimina cartella ricorsivamente (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "elimina (%1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Errore: eliminazione della cartella non riuscita durante la sua lettura." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Errore: operazione di rimozione di una cartella (%1) non riuscita." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Errore: eliminazione non riuscita." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "fusione manuale (%1, %2,%3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Nota: dopo una fusione manuale l'utente dovrebbe premere F7 per " +"continuare." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Errore: copia (%1 -> %2) non riuscita. Eliminazione della destinazione " +"esistente non riuscita." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copia collegamento (%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Errore: copia di collegamento non riuscita: i collegamenti remoti non sono " +"ancora supportati." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Errore: copia di collegamento non riuscita." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copia (%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Errore nella rinomina (%1 -> %2): impossibile eliminare la destinazione " +"esistente." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rinomina (%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Errore: rinomina non riuscita." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Errore durante la creazione della cartella %1. Impossibile eliminare un file " +"esistente." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "crea cartella (%1)" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Errore nella creazione di una cartella." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Destinazione" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Cartella" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipo" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Dimensione" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attributo" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Ultima modifica" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destinazione del collegamento" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "File" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Collegamento" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "non disponibile" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (destinazione): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (destinazione): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (destinazione): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Destinazione: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Salva lo stato di fusione tra cartelle come..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Avvia o continua fusione tra cartelle" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Esegui operazione sull'elemento attuale" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Confronta il file selezionato" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Fondi il file attuale" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Fondi\n" +"file" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Chiudi tutte le sottocartelle" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Apri tutte le sottocartelle" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Scegli A per tutti gli elementi" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Scegli B per tutti gli elementi" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Scegli C per tutti gli elementi" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Operazione di scelta automatica per tutti gli elementi" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Nessuna operazione per tutti gli elementi" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Mostra file identici" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"File\n" +"identici" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Mostra file diversi" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Mostra file solo in A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"File\n" +"solo in A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Mostra file solo in B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"File\n" +"solo in B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Mostra file solo in C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"File\n" +"solo in C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Confronta file selezionati esplicitamente" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Fondi file selezionati esplicitamente" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Non fare nulla" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Elimina A e B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Fondi con A e B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" +"Impossibile individuare l'URL completo. Nessun percorso genitore specificato." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Lettura del file non riuscita: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Creazione di una copia temporanea di %1 non riuscita." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Apertura di %1 non riuscita. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Errore nella lettura di %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Cercando di creare una copia di sicurezza, non è stato possibile rimuoverne " +"una precedente.\n" +"Nome del file: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Cercando di creare una copia di sicurezza, non è riuscita la rinomina.\n" +"Nomi dei file: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configurazione attuale:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Errore nelle opzioni di configurazione:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"Opzione --auto inserita, ma non è stato indicato alcun file del risultato." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Opzione --auto ignorata nel confronto di cartelle." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Salvataggio non riuscito." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Apertura di questi file non riuscita:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Errore nell'apertura del file" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Apre documenti per confrontarli..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Ricarica" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Salva il risultato della fusione. Tutti i conflitti vanno risolti!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Salva il documento attuale come..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Stampa le differenze" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Esce dall'applicazione" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Taglia la sezione selezionata e la mette negli appunti" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia la sezione selezionata negli appunti" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Incolla il contenuto degli appunti nella posizione attuale" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Seleziona tutto nella finestra attuale" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Cerca una stringa" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Cerca di nuovo la stringa" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Abilita o disabilita la barra di stato" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configura KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Vai alla differenza attuale" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Differenza\n" +"attuale" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Vai alla prima differenza" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Prima\n" +"differenza" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Vai all'ultima differenza" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Ultima\n" +"differenza" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Ignora le differenze di soli spazi quando «Mostra spazi» è disattivato)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Non salta le differenze di soli spazi bianchi anche quando «Mostra spazi» è " +"disattivato)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Vai alla differenza precedente" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Differenza\n" +"precedente" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Vai alla differenza successiva" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Differenza\n" +"successiva" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Vai al conflitto precedente" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflitto\n" +"precedente" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Vai al conflitto successivo" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Conflitto\n" +"successivo" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Vai al conflitto non risolto precedente" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Non risolto\n" +"precedente" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Vai al conflitto non risolto successivo" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Non risolto\n" +"successivo" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Seleziona righe da A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Scegli\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Seleziona righe da B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Scegli\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Seleziona righe da C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Scegli\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Vai automaticamente al conflitto non risolto successivo dopo aver " +"selezionato la fonte" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Successivo\n" +"automatico" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Mostra spazi e tabulazioni" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "Spazi" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Mostra spazi" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Differenze\n" +"di spazi" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Mostra numeri di riga" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Numeri\n" +"di riga" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Risolvi automaticamente i conflitti semplici" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Imposta le differenze a conflitti" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Esegui la fusione automatica con espressioni regolari" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Risolvi automaticamente i conflitti di cronologia" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Dividi differenze alla selezione" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Unisci le differenze selezionate" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Mostra finestra A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Mostra finestra B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Mostra finestra C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Riassunto normale" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Riassunto tra A e B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Riassunto tra A e C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Riassunto tra B e C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "A capo automatico nelle finestre delle differenze" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Aggiungi allineamento manuale delle differenze" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Cancella tutti gli allineamenti manuali delle differenze" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Attiva la finestra successiva" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Attiva la finestra precedente" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Inverti l'orientamento di divisione" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Vista separata di cartelle e testi" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Cambia tra vista di testi e di cartelle" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Il risultato della fusione non è stato salvato." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Salva ed esci" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Esci senza salvare" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Il salvataggio della fusione non è riuscito." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "È in corso una fusione di cartelle. Vuoi davvero interrompere?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Salvataggio del file..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Salvataggio del file con un nuovo nome..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Salva come..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Stampa non implementata." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Stampa..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Stampa della pagina %1 di %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selezione)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Stampa completata." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Stampa interrotta." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Uscita..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Commutazione della barra degli strumenti..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Commutazione della barra di stato..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Componente per visualizzare immagini SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configura KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Impossibile inizializzare il componente KDiff3.\n" +"Questo di solito accade per problemi di installazione. Per maggiori dettagli " +"leggi il file README nel pacchetto del codice sorgente." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&File" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "C&artella" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operazione di fusione dell'elemento attuale" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operazione di sincronizzazione dell'elemento attuale" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&ovimento" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "V&ista di confronto" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Fo&ndi" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Fi&nestra" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra degli strumenti principale" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorato (definito dall'utente)." + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Strumento per il confronto e la fusione di file e cartelle" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves Conversione a KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Fondi l'ingresso." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "File di base esplicito. Per compatibilità con certi programmi." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "File del risultato. Implica «-m». Per esempio: -o file_nuovo.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "File del risultato, di nuovo. Per compatibilità con certi programmi." + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Senza interfaccia se ogni conflitto è risolvibile automaticamente. Serve «-o " +"file»." + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignora --auto e mostra sempre l'interfaccia." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorato." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Mostra sostituzione del nome per il file di ingresso 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Mostra sostituzione del nome per il file di ingresso 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Mostra sostituzione del nome per il file di ingresso 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Sostituzione del nome visibile alternativo. Da specificare una volta per " +"ogni ingresso." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Ignora un'impostazione di configurazione. Usa una volta per ogni " +"impostazione. Per esempio: «--cs \"AutoAdvance=1\"»" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" +"Mostra la lista delle impostazioni di configurazione e i valori attuali." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Usa un file di configurazione diverso." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "File1 da aprire (base, se non specificato con «--base»)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "File2 da aprire" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "File3 da aprire" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Vedi kdiff3 --help per le opzioni supportate." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Impossibile confrontare un file non normale con un file normale." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Insieme di collegamenti e file normali." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Collegamento: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Dimensione. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data e dimensione: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Confronto del file..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Scegli A ovunque" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Scegli B ovunque" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Scegli C ovunque" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Scegli A per tutti i conflitti non risolti" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Scegli B per tutti i conflitti non risolti" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Scegli C per tutti i conflitti non risolti" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Scegli A per tutti i conflitti di spazi non risolti" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Scegli B per tutti i conflitti di spazi non risolti" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Scegli C per tutti i conflitti di spazi non risolti" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Numero di conflitti non ancora risolti: %1 (di cui %2 sono di spazi)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Il risultato è stato modificato.\n" +"Se continui le modifiche andranno perse." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Tutti i file di ingresso sono uguali a livello binario." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Tutti i file di ingresso contengono lo stesso testo." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "I file %1 e %2 sono uguali a livello binario.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "I file %1 e %2 hanno lo stesso testo.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Numero totale di conflitti: %1\n" +"Numero di conflitti automaticamente risolti: %2\n" +"Numero di conflitti non risolti: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflitti" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Non sono ancora risolti tutti i conflitti.\n" +"File non salvato." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflitti rimanenti" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"C'è un conflitto di stili di fine riga. Seleziona manualmente lo stile.\n" +"File non salvato." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Creazione della copia di sicurezza non riuscita. File non salvato." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Errore nel salvataggio del file" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Errore in scrittura." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Risultato:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modificato]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codifica per il salvataggio:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflitto" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Codec da A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Codec da B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Codec da C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Finestra di dialogo" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Risultato (opzionale):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "File..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Scambia e copia nomi..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Opzionale):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Cartella..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Un elemento di cronologia del controllo di versione consiste di diverse " +"linee.\n" +"Specifica l'espressione regolare per individuarne la prima (senza il " +"commento iniziale).\n" +"Usa le parentesi per raggruppare le chiavi che vuoi usare per " +"l'ordinamento.\n" +"Se la parte sinistra è mancante, KDiff3 assume che siano delle linee vuote a " +"separare gli elementi della cronologia.\n" +"Vedi la documentazione per i dettagli." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Ogni coppia di parentesi usata nell'espressione regolare per la voce di " +"inizio\n" +"della cronologia raggruppa una chiave che può essere usata per " +"l'ordinamento.\n" +"Specifica l'elenco delle chiavi (numerate in ordine di occorrenza a\n" +"partire da 1) usando «,» come separatore (per esempio «4,5,6,1,2,3,7»).\n" +"Se viene lasciato vuoto, non verrà effettuato nessun ordinamento.\n" +"Consulta la documentazione per i ulteriori dettagli." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Espressione regolare per le righe dove Kdiff3 dovrebbe scegliere " +"automaticamente una fonte.\n" +"Quando una riga con un conflitto corrisponde all'espressione regolare,\n" +"sarà scelto (se disponibile) C, altrimenti B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Espressione regolare per l'inizio dell'elemento di cronologia del controllo " +"di versione.\n" +"Di solito questa riga contiene la parola chiave «$Log$».\n" +"Valore predefinito: «.*\\$Log.*\\$.*»." + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"La rapida volpe marrone salta sul fiume \n" +"ma la gallina rossa scappa con un brivido.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Cambia tipo di carattere" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Carattere: %1, %2, %3\n" +"\n" +"Esempio:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Cambialo se i caratteri non-ASCII non vengono mostrati correttamente." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configura" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Carattere" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Carattere per l'editor e per il risultato delle differenze" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Carattere applicazione" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Carattere vista file" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Colore" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Impostazioni dei colori" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editor e visore delle differenze:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Colore di primo piano:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Colore di sfondo:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Colore di sfondo per le differenze:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Colore per A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Colore per B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Colore per C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Colore per i conflitti:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Colore di sfondo per l'intervallo attuale:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Colore di sfondo per le differenze dell'intervallo attuale:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Colore per intervalli di differenze allineate manualmente:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Vista di confronto delle cartelle:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Colore del file più recente:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Il cambiamento di questo colore sarà applicato quando avvierai un nuovo " +"confronto tra cartelle." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Colore del file più vecchio:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Colore del file di età media:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Colore per file mancanti:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportamento dell'editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Il tabulatore inserisce spazi" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Attivo: premere il tabulatore è come inserire l'appropriato numero di " +"spazi.\n" +"Non attivo: viene inserito un carattere di tabulazione." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Dimensione della tabulazione:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Rientro automatico" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Attivo: la nuova riga avrà lo stesso rientro della riga precedente.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Copia automaticamente la selezione" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Attivo: ogni selezione è immediatamente copiata negli appunti.\n" +"Non attivo: devi esplicitamente copiarla, per esempio con Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Rilevamento automatico" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Imposta il fine riga da usare quando salvi un file modificato:\n" +"DOS/Windows: CR+LF; Unix: LF; dove CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Differenze" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Impostazioni delle differenze" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignora i numeri (tratta come spazio)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignora i caratteri numerici durante il confronto (simile a «Ignora spazi»).\n" +"Può essere utile per confrontare file con dati numerici." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignora i commenti C e C++ (tratta come spazio)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tratta i commenti C e C++ come spazi." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignora maiuscole/minuscole (tratta come spazio)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Tratta le differenze tra maiuscole e minuscole come modifiche di spazi " +"(«a»<=>«A»)." + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Comando per il preprocessore:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Preprocessore definito dall'utente; vedi il manuale per maggiori dettagli." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Preprocessore per il confronto di righe:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Questo preprocessore viene utilizzato solo\n" +"per verificare la corrispondenza di righe;\n" +"vedi il manuale per maggiori dettagli." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Ricerca approfondita (lenta)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Abilita l'opzione --minimal del comando «diff» esterno.\n" +"L'analisi di grandi file sarà molto più lenta." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Allinea B e C per tre file di ingresso" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Cerca di allineare B e C quando si confrontano o fondono tre file di " +"ingresso.\n" +"Non è raccomandato per la fusione perché potrebbe divenire più complicata.\n" +"Come impostazione predefinita è disattivato." + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Fondi" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Impostazioni di fusione" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Ritardo nell'avanzamento automatico (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Quando si è in modalità di avanzamento automatico, il risultato della\n" +"selezione attuale viene mostrato per il tempo specificato, prima di\n" +"passare al conflitto successivo. Valori ammessi: 0-2000 ms." + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Mostra finestre informative" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Mostra una finestra con informazioni sul numero di conflitti." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Trattamento predefinito degli spazi nel fondere due file:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Scelta manuale" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Consenti all'algoritmo di fusione di selezionare automaticamente un ingresso " +"per le modifiche di soli spazi." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Trattamento predefinito degli spazi nel fondere tre file:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Espressione regolare di fusione automatica" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Espressione regolare di fusione automatica:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Esegui la fusione automatica con espressioni regolari all'avvio della fusione" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Esegui la fusione per le espressioni regolari di fusione\n" +"automatica all'avvio dell'operazione.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Fusione della cronologia del controllo di versione" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Espressione regolare dell'inizio di cronologia:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Espressione regolare di inizio dell'elemento di cronologia:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ordinamento della fusione della cronologia" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ordina la cronologia del controllo di versione secondo una chiave." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" +"Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Fondi la cronologia del controllo di versione all'inizio della fusione" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Esegui la fusione automatica della cronologia del controllo di versione " +"all'inizio della fusione." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Numero massimo di elementi nella cronologia:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Taglia al numero specificato. Usa -1 per un numero infinito di voci." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Prova le espressioni regolari" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Comando di fusione irrilevante:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Se specificato questo script viene eseguito dopo la fusione\n" +"automatica quando non sono rilevati altri cambiamenti rilevanti.\n" +"Chiamato con i parametri: nome_file1 nome_file2 nome_file3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Salvataggio automatico e uscita in caso di fusione senza conflitti" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Quando KDiff3 viene avviato per una fusione di file dalla riga di comando\n" +"e tutti i conflitti sono risolvibili senza azione da parte dell'utente,\n" +"salva automaticamente ed esci.\n" +"È simile all'opzione da riga di comando «--auto»." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Cartelle ricorsive" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Se analizzare o no anche le sottocartelle." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Schemi di file:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Schemi di file da analizzare.\n" +"Caratteri jolly: «*» e «?».\n" +"Si possono specificare più schemi con il separatore «;»." + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Schemi di file da escludere:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Schemi di file da escludere dall'analisi.\n" +"Caratteri jolly: «*» e «?».\n" +"Si possono specificare più schemi con il separatore «;»." + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Schemi di cartelle da escludere:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Schemi di cartelle da escludere dall'analisi.\n" +"Caratteri jolly: «*» e «?».\n" +"Si possono specificare più schemi con il separatore «;»." + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Usa file «ignore»" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Estendi l'esclusione a tutto quello che sarebbe ignorato dal controllo di " +"versione.\n" +"Si possono usare dei file «ignore» diversi per ogni cartella." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Trova file e cartelle nascosti" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Trova file e cartelle nascosti." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Segui i collegamenti dei file" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Attivo: confronta il file a cui punta il collegamento.\n" +"Non attivo: confronta i collegamenti." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Segui i collegamenti delle cartelle" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Attivo: confronta la cartella a cui punta il collegamento.\n" +"Non attivo: confronta i collegamenti." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Distingui le maiuscole nel confronto dei nomi dei file" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Il confronto tra cartelle confronterà file o cartelle quando i loro nomi " +"coincideranno.\n" +"Imposta questa opzione se le lettere maiuscole e minuscole devono essere " +"considerate diverse. L'opzione predefinita per Windows è disattivo, " +"altrimenti è attivo." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Apri tutte le sottocartelle al caricamento" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Attivo: apre tutte le sottocartelle quando avvii una diff tra cartelle.\n" +"Disattivo: lascia chiuse le sottocartelle." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Salta rapporto dello stato della cartella" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Attivo: non mostra lo stato del confronto tra le cartelle.\n" +"Disattivo: mostra la finestra di dialogo dello stato all'avvio." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Modalità di confronto dei file" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Confronto binario" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Confronto binario per ogni file (predefinito)." + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Analisi completa" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Fai un'analisi completa e mostra informazioni statistiche in nuove colonne.\n" +"È più lento di un confronto binario e lentissimo su file binari." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Fidati della grandezza e della data di modifica (non sicuro)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Considera i file uguali se hanno la stessa data di modifica e dimensione.\n" +"I file con contenuti identici ma diverse date di modifica risulteranno " +"diversi.\n" +"Utile per confrontare cartelle grandi o per connessioni lente." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Fidati della grandezza e della data, ma usa il confronto binario se la data " +"non corrisponde (non sicuro)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Considera i file uguali se hanno la stessa data di modifica e dimensione.\n" +"Se le date non sono uguali ma la dimensione sì, usa il confronto binario.\n" +"Utile per confrontare cartelle grandi o per connessioni lente." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Fidati della dimensione (non sicuro)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Considera i file uguali se hanno la stessa dimensione.\n" +"Utile per confrontare cartelle grandi o per connessioni lente,\n" +"dove la data viene modificata nello scaricamento." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Sincronizza cartelle" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Permette di memorizzare i file in entrambe le cartelle,\n" +"in modo che poi risultino uguali.\n" +"Funziona solo quando si confrontano due cartelle\n" +"senza specificare una destinazione." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Differenze di spazi considerate uguali" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Se i file differiscono solo per degli spazi, considerali uguali.\n" +"Funziona solo quando si effettua un'analisi completa." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copia il più recente invece di fondere (non sicuro)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Non guardare i contenuti, prendi il file più recente e basta.\n" +"Usalo solo se sai quello che stai facendo.\n" +"Funziona solo quando si confrontano due cartelle." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Copie di sicurezza (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Quando un file sarebbe stato salvato sovrascrivendone su un altro\n" +"quest'ultimo verrà rinominato con l'estensione «.orig» invece di\n" +"essere cancellato." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Impostazioni locali" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Usa la stessa codifica per tutto:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Permette di cambiare tutte le codifiche cambiando solo la prima.\n" +"Disattivala se servono impostazioni differenziate." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Nota: la codifica locale è «%1»" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Codifica per il file A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Se abilitato, verrà rilevata la codifica Unicode (UTF-16 o UTF-8).\n" +"Se il file non è in Unicode, la codifica selezionata sarà usata come " +"ripiego.\n" +"La rilevazione di Unicode dipende dai primi byte di un file." + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Rileva Unicode automaticamente" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Codifica per il file B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Codifica per il file C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Codifica per il file fuso e il salvataggio:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Seleziona automaticamente" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Se abilitato viene usata la codifica dei file di ingresso.\n" +"Nei casi ambigui una finestra chiederà all'utente di scegliere la codifica " +"per il salvataggio." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Codifica per i file del preprocessore:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Lingue scritte da destra a sinistra" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Alcune lingue si leggono da destra a sinistra.\n" +"Questa opzione cambia in tal senso l'editor e la visualizzazione." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integrazione" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Impostazioni di integrazione" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opzioni da riga di comando da ignorare:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Lista delle opzioni da riga di comando che dovrebbero essere ignorate quando " +"KDiff3 viene usato da altri strumenti.\n" +"Si possono specificare diversi valori se separati con «;»\n" +"Questo eliminerà l'errore «Opzione sconosciuta»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Esci anche con il tasto Esc" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Metodo di uscita veloce.\n" +"Per chi è abituato a usare il tasto Esc." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"Questo ripristina tutte le opzioni, non solo quelle dell'argomento attuale." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Comando del preprocessore: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" +"Le opzioni seguenti che hai selezionato potrebbero modificare dei dati:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Di solito questo non è quello che si vuole in una fusione.\n" +"Vuoi disabilitare queste opzioni o continuare mantenendole in funzione?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opzioni non sicure per la fusione" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Usa queste opzioni nella fusione" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Disattiva le opzioni non sicure" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Caricamento di A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Caricamento di A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Caricamento di B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Caricamento di B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Differenze: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Differenze per righe: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Caricamento di C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Caricamento di C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Differenze: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Differenze: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Differenze per righe: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Differenze per righe: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Tutti i file di ingresso contengono lo stesso testo, ma non sono uguali a " +"livello binario." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"I file %1 e %2 contengono lo stesso testo, ma non sono uguali a livello " +"binario. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Alcuni file di ingresso non sembrano essere file puramente di testo.\n" +"Tieni conto che la fusione di KDiff3 non è fatta per i file binari.\n" +"Se vuoi continuare, lo fai a tuo rischio e pericolo." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Non si è potuto convertire alcuni caratteri in ingresso in Unicode.\n" +"Forse usi la codifica sbagliata (per esempio UTF8 per file non UTF8).\n" +"Non salvare i risultati se non sei sicuro. Continua a tuo rischio e " +"pericolo.\n" +"I file di ingresso in questione sono in %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Interrompi" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Apertura dei file..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Taglio della selezione..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Copia della selezione negli appunti..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Inserimento dei contenuti degli appunti..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "A capo automatico (il comando Annulla lo disabilita)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" +"Calcolo della massima larghezza per la barra di scorrimento orizzontale" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Salva e continua" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continua senza salvare" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Ricerca completata." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Ricerca completata" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" +"Non è selezionato niente in nessuna delle finestre di ingresso delle " +"differenze." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Errore nell'aggiunta di intervalli di differenze manuali" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Annulla" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Scambia %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copia %1->Risultato" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Scambia %1<->Risultato" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configura..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Apri cartella" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Seleziona il nome del file del risultato" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Tutto/Tutti i file (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Testo da cercare:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Distingui le maiuscole" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Cerca in A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Cerca in B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Cerca in C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Cerca nel risultato" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Cerca" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Tester delle espressioni regolari" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Esempio di riga di fusione automatica:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "Per provare la fusione automatica, copia una riga così com'è nei file." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Risultato di corrispondenza:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Esempio di riga di inizio di cronologia (con commento iniziale):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copia una riga di inizio di cronologia così com'è nei file,\n" +"incluso il commento iniziale." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Ordine della chiave d'ordinamento cronologico:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Esempio di riga di inizio di un elemento di cronologia (senza commento " +"iniziale):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copia una riga di inizio di un elemento di cronologia così com'è nei file,\n" +"ma ometti il commento iniziale." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Risultato della chiave di ordinamento:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Confronto riuscito." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Confronto non riuscito." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Le parentesi aperte e chiuse nell'espressione regolare non corrispondono." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "La copia da appunti a file temporaneo non è riuscita." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Dagli appunti" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 non è un file normale." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Il file temporaneo è: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"La pre-elaborazione non sembra riuscita. Controlla questo comando:\n" +"\n" +" %1\n" +"\n" +"Il comando di pre-elaborazione verrà ora disabilitato." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "File %1 troppo grande da elaborare. Verrà saltato." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"La pre-ricerca di righe simili non sembra riuscita. Controlla questo " +"comando:\n" +"\n" +" %1\n" +"\n" +"Il comando di pre-ricerca di righe simili verrà ora disabilitato." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Atteso spazio dopo virgoletta di chiusura." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "La virgoletta non corrisponde." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Carattere di virgoletta inatteso all'interno dell'argomento." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Nessun programma specificato." \ No newline at end of file diff --git a/po/it/kdiff3fileitemactionplugin.po b/po/it/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..6c78145 --- /dev/null +++ b/po/it/kdiff3fileitemactionplugin.po @@ -0,0 +1,102 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the kdiff3 package. +# Federico Zenith , 2011. +# Valter Mura , 2018, 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2020-03-06 19:07+0100\n" +"Last-Translator: Valter Mura \n" +"Language-Team: Italian \n" +"Language: 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" +"X-Generator: Lokalize 19.12.3\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Confronta con %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Fondi con %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Memorizza «%1»" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Fusione a tre con base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Confronta con..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Pulisci elenco" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Confronta" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Confronto a tre" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Informazioni sull'estensione KDiff3 per menu..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Estensione KDiff3 per azioni su file: copyright (C) 2011 di Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Usare l'estensione del menu contestuale:\n" +"Per un confronto semplice di due file selezionati, seleziona «Confronta».\n" +"Se l'altro file è da un'altra parte, «Memorizza» il primo file: apparirà nel " +"sottomenu «Confronta con...». Usa quindi «Confronta con» sul secondo file.\n" +"Per una fusione a tre «Salva» prima il file di base, quindi il ramo da " +"fondere e seleziona «Fusione a tre con base» sull'altro ramo che verrà usato " +"come destinazione.\n" +"Lo stesso vale per il confronto e la fusione tra cartelle." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Informazioni sull'estensione KDiff3 per azioni sui file" \ No newline at end of file diff --git a/po/ja/diff_ext.po b/po/ja/diff_ext.po new file mode 100644 index 0000000..549931a --- /dev/null +++ b/po/ja/diff_ext.po @@ -0,0 +1,125 @@ +msgid "" +msgstr "" +"Project-Id-Version: diff_ext\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2018-08-07 21:05-0700\n" +"Last-Translator: Japanese KDE translation team \n" +"Language-Team: Japanese \n" +"Language: ja\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-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "" + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "" + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "" \ No newline at end of file diff --git a/po/ja/kdiff3.po b/po/ja/kdiff3.po new file mode 100644 index 0000000..4a8c076 --- /dev/null +++ b/po/ja/kdiff3.po @@ -0,0 +1,3653 @@ +# Translation of kdiff3 into Japanese. +# SATOH Satoru , 2004. +# Yukiko Bando , 2008. +# Fumiaki Okushi , 2010. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2010-10-03 21:09-0700\n" +"Last-Translator: Fumiaki Okushi \n" +"Language-Team: Japanese \n" +"Language: ja\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-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "SATOH Satoru,Yukiko Bando" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "ss@kde.gr.jp,ybando@k6.dion.ne.jp" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "ファイルの状態を取得中: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "ファイルを読み込み中: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "ファイルに書き込み中: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "メモリが足りません" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "ディレクトリを作成中: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "ファイルを削除中: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "ファイルを削除中: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "シンボリックリンクを作成中: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "ファイル名を変更中: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "ファイルをコピー中: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "ファイルを読み込み中: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "ディレクトリの内容一覧を作成中: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"データ消失エラー:\n" +"再現可能であれば、プログラムの作者に連絡してください。\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "深刻な内部エラー" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "深刻な内部エラー" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "深刻な内部エラー" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "行がありません" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "エンコーディング:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "改行コード:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (ベース):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "エンコーディング:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "改行コード:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "上部行" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "最後" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "ファイルを開いています..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 ビット" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A を B にコピー" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B を A にコピー" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A を削除" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B を削除" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A と B を削除" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "A にマージ" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "B にマージ" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "A と B にマージ" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "(存在すれば) 削除" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "マージ" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "マージ (手作業)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "エラー: ファイルタイプが衝突しています" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "エラー: 日付は同じですが、ファイルは等しくありません。" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "完了" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "エラー" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "スキップしました。" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "未保存" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "進行中..." + +#: directorymergewindow.cpp:477 +#, fuzzy, kde-format +msgid "To do." +msgstr "To do." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "名前" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "操作" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "状態" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "未解決" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "解決済み" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "ホワイトスペース以外" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "ホワイトスペース" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"ディレクトリマージを実行中です。本当にマージを中止し、ディレクトリを再スキャ" +"ンしますか?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "警告" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "再スキャン" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "マージを続行" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "ディレクトリを開けませんでした:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "ディレクトリ A ‘%1’ は存在しないか、ディレクトリではありません。\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "ディレクトリ B ‘%1’ は存在しないか、ディレクトリではありません。\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "ディレクトリ C ‘%1’ は存在しないか、ディレクトリではありません。\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "ファイルのオープンエラー" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"3 つのディレクトリをマージする場合、マージ先ディレクトリは A や B と同じで" +"あってはいけません。\n" +"続行する前にもう一度確認してください。" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "パラメータ警告" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "ディレクトリをスキャン中..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "ファイルを読み込み中: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "ファイルを読み込み中: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "ファイルを読み込み中: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "いくつかのサブディレクトリが読み込み不可でした" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "サブディレクトリのパーミッションを確認してください。" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "準備完了。" + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "手作業でのマージ数:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "これはすべてのマージ操作に影響します。" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "すべてのマージ操作を更新中" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "処理中" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "この操作は今はできません。" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "操作不可" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "コピー中にエラーが発生しました。\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "マージエラー" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "不明なマージ操作 (これは起きてはならないことです)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "不明なマージ操作です。" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"マージ準備完了\n" +"\n" +"説明を読んで何をしているか分かっているなら「実行」を選択してください。\n" +"\n" +"実行する前にマージの結果を知りたいなら「試行」を選択してください。\n" +"\n" +"このプログラムはまだベータ段階で何が起きても無保証だということに注意してくだ" +"さい!重要なデータはバックアップを取ってください!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "マージ開始" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "実行" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "試行" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"強調表示された項目はディレクトリによってタイプが違います。どうするか選択して" +"ください。" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"ファイルの更新日時は同じですが、ファイルは等しくありません。どうするか選択し" +"てください。" + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"強調表示された項目は一方のディレクトリで変更され、他方のディレクトリで削除さ" +"れました。どうするか選択してください。" + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "ディレクトリマージ中なのでこの操作を実行することはできません。" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"最終段階でエラーが発生しました。\n" +"エラーを起した項目について続行しますか?それともスキップしますか?" + +# @title:window? +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "エラー後のマージ続行" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "最後の項目について続行" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "項目をスキップ" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "マージ操作が完了しました。" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "マージ完了" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "マージ試行完了: この操作をしてもよいか確認してください。" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"エラーが発生しました。詳細情報を見るには「OK」をクリックしてください。\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "エラー: %1 の削除中にバックアップファイルを作成できませんでした。" + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "再帰的にディレクトリを削除 (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "削除 (%1)" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "エラー: ディレクトリの削除がディレクトリの読み込み中に失敗しました。" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "エラー: ディレクトリの削除 (%1) に失敗しました。" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "エラー: 削除に失敗しました。" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "手作業でのマージ (%1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "【注】 手作業でのマージ後に続行するには F7 を押してください。" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"エラー: コピー (%1 -> %2) に失敗しました。既存のコピー先を削除できませんでし" +"た。" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "リンクをコピー (%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "エラー: リンクのコピーに失敗しました。リモートリンクは未サポートです。" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "エラー: リンクのコピーに失敗しました。" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "コピー (%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "名前変更 (%1 -> %2) 中にエラー: 既存のコピー先を削除できません。" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "名前変更 (%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "エラー: 名前変更に失敗しました。" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"ディレクトリの作成 (%1) 中にエラーが発生しました。既存のファイルを削除できま" +"せん。" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "ディレクトリを作成 (%1)" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "ディレクトリの作成中にエラーが発生しました。" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "先" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "タイプ" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "サイズ" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "属性" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "最終更新" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "リンク先" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "ファイル" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "リンク: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "利用不可" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (先): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (元): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (先): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (先): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "先: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "ディレクトリマージの状態を保存..." + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "ディレクトリマージを開始/続行" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "現在の項目について操作を実行" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "選択ファイルを比較 " + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "現在のファイルをマージ " + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"ファイル\n" +"をマージ" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "すべてのサブディレクトリをたたむ" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "すべてのサブディレクトリを展開" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "すべての項目について A を選択" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "すべての項目について B を選択" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "すべての項目について C を選択" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "すべての項目について自動選択" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "すべての項目について操作なし" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "等しいファイルを表示" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"等しい\n" +"ファイル" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "異なるファイルを表示" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "A にのみ存在するファイルを表示" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"A にのみ存在\n" +"するファイル" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "B にのみ存在するファイルを表示" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"B にのみ存在\n" +"するファイル" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "C にのみ存在するファイルを表示" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"C にのみ存在\n" +"するファイル" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "明示的に選択したファイルを比較" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "明示的に選択したファイルをマージ" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "何もしない" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A と B を削除" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "A と B にマージ" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "ファイルを読み込み中: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "%1 の一時コピーの作成に失敗しました。" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "%1 を開けませんでした。" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "%1 からの読み込みエラー" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"バックアップの作成中に古いバックアップを削除できませんでした。\n" +"ファイル名: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"バックアップの作成中に名前変更に失敗しました。\n" +"ファイル名: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "現在の設定:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "設定オプションのエラー:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"オプション --auto を使用していますが、出力ファイルが指定されていません。" + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "オプション --auto はディレクトリ比較時には無視されます。" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "保存に失敗しました。" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "以下のファイルを開けませんでした:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "ファイルのオープンエラー" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "比較のために文書を開きます..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "再読み込み" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "マージ結果を保存します。すべての衝突を解決しなければなりません。" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "現在の文書を別名で保存します..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "差異を印刷します" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "アプリケーションを終了します" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "選択範囲を切り取り、クリップボードに格納します" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "選択範囲をコピーし、クリップボードに格納します" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "クリップボードの内容を現在の位置に貼り付けます" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "現在のウィンドウのすべてを選択します" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "文字列を検索します" + +# StatusTip for FindNext +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "文字列の次のマッチを検索します" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "ステータスバーの表示/非表示を切り替えます" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 を設定..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "現在の異なる部分に移動" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"現在の\n" +"異なる部分" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "最初の異なる部分に移動" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"最初の\n" +"異なる部分" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "最後の異なる部分に移動" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"最後の\n" +"異なる部分" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(ホワイトスペースの表示が無効なときはホワイトスペースの差異をスキップする)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(ホワイトスペースの表示が無効なときもホワイトスペースの差異をスキップしない)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "前の異なる部分に移動" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"前の\n" +"異なる部分" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "次の異なる部分に移動" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"次の\n" +"異なる部分" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "前の衝突に移動" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"前の\n" +"衝突" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "次の衝突に移動" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"次の\n" +"衝突" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "前の未解決の衝突に移動" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"前の\n" +"未解決" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "次の未解決の衝突に移動" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"次の\n" +"未解決" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "A からの選択行" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"選択\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "B からの選択行" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"選択\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "C からの選択行" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"選択\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "ソース選択後に自動的に次の未解決の衝突に移動" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "自動" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "スペースとタブ文字を表示" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"ホワイト\n" +"スペース文字" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "ホワイトスペースを表示" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"ホワイト\n" +"スペース" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "行番号を表示" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "行番号" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "単純な衝突を自動的に解決" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "異なる部分を衝突として設定" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "正規表現による自動マージを実行" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "履歴の衝突を自動的に解決" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "選択した差異を分離" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "選択した差異を結合" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "ウィンドウ A を表示" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "ウィンドウ B を表示" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "ウィンドウ C を表示" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "すべて比較 (標準)" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A と B を比較" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A と C を比較" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B と C を比較" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Diff ウィンドウで行を折り返す" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "次のウィンドウにフォーカス" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "前のウィンドウにフォーカス" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "分割方向を切り替え" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "ディレクトリ/テキスト分割画面表示" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "ディレクトリ表示/テキスト表示を切り替え" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "マージ結果は保存されていません。" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "保存/終了" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "保存せずに終了" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "マージ結果の保存に失敗しました。" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "ディレクトリマージを実行中です。本当に中止しますか?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "ファイルを保存中..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "名前を付けてファイルを保存中..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "名前を付けて保存..." + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +#| msgid "Printing completed." +msgid "Printing not implemented." +msgstr "印刷完了。" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "印刷中..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "選択" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "印刷完了。" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "印刷中止。" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "終了中..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "ツールバーの表示/非表示を切り替え中..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "ステータスバーの表示/非表示を切り替え中..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "KDiff3(&K)" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 を設定" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, fuzzy, kde-format +#| msgid "" +#| "Could not initialize the KDiff part.\n" +#| "This usually happens due to an installation problem. Please read the " +#| "README-file in the source package for details." +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"KDiff part を初期化できませんでした。\n" +"普通これはインストールの問題です。詳細についてはソースパッケージの README " +"ファイルを参照してください。" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "ファイル(&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "現在の項目のマージ操作" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "現在の項目の同期操作" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "移動(&M)" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Diff ビュー(&I)" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "マージ" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "ウィンドウ(&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "メインツールバー" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "ファイルとディレクトリを比較/マージするためのツール" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "入力をマージ" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "明示的にベースファイルを指定 (一部のツールとの互換性のため)" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "出力ファイルを指定。暗示的に -m を指定。例: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "出力ファイルを指定 (一部のツールとの互換性のため)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "すべての衝突を自動解決できる場合は GUI を使用しない (-o file が必要)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "入力ファイル 1 (ベース) の代替表示名" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "入力ファイル 2 の代替表示名" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "入力ファイル 3 の代替表示名" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "代替表示名。一度設定するとすべての入力に適用されます。" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "設定項目と現在の値を一覧表示" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "使用する設定ファイルを指定" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "開く file1 (ベース, --base が未指定の場合)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "開く file2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "開く file3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "リンクと普通のファイルが混在しています。" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "リンク: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "サイズ" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "日付とサイズ: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "ファイルを比較中..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "常に A を選択" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "常に B を選択" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "常に C を選択" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "未解決の衝突について常に A を選択" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "未解決の衝突について常に B を選択" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "未解決の衝突について常に C を選択" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "未解決のホワイトスペースの衝突について常に A を選択" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "未解決のホワイトスペースの衝突について常に B を選択" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "未解決のホワイトスペースの衝突について常に C を選択" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "未解決の衝突の数: %1 (内 %2 はホワイトスペース)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"出力が更新されました。\n" +"続行すると更新内容は失われます。" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "すべての入力ファイルはバイナリ的に同じです。" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "すべての入力ファイルのテキストは同じです。" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "ファイル %1 と %2 はバイナリ的に同じです。\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "ファイル %1 と %2 のテキストは同じです。\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "衝突" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<ソース行なし>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<マージ衝突 (ホワイトスペースのみ)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<マージ衝突>" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"未解決の衝突がまだ残っています。\n" +"ファイルは保存されていません。\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "未解決の衝突があります" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"バックアップファイルの作成に失敗しました。ファイルは保存されていません。" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "ファイルの保存エラー" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "書き込み中にエラーが発生しました。" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "出力" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[更新]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "保存時のエンコーディング" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "衝突" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (ベース):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "出力 (オプション):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "ファイル..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "名前を交換/コピー..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (オプション):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"バージョンコントロール履歴のエントリは複数の行から成ります。\n" +"その最初の行 (先行するコメントを除く) を検出する正規表現を指定します。\n" +"ソートキーをグループ化するには括弧を使います。\n" +"このフィールドを空のままにしておくと、KDiff3 は空行をエントリの区切りと見なし" +"ます。\n" +"詳細についてはドキュメントを参照してください。" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"KDiff3 に自動的にソースを選択させる行を正規表現で指定します。\n" +"正規表現にマッチした行に衝突がある場合、\n" +"C があれば C が、C がなければ B が選択されます。" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"バージョンコントロール履歴エントリの開始を正規表現で指定します。\n" +"通常、開始行には \"$Log$\" キーワードが含まれています。\n" +"標準設定の値: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "ASCII 以外の文字が適切に表示されなければ、これを変更してください。" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "設定" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "フォント" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "エディタ/Diff 出力のフォント" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "ファイルの保存エラー" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "色" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "色の設定" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "エディタ/Diff ビュー:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "前景色:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "背景色:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Diff 背景色:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "色 (A):" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "色 (B):" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "色 (C):" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "色 (衝突):" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "現在の範囲の背景色:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "現在の範囲の diff 背景色:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "ディレクトリ比較ビュー:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "最も新しいファイルの色:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "色の変更は次回ディレクトリ比較を開始したときに有効になります。" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "最も古いファイルの色:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "中間のファイルの色:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "欠落したファイルの色:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "エディタ" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "エディタの挙動" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "タブでスペースを挿入する" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"オン: タブを押すと適切な数のスペースが挿入されます。\n" +"オフ: タブ文字が挿入されます。" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "タブサイズ:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "自動字下げ" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "オン: 新しい改行に前の行の字下げを使います。\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "選択を自動的にコピーする" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"オン: すべての選択は直ちにクリップボードに格納されます。\n" +"オフ: Ctrl+C などで明示的にコピーする必要があります。" + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "ウィンドウ(&W)" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "自動選択" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"編集したファイルの保存時に使用する改行コードを設定します。\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff の設定" + +# 「...を無視する」オプションの補足説明として括弧内に表示される +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "ホワイトスペースとして扱う" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"行マッチ時に数字の違いを無視します。(ホワイトスペースの違いを無視に類似)\n" +"数字データファイルを比較する際に有効です。" + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ コメントをホワイトスペースとして扱います。" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ コメントをホワイトスペースとして扱います。" + +# 「...を無視する」オプションの補足説明として括弧内に表示される +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "ホワイトスペースとして扱う" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"大文字と小文字の違いをホワイトスペースの違いと同様に扱います。('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "プリプロセッサコマンド:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "ユーザ定義プリプロセッサ (詳細についてはドキュメントを参照)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "行マッチプリプロセッサコマンド:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"このプリプロセッサは行マッチ時にだけ使われます。\n" +"(詳細についてはドキュメントを参照)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "より小さい差分を見つける (遅い)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"外部 diff コマンドについて --minimal オプションを有効にします。\n" +"大きなファイルでは処理速度が非常に遅くなります。" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "マージ" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "マージの設定" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "自動前進の遅延 (ミリ秒):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"自動前進モードでは、指定した時間 (0-2000 ミリ秒) ごとに自動的に次の衝突に移動" +"します。" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "情報ダイアログを表示" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "ホワイトスペース 2 ファイルマージのデフォルト:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "手作業で選択" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"差異がホワイトスペースのみの場合にマージアルゴリズムが自動的に入力を選択する" +"ようにできます。" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "ホワイトスペース 3 ファイルマージのデフォルト:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "自動マージの正規表現" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "自動マージの正規表現:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "マージ開始時に正規表現による自動マージを実行する" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "マージ開始時に正規表現による自動マージを実行します。\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "バージョンコントロール履歴マージ" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "履歴開始の正規表現:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "履歴エントリ開始の正規表現:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "履歴マージのソート" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "バージョンコントロール履歴をキーでソートします。" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "マージ開始時にバージョン履歴をマージする" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "マージ開始時に自動的にバージョン履歴をマージします。" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "履歴の最大エントリ数:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"指定した数以降のエントリは削除されます。数を制限しない場合は -1 に設定してく" +"ださい。" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "正規表現をテスト" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "衝突がなければマージ後に自動的に保存して終了する" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"ファイルマージのために KDiff3 がコマンドラインから起動された場合、\n" +"すべての衝突が自動解決できるときは、自動的に保存して終了します。\n" +"(コマンドラインオプションの --auto に類似)" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "ディレクトリを再帰的に解析する" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "サブディレクトリを解析するかどうかを指定します。" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "ファイルパターン:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"解析するファイルのパターン。\n" +"ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n" +"複数のパターンを指定する場合はセミコロン (;) で区切ります。" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "ファイル否定パターン:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"解析から除外するファイルのパターン。\n" +"ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n" +"複数のパターンを指定する場合はセミコロン (;) で区切ります。" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "ファイル否定パターン:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"解析から除外するファイルのパターン。\n" +"ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n" +"複数のパターンを指定する場合はセミコロン (;) で区切ります。" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr ".cvsignore を使う" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"CVS で無視されるすべてについて否定パターンを拡張します。\n" +"ローカルの ‘.cvsignore’ ファイルによってディレクトリ固有に利用できます。" + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "隠しファイル/ディレクトリを検索する" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "隠しファイル/ディレクトリを検索する" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "ファイルリンクを追跡する" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"オン: リンク先のファイルを比較します。\n" +"オフ: リンクを比較します。" + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "ファイルリンクを追跡する" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"オン: リンク先のファイルを比較します。\n" +"オフ: リンクを比較します。" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "大文字と小文字を区別してファイル名を比較する" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"ディレクトリ比較は名前が一致するファイルおよびディレクトリを比較します。\n" +"名前の大文字/小文字も一致しなければならない場合は、このオプションを有効にして" +"ください。\n" +"(Windows の標準はオフ、その他ではオンです)" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "すべてのサブディレクトリを展開" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "ファイル比較モード" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "バイナリ比較" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "それぞれのファイルをバイナリ比較します。(標準)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "完全分析" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"完全な比較を実行し、統計情報を別のカラムに表示します。\n" +"(バイナリ比較より遅く、バイナリファイルの場合は非常に時間がかかります)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "サイズと更新日時を信用する (危険)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"ファイルのサイズと更新日時が等しければ、同一のファイルと見なします。\n" +"内容が同じで更新日時が異なるファイルは、異なるファイルとして示されます。\n" +"大きなディレクトリや遅いネットワークで有用です。" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "サイズと更新日時を信用し、日時が異なる場合はバイナリ比較する (危険)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"ファイルのサイズと更新日時が等しければ、同一のファイルと見なします。\n" +"サイズが同じで日時が異なる場合は、バイナリ比較を行います。\n" +"大きなディレクトリや遅いネットワークで有用です。" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "サイズを信用する (危険)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"ファイルのサイズが等しければ、同一のファイルと見なします。\n" +"大きなディレクトリやダウンロード中に更新日時が変わってしまうような遅いネット" +"ワークで有用です。" + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "ディレクトリを同期する" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"両方のディレクトリが同じになるようにファイルを配置します。\n" +"方向を指定せずに二つのディレクトリをマージする場合にのみ機能します。" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "ホワイトスペースの違いを無視する" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"ファイルの差異がホワイトスペースだけの場合は等しいものと見なします。\n" +"このオプションは完全分析が選択されているときにのみアクティブになります。" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "マージではなく、より新しいものをコピー (危険)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"内容を調べずに単により新しいファイルを取ります。\n" +"(何をしているのか分かっている場合にのみ使用してください)\n" +"二つのディレクトリを比較しているときのみ有効です。" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "バックアップファイル (.orig) を残す" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"ファイルを上書き保存する際に、‘.orig’ 拡張子を付けて元のファイルを残します。" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "言語の設定" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "すべてに同じエンコーディングを使う:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"このオプションを有効にすると、最初を変更するだけですべてのエンコーディングを" +"同時に変更できます。\n" +"それぞれに個別に設定する必要がある場合は、無効にしてください。" + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "現在のロカールエンコーディング: " + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "A のファイルのエンコーディング:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"これを有効にすると、Unicode (UTF-16 または UTF-8) を自動検出します。\n" +"ファイルのエンコーディングが Unicode でない場合は、選択されたエンコーディング" +"を使います。\n" +"(Unicode 自動検出はファイルの最初の数バイトを調べます)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Unicode 自動検出" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "B のファイルのエンコーディング:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "C のファイルのエンコーディング:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "マージ出力と保存時のエンコーディング:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "自動選択" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"これを有効にすると、入力ファイルのエンコーディングが使われます。\n" +"不確かな場合はダイアログが表示され、保存時のエンコーディングを選択するよう促" +"されます。" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "プリプロセッサファイルのエンコーディング:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "右から左に読む言語" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"右から左に読む言語で有効にします。\n" +"この設定によってビューアとエディタの表示が変わります。" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "統合" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "統合の設定" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "無視するコマンドラインオプション:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"KDiff3 が他のツールによって使用されるときに無視すべきコマンドラインオプション" +"のリストです。\n" +"複数のオプションはセミコロン (;) で区切って指定してください。\n" +"これによって \"不明なオプション\" エラーを抑制できます。" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"現在のトピックだけでなく、すべてのオプションを標準設定にリセットします。" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "プリプロセッサコマンド: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "選択された以下のオプションはデータを変えてしまう可能性があります:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"通常これはマージ中には望ましくないと考えられます。\n" +"これらのオプションを無効にしますか?それともこのままマージを続行しますか?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "危険なマージオプション" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "このまま続行" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "危険なオプションを無効にする" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A を読み込み中" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "A を読み込み中" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B を読み込み中" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "A を読み込み中" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linediff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C を読み込み中" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "A を読み込み中" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"すべての入力ファイルのテキストは同じですが、バイナリ的に等しくありません。" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"ファイル %1 と %2 のテキストは同じですが、バイナリ的に等しくありません。\n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"入力ファイルのいくつかはテキストファイルではないようです。\n" +"KDiff3 のマージはバイナリデータでの使用を想定していません。\n" +"自己責任で続行してください。" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "中止" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "ファイルを開いています..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "選択範囲を切り取り..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "選択範囲をクリップボードにコピー..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "クリップボードの内容を挿入..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "保存/続行" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "保存せずに続行" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "検索が完了しました。" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "検索完了" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, fuzzy, kde-format +msgid "Error while adding manual diff range" +msgstr "ディレクトリ作成中にエラー" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "キャンセル(&C)" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "交換 %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "コピー %1->出力" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "交換 %1<->出力" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "設定..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "ファイルを開いています..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "検索テキスト:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "大文字と小文字を区別する" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "A を検索" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "B を検索" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "C を検索" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "出力を検索" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "検索(&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "正規表現テスター" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "自動マージのテスト行:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "自動マージをテストするために、既存のファイルから 1 行コピーします。" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "マッチ結果:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "履歴開始行の例 (先行するコメントを含めて):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "履歴の開始行を先行するコメントを含めて既存のファイルからコピーします。" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "履歴ソートキーの順序:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "履歴エントリ開始行の例 (先行するコメントを含めずに):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"履歴エントリの開始行を先行するコメントを含めずに既存のファイルからコピーしま" +"す。" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "ソートキーの結果:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "マッチ成功" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "マッチ失敗" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "正規表現中の左右の括弧が一致していません。" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "クリップボードのデータを一時ファイルに書き込めませんでした。" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "クリップボードから" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "リンクと普通のファイルが混在しています。" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/ja/kdiff3fileitemactionplugin.po b/po/ja/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..2f9a473 --- /dev/null +++ b/po/ja/kdiff3fileitemactionplugin.po @@ -0,0 +1,89 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2011-05-06 23:50-0700\n" +"Last-Translator: Japanese KDE translation team \n" +"Language-Team: Japanese \n" +"Language: ja\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-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" \ No newline at end of file diff --git a/po/ka/kdiff3.po b/po/ka/kdiff3.po new file mode 100644 index 0000000..0503d62 --- /dev/null +++ b/po/ka/kdiff3.po @@ -0,0 +1,3573 @@ +# translation of kdiff3.po to Georgian +# +# Rusudan Tsiskreli , 2006. +# რუსუდან ცისკრელი , 2006. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2006-03-28 01:44+0400\n" +"Last-Translator: Giasher \n" +"Language-Team: \n" +"Language: ka\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.2\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "ფაილის მდგომარეობის მიღება: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "ფაილის წაკითხვა: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "ფაილის ჩაწერა: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "მეხსიერება არაა საკმარისი" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "დირექტორიის შექმნა: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "ფაილის წაშლა: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "ფაილის წაშლა: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "სიმბოლური ბმულის შექმნა: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "ფაილის სახელის გადარქმევა: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "ფაილის ასლი: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "ფაილის წაკითხვა: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "დირექტორიის სია: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, fuzzy, kde-format +#| msgid "" +#| "Data loss error:\n" +#| "If it is reproducable please contact the author.\n" +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"მონაცემების დაკარგვის შეცდომა:\n" +"თუ ეს მეორდება, გთხოვთ დაუკავშირდეთ ავტორს.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "მკაცრი შინაგანი შეცდომა" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "მკაცრი შინაგანი შეცდომა" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "მკაცრი შინაგანი შეცდომა" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "ხელმიუწვდომელია" + +#: difftextwindow.cpp:1891 +#, fuzzy, kde-format +#| msgid "File Encoding for A:" +msgid "Encoding:" +msgstr "ფაილის კოდირება A-თვის:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "ხაზის დასარულის სტილი:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (ფუძე):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "File Encoding for A:" +msgid "Encoding: %1" +msgstr "ფაილის კოდირება A-თვის:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "ხაზის დასარულის სტილი:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, fuzzy, kde-format +msgid "Top line" +msgstr "ზედა ხაზი %1" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "დასასრული" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "ფაილთა გახსნა..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "უნიკოდი, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A-ს ასლი B-ში" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B-ს ასლი A-ში" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A-ს წაშლა" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B-ს წაშლა" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A და B-ს წაშლა" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "შერწყმა A-სკენ" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "შერწყმა B-სკენ" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "შერწყმა A და B-სკენ" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "წაშლა (თუ არსებობს)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "შერწყმა" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "შერწყმა (ხელით)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "შეცდომა: კონფლიქტურ ფაილთა ტიპები" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "შეცდომა: თარიღები იდენტურია, მარა ფაილები არა." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "შესრულებულია." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +#| msgid "Error." +msgid "Error" +msgstr "შეცდომა." + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "გაცდენილია." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "არაა შენახული." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "მიმდინარეობს..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "გასაკეთებელი." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "სახელი" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "ოპერაცია" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "სტატუსი" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "გადაუჭრელი" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "გადაჭრილი" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "არათეთრი" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "თეთრი" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"თქვენ ახლა დირექტორიების შერწყმას ახორციელებთ.დარწმუნებული ხართ რომ გსურთ " +"შერწყმის შეწყვეტა და დირექტორიის თავიდან სკანირება?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "თავიდან სკანირება" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "შერწყმის გაგრძელება" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "დირექტორიის გახსნა ვერ შედგა:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Dir A \"%1\" არ არსებობს ან არ არის დირექტორია.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Dir B \"%1\" არ არსებობს ან არ არის დირექტორია.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Dir C \"%1\" არ არსებობს ან არ არის დირექტორია.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "ფაილის გახსნის შეცდომა" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"დანიშნულების დირექტორია არ უნდა იყოს იგივე A ან B როდესაც ხდება სამი " +"დირექტორიის შერწყმა.\n" +"გაგრძელებამდე კიდევ შეამოწმეთ." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "გაფრთხილების პარამეტრი" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "დირექტორიების სკანირება..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "ფაილის წაკითხვა: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "ფაილის წაკითხვა: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "ფაილის წაკითხვა: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "ზოგიერთი ქვედირექტორიის წაკითხვა ვერ განხორციელდა" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "ქვედირექტორიების უფლებების შემოწმება." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "მზად." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "ხელით შერწყმების რაოდენობა:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "ეს მოსდის ყველა შერწყმის ოპერაციას." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "ყველა შერწყმის ოპერაციების შეცვლა" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "მიმდინარეობა " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "ეს ოპერაცია ახლა შეუძლებელია." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "ოპერაცია შეუძლებელია" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "ასლის გაკეთებისას შეცდომა მოხდა.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "შერწმის შეცდომა" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "შერწყმის უცნობი ოპერაცია. (ეს არასდროს არ უნდა მომხდარიყო!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "შერწყმის უცნობი ოპერაცია." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"შერწყმა საცაა დაიწყება.\n" +"\n" +"აირჩიეთ \"გაკეთება\" თუ წაიკითხეთ ინსტრუქცია და იცით რას აკეტებთ.\n" +"\"სიმულაციის\" არჩევით გაიგებტ რა მოხდება.\n" +"\n" +"გაითვალისწინეთ ეს პროგრამა ჯერ კიდევ ბეტაა და არანაერი გარანტია არ არსებობს! " +"სასიცოცხლო მნიშვნელობის მონაცემების სარეზერვო ასლები გააკეთეთ!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "შერწყმის დაწყება" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "გააკეთე" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "სიმულაცია" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"მარკირებული ელემენტი სხვადასხვა დირექტორიებში სხვადასხვაა. აირჩიეთ რა ქნათ." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"ფაილის მოდიფიკაციის თარიღები იდენტურია მარა ფაილები არა. აირჩიეთ რა გააკეთოთ." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"მარკირებული ელემენტი სხვადასხვა დირექტორიებში სხვადასხვაა. აირჩიეთ რა ქნათ." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"ოპერაცია ახლა შეუძლებელია, რადგან დირექტორიათა შერწყმა უკვე გაშვებულია." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"უკანასკნელ ნაბიჯში შეცდომა მოხდა.\n" +"გსურთ ამ ელემენტით გაგრძელება, რომლის გამოც გდება შეცდომა, თუ გსურთ " +"გადაახტეთ მას?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "შეცდომის შემდეგ შერწმის გაგრძელება" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "უკანასკნელი ელემენტით გაგრძელება" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "ელემენტის გაცდენა" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "შერწყმის ოპერაცია დასრულდა." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "შერწყმა დასრულდა" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"შერწყმის სიმულაცია დასრულდა: შეამოწმეთ თუ ეთანხმებით შემოთავაზებულ " +"ოპერაციებს." + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "შეცდომა მოხდა. დააწკაპუნეთ OK დეტალური ცნობების სანახავად.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "შეცდომა: %1-ს წასლის დროს: სარეზერვო ასლის შექმნა ვერ შედგა." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "დირექტორიის რეკურსიულად წაშლა( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "წაშლა( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "შეცდომა: დირექტორიის წაშლის ოპერაცია ვერ შედგა წაკითხვის მცდელობისას." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "შეცდომა: rmdir( %1 ) ოპერაცია ვერ შედგა." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "შეცდომა: წაშლის ოპპერაცია ვერ შედგა." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ხელით შერწყმა( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" გაითვალისწინეთ: ხელით შერწყმის შემდეგ მომხმარებელმა უნდა გააგრძელოს F7-" +"ის დაჭერით." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"შეცდომა: ასლი( %1 -> %2 ) ვერ შედგა.არსებული დანიშნულების ფაილის წაშლა ვერ " +"შედგა." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"შეცდომა copyLink ვერ შედგა: დაშორებული ბმულები ჯერ არ არის მხარდაჭერილი." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "შეცდომა: copyLink ვერ შედგა." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "ასლი( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"შეცდომა სახელის გადარქმევისას( %1 -> %2 ): არსებული დანიშნულების წაშლა " +"შეუძლებელია." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rename( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "შეცდომა: სახელის გადარქმევა ვერ შედგა." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "შეცდომა %1-ს makeDir-ის დროს. არსებული ფაილის წაშლა შეუძლებელია," + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "დირექტორიის შექმნისას შეცდომა." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "ტიპი" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "ზომა" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "უკანასკნელად ჩასწორებულია" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "ბმულის დანიშნულება" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "File..." +msgid "File" +msgstr "ფაილი..." + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "ბმული: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ხელმიუწვდომელია" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (ფუძე): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest:" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +msgid "Save Folder Merge State As..." +msgstr "დირექტორიათა შერწყმა" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "დირექტორიის შერწყმის დაწყება/გაგრძელება" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "მიმდინარე ელემენტიდან ოპერაციის გაშვება" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "მონიშნული ფაილების შედარება" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "მიმდინარე ფაილის შერწყმა" + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "" +"Merge\n" +"File" +msgstr "შერწყმა" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "ყველა ქვედირექტორიის ჩაკეცვა" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "ყველა ქვედირექტორიის არჩაკეცვა" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "A -თვის ყველა ელემენტების არჩევა" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "B -თვის ყველა ელემენტების არჩევა" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "C -თვის ყველა ელემენტების არჩევა" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "ყველა ელემენტების ოპერაციების ავტო-არჩევა" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "ყველა ელემენტისთვის არავითარი ოპერაცია" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, fuzzy, kde-format +msgid "Show Different Files" +msgstr "განსხვავებული ფაილების რაოდენობა:" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, fuzzy, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "მონიშნული ფაილების შედარება" + +#: directorymergewindow.cpp:2982 +#, fuzzy, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "მონიშნული ფაილების შედარება" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "არაფრის არ გაკეთება" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A და B წაშლა" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "შერწყმა A და B-სკენ" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "ფაილის წაკითხვა: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "%1-ს დროებითი ასლის შექმნა ვერ შედგა." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "%1-ს გახსნა ვერ შედგა." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "%1-ს წაკითხვის შეცდომა" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"სარეზერვო ასლის გაკეთების მცდელობისას, ძველი სარეზერვო ასლის წაშლა ვერ " +"შედგა. \n" +"ფაილის სახელი: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"სარეზერვო ასლის გაკეთების მცდელობისას, სახელის გადარქმევა ვერ შედგა. \n" +"ფაილის სახელები: " + +#: kdiff3.cpp:163 +#, fuzzy, kde-format +msgid "Current Configuration:" +msgstr "მიმდინარე ელემენტის სინქრონიზაციის ოპერაცია" + +#: kdiff3.cpp:168 +#, fuzzy, kde-format +msgid "Config Option Error:" +msgstr "ფაილის გახსნის შეცდომა" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"პარამეტრი --auto გამოყენებულია, მაგრამ გამონატანი ფაილი არაა მითითებული." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "პარამეტრი --auto დირექტორიების შედარებისთვის იგნორირებულია." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "შენახვა ვერ შედგა." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "ამ ფაილების გახსნა ვერ შედგა:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "ფაილის გახსნის შეცდომა" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "ხსნის დოკუმენტებს შესადარებლად..." + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +#| msgid "Ready." +msgid "Reload" +msgstr "მზად." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "ინახავს შერწყმის შედეგებს. ყველა კონფლიქტი უნდა გადაიჭრას!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "მიმდინარე დოკუმენტს ინახავს როგორც..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "პროგრამის დახურვა" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "ჭრის მონიშნულ სექციას და გაცვლით ბუფერში ათავსებს" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "მონიშნულ სექციის ასლს ქმნის გაცვლით ბუფერში" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "გაცვლის ბუფერის შემადგენლობას სვამს მიმდინარე პოზიციაზე" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "სტრიქონის ძიება" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "სტრიქონის თავიდან ძიება" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "სტატუსის ველს რთავს" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 კონფიგურაცია..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "მიმდინარე დელტაზე გადასვლა" + +#: kdiff3.cpp:606 +#, fuzzy, kde-format +#| msgid "Go to Current Delta" +msgid "" +"Current\n" +"Delta" +msgstr "მიმდინარე დელტაზე გადასვლა" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "პირველ დელტაზე გადასვლა" + +#: kdiff3.cpp:608 +#, fuzzy, kde-format +#| msgid "Go to First Delta" +msgid "" +"First\n" +"Delta" +msgstr "პირველ დელტაზე გადასვლა" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "უკანასკნელ დელტაზე გადასვლა" + +#: kdiff3.cpp:610 +#, fuzzy, kde-format +#| msgid "Go to Last Delta" +msgid "" +"Last\n" +"Delta" +msgstr "უკანასკნელ დელტაზე გადასვლა" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "წინა დელტაზე გადასვლა" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +#| msgid "Go to Previous Delta" +msgid "" +"Prev\n" +"Delta" +msgstr "წინა დელტაზე გადასვლა" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "შემდეგ დელტაზე გადასვლა" + +#: kdiff3.cpp:616 +#, fuzzy, kde-format +#| msgid "Go to Next Delta" +msgid "" +"Next\n" +"Delta" +msgstr "შემდეგ დელტაზე გადასვლა" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "წინა კონფლიქტზე გადასვლა" + +#: kdiff3.cpp:618 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "" +"Prev\n" +"Conflict" +msgstr "კონფლიქტები" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "შემდეგ კონფლიქტზე გადასვლა" + +#: kdiff3.cpp:620 +#, fuzzy, kde-format +#| msgid "Go to Next Conflict" +msgid "" +"Next\n" +"Conflict" +msgstr "შემდეგ კონფლიქტზე გადასვლა" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "წინა გადაუჭრელ კონფლიქტზე გადასვლა" + +#: kdiff3.cpp:622 +#, fuzzy, kde-format +#| msgid "Unsolved" +msgid "" +"Prev\n" +"Unsolved" +msgstr "გადაუჭრელი" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "შემდეგ გადაუჭრელ კონფლიქტზე გადასვლა" + +#: kdiff3.cpp:624 +#, fuzzy, kde-format +#| msgid "Unsolved" +msgid "" +"Next\n" +"Unsolved" +msgstr "გადაუჭრელი" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "აირჩიეთ ხაზ(ებ)ი A-დან" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "აირჩიეთ ხაზ(ებ)ი B-დან" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "აირჩიეთ ხაზ(ებ)ი C-დან" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "წყაროს არჩევისას ავტომატურად გადასვლა შემდეგ გადაუჭრელ კონფლიკტზე" + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "მონიშვნის ავტო ასლი" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "ღარების ჩვენება და ტაბულაციის სიმბოლოების განსხვავებისთვის" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "ხაზების ნომრების ჩვენება" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +#| msgid "Show Line Numbers" +msgid "" +"Line\n" +"Numbers" +msgstr "ხაზების ნომრების ჩვენება" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "მარტივი კონფლიქტების ავრომატურად გადაჭრა" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "კონფლიქტებისთვის დელტას მინიჭება" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, fuzzy, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "მარტივი კონფლიქტების ავრომატურად გადაჭრა" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, fuzzy, kde-format +msgid "Join Selected Diffs" +msgstr "მონიშნული ფაილების შედარება" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "ფანჯარა A-ს ჩვენება " + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "ფანჯარა B-ს ჩვენება" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "ფანჯარა C-ს ჩვენება" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "ჩვეულებრივი გადახედვა" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A წინააღმდეგ B გადახედვა" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A წინააღმდეგ C გადახედვა" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B წინააღმდეგ C გადახედვა" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Word Wrap Diff ფანჯრები" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "ფოკუსი შემდეგ ფანჯარაზე" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "ფოკუსი წინა ფანჯარაზე" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "გახლეჩვის ორიენტაციის გადართვა" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "დირექტორიისა და ტექსტი განლაგების ეკრანის ხედი" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "დირექტორიათა და ტექსტის ხედებს შორის გადართვა" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "შერწყმის შედეგები არ იყო შენახული." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "შენახვა და გასვლა" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "გასვლა შენახვის გარეშე" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "შერწყმის შედეგების შენახვა ვერ შედგა." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "თქვენ ახლა დირექტორიათა შერწყმას აკეთებთ. ნამდვილად გსურთ შეწყვეტა?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "ფაილის შენახვა..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "ფაილის ახალი სახელით შენახვა..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +msgid "Printing not implemented." +msgstr "შერწყმის ოპერაცია დასრულდა." + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +msgid "Printing..." +msgstr "გამოსვლა..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Select Another Font" +msgid " (Selection)" +msgstr "სხვა შრიფტის ამორჩევა" + +#: kdiff3.cpp:1025 +#, fuzzy, kde-format +msgid "Printing completed." +msgstr "შერწყმის ოპერაცია დასრულდა." + +#: kdiff3.cpp:1029 +#, fuzzy, kde-format +msgid "Printing aborted." +msgstr "შერწყმის ოპერაცია დასრულდა." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "გამოსვლა..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "ხელსაწყოთა პანელის გადართვა..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "სტატუსის ზოლის გადართვა..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 კონფიგურაცია" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, fuzzy, kde-format +#| msgid "" +#| "Could not find our part!\n" +#| "This usually happens due to an installation problem. Please read the " +#| "README-file in the source package for details." +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"ჩვენი ნაწილი ვერ მოიძებნა!\n" +"ეს როგორც წესი დაყენების პრობლემების გამო ხდება. გთხოვთ წაიკითხოთ README-" +"ფაილი წყაროს პაკეტში დამასტებითი ცნობებისთვის." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +#| msgid "File..." +msgid "&File" +msgstr "ფაილი..." + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "მიმდინარე ელემენტის შერწყმის ოპერაცია" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "მიმდინარე ელემენტის სინქრონიზაციის ოპერაცია" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&მოძრაობა" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iffview" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "შერწყმა" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&ფანჯარა" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "ფაილების და საქაღალდეების შედარების და შერწყმის ხელსაწყოები" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "შეტანის შერწყმა." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "გამონატანის ფაილი. Implies -m. E.g.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"გამონატანის ფაილი, თავიდან. (განსაზღვრულ ხელსაწყოსთან თავსებადობისთვის.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "GUI-ს გარეშე თუ ყველა კონფლიქტო გადაჭრადია. (სსაჭიროებს -o ფაილს)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore case" +msgid "Ignored." +msgstr "რეგისტრის იგნორირება" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "ხილული სახელის ჩანაცვლება 1 ფაილისთვის (საბაზისო)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "ხილული სახელის ჩანაცვლება 2 ფაილისთვის." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "ხილული სახელის ჩანაცვლება 3 ფაილისთვის." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"ალტერნატიული ხილული სახელის ჩანაცვლება. მიუთითეთ ერთხელ ყოველი შეყვანისთვის." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, fuzzy, kde-format +msgid "Use a different config file." +msgstr "განსხვავებული ფაილების რაოდენობა:" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "ფაილი3-ის გახსნა (საფუძველი, თუ არაა მითითებული --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "ფაილი2-ის გახსნა" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "ფაილი3-ის გახსნა" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "ბმულების და ჩოულებრივი ფაილების ნარევი." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "ბმული: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "ზომა. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "თარიღი და ზომა: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "ფაილების შედარება..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "ყველგან A-ს არჩევა" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "ყველგან B-ს არჩევა" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "ყველგან C-ს არჩევა" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "A-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "B-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "C-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"დარჩენილი გადაუჭრელი კონფლიქტების რაოდენობა: %1 (საიდანაც %2 არის ღარი)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"გამონატანი ჩასწორებულია.\n" +"თუ გააგრძელებთ ცვლილებები დაგეკარგებათ." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "ყველა შეტანილი ბაილის ბინარი ტოლია." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "ყველა შეტანილი ფაილის შეიცავს ერთიდაიგივე ტექსტი." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, fuzzy, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "B და C ბინარულად ტოლია.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "A და B აქვთ ერთიდაიგივე ტექსტი. \n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "კონფლიქტები" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"ყველა კონფლიქტი ჯერ არაა გადაჭრილი.\n" +"ფაილი არაა შენახული.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "დარჩენილი კონფლიქტები" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"სარეზერვო ასლის შექმნა ვერ შედგა. ფაილი არაა შენახული." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "ფაილის შენახვის შეცდომა" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "ჩაწერისას შეცდომა." + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "გამონატანი" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[ჩასწორებულია]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +msgid "Encoding for saving:" +msgstr "ფაილის კოდირება C-თვის:" + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "Conflict" +msgstr "კონფლიქტები" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (ფუძე):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "გამონატანი (არასავალდებულო):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "ფაილი..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (არასავალდებულო_:" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "უნიკოდი" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "შეცვალე თუ არა ASCII სიმბოლოები არ აისახება მართებულად." + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +#| msgid "Configure..." +msgid "Configure" +msgstr "კონფიგურაცია..." + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "რედაქტორი და Diff გამონატანის შრიფტი" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "ფაილის შენახვის შეცდომა" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "ფერი" + +#: optiondialog.cpp:596 +#, fuzzy, kde-format +msgid "Colors Settings" +msgstr "რეგიონალური პარამეტრები" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "ზედაპირის ფერი:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "ფონის ფერი:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Diff ფონის ფერი:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "ფერი A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "ფერი B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "ფერი C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "კონფლიქტის ფერი:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "მიმდინარე შუალედის ფონის ფერი:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "მიმდინარე შუალედის diff ფონის ფერი:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +msgid "Folder Comparison View:" +msgstr "დირექტორიის შედარების სტატუსი" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "რედაქტორი" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "რედაქტორის ქცევა" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab სვავს ღარებს" + +#: optiondialog.cpp:790 +#, fuzzy, kde-format +#| msgid "" +#| "On: Pressing tab generates the appropriate number of spaces.\n" +#| "Off: A Tab-character will be inserted." +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"ჩართულია: tab-ის დაჭერა აგენერირებს ღარების განსაზღვრულ რაოდენობას.\n" +"გამორთულია: ტაბულაციის სიმბოლო იქნება ჩასმული." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "ჩანართის ზომა:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "ავტო შეწევა" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "ჩართულია: წინა ხაზის შეწევა გამოიყენება ახალი ხაზისთვის.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "მონიშვნის ავტო ასლი" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"ჩართულია: ნებისმიერი მონიშვნა ჯდება გაცვლის ბუფერში.\n" +"გამორთულია: თქვენ ასლი უნდა გააკეთოთ მაგ. Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&ფანჯარა" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "მონიშვნის ავტო ასლი" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"აყენებს ხაზის ბოლოს როდესაც რედაქტურებული ფაილი ინახება.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, fuzzy, kde-format +msgid "Diff" +msgstr "KDiff3" + +#: optiondialog.cpp:839 +#, fuzzy, kde-format +msgid "Diff Settings" +msgstr "Diff & შერწყმის პარამეტრები" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "C/C++ კომენტარების ღარებად განხილვა." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"რიცხვების იგნორირება ფრაზების შედარებისას. (იგივე ნაერად როგორ ღარების " +"იგნორირება.)\n" +"შეიძლება დაგეხმაროთ ციფრული მონაცემებით ფაილების შედარებისას." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ კომენტარების ღარებად განხილვა." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ კომენტარების ღარებად განხილვა." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +msgid "Ignore case (treat as white space)" +msgstr "C/C++ კომენტარების ღარებად განხილვა." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "რეგისტრის სხვაობის ღარებად განხილვა. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Preprocessor ბრძანება:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"მომხმარებლის მიერ განსაზღვრული processing. (დეტალებისთვის იხ. დოკუმენტაცია.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "ხაზის დამთხვევის preprocessor ბრძანება:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "მაგრად ცდა (ნელია)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"გარე diff-სთვის რთავს --minimal პარამეტრს.\n" +"დიდი ფაილების ანალიზი ბევრად შენელდება." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "შერწყმა" + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "Diff & შერწყმის პარამეტრები" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, fuzzy, kde-format +#| msgid "Show Window A" +msgid "Show info dialogs" +msgstr "ფანჯარა A-ს ჩვენება " + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "ხელით არჩევა" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "ქვედირექტორიების რაოდენობა:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "დირექტორიათა რეკურსია" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "ქვესაქაღალდეები გაანალიზდეს თუ არა." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "ფაილის შაბლონ(ებ)ი:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"გასაანალიზებელი ფაილების შაბლონ(ებ)ი.\n" +"Wildcards: '*' და '?'\n" +"რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "ფაილის-ანტი-შაბლონ(ებ)ი:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"არა გასაანალიზებელი ფაილების შაბლონ(ებ)ი.\n" +"Wildcards: '*' და '?'\n" +"რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "ფაილის-ანტი-შაბლონ(ებ)ი:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"არა გასაანალიზებელი ფაილების შაბლონ(ებ)ი.\n" +"Wildcards: '*' და '?'\n" +"რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr ".cvsignore-ის გამოყენება" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "დამალული ფაილების და დირექტორიების ძიება" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "დამალული ფაილების და დირექტორიების ძიება" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "ფაილთა ბმულზე გადასვლა" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"ჩართულია: იმ ფაილთა შედარება რაზეც მიუთითებს ბმული.\n" +"გამორთულია: ბმულების შედარება." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "ფაილთა ბმულზე გადასვლა" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"ჩართულია: იმ ფაილთა შედარება რაზეც მიუთითებს ბმული.\n" +"გამორთულია: ბმულების შედარება." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "ყველა ქვედირექტორიის არჩაკეცვა" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "ფაილთა შედარების რეჟიმი" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "ორობითი შედარება" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "ყოველი ფაილის ორობითი შედარება. (ნაგულისხმები)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "სრული ანალიზი" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"სრული ანალიზის გაკეთება და სტატისტიკური ინფორმაციის ექსტრა სვეტში ასახვა.\n" +"(უფრო ნელია ვიდრე ბინარული შედარება, ბევრად ნელი ბინარული ფაილებისთვის.)" + +#: optiondialog.cpp:1258 +#, fuzzy, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "მოდიფიცირების თარიღი ნდობა (არაა სანდო)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"თუ მოდიფიცირების თარიღი და ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n" +"კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის." + +#: optiondialog.cpp:1265 +#, fuzzy, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "მოდიფიცირების თარიღი ნდობა (არაა სანდო)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"თუ მოდიფიცირების თარიღი და ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n" +"კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "ზომის ნდობა (არაა სანდო)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"თუ ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n" +"კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის, როდესაც მოდიფიკაციის დრო " +"ჩამოქაჩვისას იცვლება." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "დირექტორიების სინქრონიზაცია" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "ინტერვალების სხვაობის ტოლად ჩათვლა" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"თუ ფაილები მხოლოდ ინტერვალებით განსხვავდება, მათი ტოლად ჩათთვლა.\n" +"ეს აქტიურია მხოლოდ თუ სრული ანალიზია არჩეული." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "შერწმის ნაცვლად ახლის ასლი (სახიფათო)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"შიგნით ნუ ჩაიხედავტ, მხოლოდ აიღეთ ახალი ფაილი.\n" +"(გამოიყენეთ ეს მარტო მაშინ თუ იცით რას აკეთებთ!)\n" +"მაშინაა ეფექტური, როდესაც ორ დირექტორიას ადარებთ." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "სარეზერვო ასლის ფაილი (.orig)" + +#: optiondialog.cpp:1314 +#, fuzzy, kde-format +#| msgid "" +#| "When a file would be saved over an old file, then the old file\n" +#| "will be renamed with a '.orig'-extension instead of being deleted." +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"როდესაც ფაილი ძველ ფაილზე უნდა იქნას შენახული, მაშინ ძველ ფაილს\n" +"სახელი გადაერქმევა '.orig' გაფართოვებით იმის მაგივრად რომ წაიშალოს." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "რეგიონალური პარამეტრები" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "ყველასთვის იგივე კოდირების გამოყენება:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"ამის ჩართვა სასუალებას გაძლევთ ყველა კოდირება შეცვალოთ მხოლოდ პირველის " +"შეცვლით.\n" +"გამორთეთ ეს თუ განსხვავებული ინდივიდუალურუი პარამეტრებია საჭირო." + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "შენიშვნა: ლოკალური კოდირება არის" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "ფაილის კოდირება A-თვის:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "ფაილის კოდირება B-თვის:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "ფაილის კოდირება C-თვის:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "ფაილის კოდირება გამონატანის შერწყმისა და შენახვისთვის:" + +#: optiondialog.cpp:1402 +#, fuzzy, kde-format +msgid "Auto Select" +msgstr "მონიშვნის ავტო ასლი" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "ფაილის კოდირება -პრეპროცესორის ფაილებისთვის:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "მარჯვნიდან მარცხნივ ენა" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"ზოგი ენა მარჯვნიდან მარცხნივ იკითხება.\n" +"ეს პარამეტრი შეცვლის ხედს და რედაქტორს." + +#: optiondialog.cpp:1435 +#, fuzzy, kde-format +msgid "Integration" +msgstr "ოპერაცია" + +#: optiondialog.cpp:1436 +#, fuzzy, kde-format +msgid "Integration Settings" +msgstr "რეგიონალური პარამეტრები" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"ეს ყველა პარამეტრს საწყის მდგომარეობაზე აბრუნებს. არა მხოლოდ მიმდინარე " +"თემისას." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "PreprocessorCmd: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" +"შემდეგმა პარამეტრ(ებ)მა, რომლებიც აირჩიეთ, შეიძლება შეცვალოს მონაცემები:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"როგორც ჩანს ეს შერწყმისას არაა საჭირო.\n" +"გსურთ ამ პარამეტრების გამორთვა თუ აქტიური პარამეტრებით გაგრძელება?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "პარამეტრი შერწყმისთვის არაა უსაფრთხო" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "შერწყმისას ამ პარამეტრების გამოყენება" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "სახიფათო პარამეტრების გამორთვა" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "იტვირთება A" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "იტვირთება A" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "იტვირთება B" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "იტვირთება A" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linediff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "იტვირთება C" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "იტვირთება A" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, fuzzy, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "ყველა შეტანილი ფაილის შეიცავს ერთიდაიგივე ტექსტი." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "A და B ბინარულად ტოლია.\n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"ზოგი შეტანის ფაილი არ არის მხოლოდ ტექსტური ფაილი.\n" +"გაითვალისწინეთ რომ KDiff3-შერწყმა არ გულისხმობს ბინარულ მონაცემებს.\n" +"გააგრძელეთ საკუთარი თავის იმედათ." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "შეწყვეტა" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "ფაილთა გახსნა..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "მონიშნული ფრაგმენტის მოჭრა..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "მონიშნულის გაცვლით ბიფერში განთავსება..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "გაცვლის ბუფერის შიგთავსის ჩასმა..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "შენახვა და გაგრძელება" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "შენახვის გარეშე გაგრძელება" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "ძიება დასრულდა." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "ძიება დასრულდა" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, fuzzy, kde-format +msgid "Error while adding manual diff range" +msgstr "დირექტორიის შექმნისას შეცდომა." + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "კონფიგურაცია..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "ფაილთა გახსნა..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "ტექსტის ძიება:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "რეგისტრისადმი მგძნობიარე" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "ძიება A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "ძიება B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "ძიება C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "გამონატანის ძიება" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "ძიე&ბა" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, fuzzy, kde-format +msgid "Match failed." +msgstr "შენახვა ვერ შედგა." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "ბუფერის მონაცემის დროებით ფაილში ჩაწერა ვერ შედგა." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "გაცვლის ბუფერიდან " + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "ბმულების და ჩოულებრივი ფაილების ნარევი." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"გაგრძელება შესაძლოა ვერ შედგა შემოწმება. შეამოწმეთ ეს ბრძანება:\n" +"\n" +" %1\n" +"\n" +"გაგრძელების ბრძანება ახლა გამოირთვება." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"ხაზთა დამთხვევა ალბათ ვერ შედგა. შეამოწმეთ ეს ბრძანება:\n" +"\n" +" %1\n" +"\n" +"ხაზთა დამთხვევა ახლა გამოირთვება." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/ko/diff_ext.po b/po/ko/diff_ext.po new file mode 100644 index 0000000..f329a99 --- /dev/null +++ b/po/ko/diff_ext.po @@ -0,0 +1,128 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# Shinjo Park , 2019, 2020, 2021, 2022. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2022-05-15 22:22+0200\n" +"Last-Translator: Shinjo Park \n" +"Language-Team: Korean \n" +"Language: ko\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: Lokalize 21.12.3\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "%1와(과) 비교하기" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "%1와(과) 합치기" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "기반이 있는 3중 결합" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "나중에 사용할 수 있도록 '%1' 저장" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "다음과 비교..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "목록 비우기" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "비교" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3중 비교" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Diff-Ext 정보..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "This software is distributable under the BSD-2-Clause license.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Ported to Qt5/Kf5 by Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Diff-Ext 홈페이지: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "KDiff3 Diff-Ext 정보(64비트)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "선택한 파일 비교" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "'%1'과(와) '%2' 비교하기" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "나중에 사용할 수 있도록 '%1' 저장" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "KDiff3을 시작할 수 없습니다. KDiff3을 다시 설치하십시오." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "명령" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "명령행" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "KDiff3용 Diff-Ext" \ No newline at end of file diff --git a/po/ko/kdiff3.po b/po/ko/kdiff3.po new file mode 100644 index 0000000..64b989d --- /dev/null +++ b/po/ko/kdiff3.po @@ -0,0 +1,3534 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Shinjo Park , 2014, 2015, 2019, 2020, 2021, 2022. +# JungHee Lee , 2019. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-05-15 22:23+0200\n" +"Last-Translator: Shinjo Park \n" +"Language-Team: Korean \n" +"Language: ko\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: Lokalize 21.12.3\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "박신조,이정희" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde@peremen.name,daemul72@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "파일 상태 가져오는 중: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "파일 읽는 중: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "파일에 쓰는 중: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "메모리 부족" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "폴더 만드는 중: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "폴더 삭제 중: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "파일 삭제 중: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "심볼릭 링크 만드는 중: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "파일 이름 변경 중: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "파일 복사 중: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "폴더 읽는 중: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "디렉터리 항목 가져오는 중: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"데이터 손실 오류:\n" +"재현 가능한 경우 작성자에게 연락해 주십시오.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "심각한 내부 오류" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "심각한 내부 오류입니다." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "심각한 내부 오류: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "파일 %1: 줄 %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "파일 %1: 줄을 사용할 수 없음" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "인코딩:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "줄 끝 스타일:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A(기반)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "인코딩: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "유닉스" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "줄 끝 스타일: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "맨 첫 줄" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "끝" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "파일 열기" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "유니코드, 8비트" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "기타" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A를 B로 복사" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B를 A로 복사" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A 삭제" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B 삭제" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A와 B 삭제" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "A로 합치기" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "B로 합치기" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "A와 B로 합치기" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "삭제(존재하는 경우)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "합치기" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "합치기(수동)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "오류: 일치하지 않는 파일 형식" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "오류: 변경 및 삭제됨" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "오류: 날짜가 일치하지만 파일이 일치하지 않습니다." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "완료" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "오류" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "건너뜁니다." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "저장되지 않았습니다." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "진행 중..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "할 일입니다." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "이름" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "작업" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "상태" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "해결되지 않음" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "해결됨" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "공백 아님" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "공백" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"폴더를 합치고 있습니다. 합치기 작업을 중단하고 폴더를 다시 탐색하시겠습니까?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "경고" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "재탐색" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "계속 합치기" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "폴더를 열 수 없음:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "폴더 A \"%1\"이(가) 없거나 폴더가 아닙니다.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "폴더 B \"%1\"이(가) 없거나 폴더가 아닙니다.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "폴더 C \"%1\"이(가) 없거나 폴더가 아닙니다.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "폴더 열기 오류" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"폴더 세 개를 합칠 때에는 대상 폴더가 A, B와 달라야 합니다.\n" +"계속하기 전에 확인하십시오." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "인자 경고" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "폴더 검사 중..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "폴더 A 읽는 중" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "폴더 B 읽는 중" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "폴더 C 읽는 중" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "다음의 일부 하위 폴더를 읽을 수 없음:" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "하위 폴더의 권한을 확인하십시오." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "준비." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"폴더 비교 상태\n" +"\n" +"하위 폴더 수: %1\n" +"동일한 파일 수: %2\n" +"다른 파일 수: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "수동 합침 개수: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "모든 합치기 동작에 영향을 줍니다." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "모든 합치기 동작 변경 중" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"%1 / %2 처리 중\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "일부 파일을 처리할 수 없습니다." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "오류가 너무 많아서 중단합니다." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "이 작업을 진행할 수 없습니다." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "작업을 진행할 수 없음" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "복사하는 동안 오류가 발생했습니다." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "합치기 오류" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "알 수 없는 합치기 작업입니다(일어나서는 안 됨!)." + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "알 수 없는 합치기 작업입니다." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"이제 합치기를 시작합니다.\n" +"\n" +"무엇을 하는지 알고 있고 지시 사항을 읽으셨으면 \"진행\"을 누르십시오.\n" +"어떤 일이 일어나는지 알고 싶으면 \"시험\"을 누르십시오.\n" +"\n" +"이 프로그램은 베타 상태에 있으며 데이터 손실에 대하여 책임지지 않습니다! 중요" +"한 데이터는 백업 후 시작하십시오!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "합치기 시작" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "진행" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "시험" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"강조한 항목은 다른 폴더에서 서로 다른 형식을 가지고 있습니다. 할 일을 선택하" +"십시오." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"파일의 수정한 날짜가 일치하지만 파일이 일치하지 않습니다. 할 일을 선택하십시" +"오." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"강조한 항목은 한 쪽 폴더에서 변경되었고 다른 쪽에서 삭제되었습니다. 할 일을 " +"선택하십시오." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "폴더 합치기 작업이 진행 중이므로 이 작업을 사용할 수 없습니다." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"마지막 단계에서 오류가 발생했습니다.\n" +"오류가 발생한 항목에서 계속 진행하시겠습니까? 아니면 이 항목을 건너뛰겠습니" +"까?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "오류 발생 후 합치기 계속 진행" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "마지막 항목에서 진행" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "항목 건너뛰기" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "합치기 작업이 완료되었습니다." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "합치기 완료됨" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "합치기 시험 완료됨: 제안하는 변경 사항이 올바르면 선택하십시오." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "오류가 발생했습니다. 자세한 정보를 보려면 확인을 누르십시오." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "%1 삭제 중 오류: 백업을 만들 수 없습니다." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "폴더를 재귀적으로 삭제(%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "삭제(%1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "오류: 폴더를 읽는 중 폴더 삭제 작업에서 오류가 발생했습니다." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "오류: rmdir(%1) 작업이 실패했습니다." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "오류: 삭제 작업이 실패했습니다." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "수동 합치기(%1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr " 메모: 수동 합치기 이후 계속 진행하려면 F7 키를 누르십시오." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"오류: copy(%1 -> %2) 작업이 실패했습니다. 존재하는 대상을 삭제할 수 없습니다." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink(%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "오류: copyLink 작업이 실패했습니다. 원격 링크는 지원하지 않습니다." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "오류: copyLink 작업이 실패했습니다." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copy(%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"rename(%1 -> %2) 작업 중 오류 발생: 존재하는 대상을 삭제할 수 없습니다." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rename(%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "오류: 이름 변경이 실패했습니다." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"makeDir %1 작업 중 오류가 발생했습니다. 존재하는 파일은 삭제할 수 없습니다." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir(%1)" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "폴더를 만드는 중 오류가 발생했습니다." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "대상" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "폴더" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "종류" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "크기" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "속성" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "마지막 수정" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "링크 대상" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "파일" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-링크" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "사용할 수 없음" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A(대상): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A(기반): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B(대상): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C(대상): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "대상: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "폴더 합치기 상태를 다른 이름으로 저장..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "폴더 합치기 시작/계속 진행" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "현재 항목의 작업 실행" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "선택한 파일 비교" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "현재 파일 합치기" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"파일\n" +"합치기" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "모든 하위 폴더 접기" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "모든 하위 폴더 펼치기" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "모든 항목에서 A 선택" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "모든 항목에서 B 선택" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "모든 항목에서 C 선택" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "모든 항목에서 작업 자동 선택" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "모든 항목에서 작업 진행하지 않음" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "같은 파일 표시" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"같은\n" +"파일" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "다른 파일 표시" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "A에만 있는 파일 표시" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"A에만 있는\n" +"파일" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "B에만 있는 파일 표시" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"B에만 있는\n" +"파일" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "C에만 있는 파일 표시" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"C에만 있는\n" +"파일" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "명시적으로 선택한 파일만 비교" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "명시적으로 선택한 파일만 합치기" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "아무것도 하지 않음" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A와 B 삭제" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "A와 B로 합치기" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "전체 URL을 결정할 수 없습니다. 부모를 지정하지 않았습니다." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "파일을 읽을 수 없음: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "%1의 임시 복사본을 만들지 못했습니다." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "%1을(를) 열 수 없습니다. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "%1에서 읽는 중 오류가 발생했습니다. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"백업을 만드는 동안 이전 백업을 삭제하지 못했습니다.\n" +"파일 이름: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"백업을 만드는 동안 이름을 변경하지 못했습니다.\n" +"파일 이름: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "현재 설정:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "설정 옵션 오류:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "--auto 옵션을 지정했지만 출력 파일을 지정하지 않았습니다." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "폴더 비교 시 --auto 옵션을 무시합니다." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "저장 실패." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "다음 파일을 여는 데 실패했습니다:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "파일 열기 오류" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "비교할 문서 열기..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "새로 고침" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "합친 결과를 저장합니다. 모든 충돌 사항을 해결해야 합니다!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "현재 문서를 다른 이름으로 저장..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "차이점 인쇄" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "프로그램 종료" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "선택한 부분을 잘라내고 클립보드에 저장" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "선택한 부분을 클립보드에 복사" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "현재 위치에 클립보드 내용 붙여넣기" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "현재 창의 모든 내용 선택" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "문자열 찾기" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "문자열 다시 찾기" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "상태 표시줄 표시/숨기기" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 설정..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "현재 차이점으로 이동" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"현재\n" +"차이점" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "첫 차이점으로 이동" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"첫\n" +"차이점" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "마지막 차이점으로 이동" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"마지막\n" +"차이점" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(\"공백 문자 표시\" 설정을 사용하지 않으면 공백을 건너뜁니다.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "(\"공백 문자 표시\" 설정을 사용하지 않아도 공백을 건너뛰지 않습니다.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "이전 차이점으로 이동" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"이전\n" +"차이점" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "다음 차이점으로 이동" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"다음\n" +"차이점" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "이전 충돌 항목으로 이동" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"이전\n" +"충돌" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "다음 충돌 항목으로 이동" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"다음\n" +"충돌" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "이전 해결하지 않은 충돌 항목으로 이동" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"이전\n" +"미해결" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "다음 해결하지 않은 충돌 항목으로 이동" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"다음\n" +"미해결" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "A에서 줄 선택" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"A\n" +"선택" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "B에서 줄 선택" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"B\n" +"선택" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "C에서 줄 선택" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"C\n" +"선택" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "원본 선택 후 자동으로 다음 해결되지 않은 충돌 항목으로 이동" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"자동\n" +"다음" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "공백 및 탭 문자 표시" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"공백\n" +"문자" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "공백 문자 표시" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"공백\n" +"차이" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "줄 번호 표시" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"줄\n" +"번호" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "간단한 충돌 자동으로 해결" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "충돌 항목의 차이점 설정" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "정규 표현식 자동 합치기 실행" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "과거에 해결했던 충돌 자동으로 해결" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "선택 항목에서 차이점 나누기" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "선택한 변경 사항 합치기" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "창 A 표시" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "창 B 표시" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "창 C 표시" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "일반 요약 보기" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A 대 B 요약 보기" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A 대 C 요약 보기" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B 대 C 요약 보기" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "차이점 창 자동 줄 바꿈 사용" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "수동 Diff 정렬 추가" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "모든 수동 Diff 정렬 삭제" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "다음 창에 초점 맞추기" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "이전 창에 초점 맞추기" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "나누기 방향 전환" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "폴더와 텍스트로 화면 나누어 보기" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "폴더와 텍스트 보기 간 전환" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "합친 결과가 저장되지 않았습니다." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "저장하고 끝내기" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "저장하지 않고 끝내기" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "합친 결과를 저장할 수 없습니다." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "폴더를 합치고 있습니다. 이대로 중단하시겠습니까?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "파일 저장하는 중..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "새 이름으로 파일 저장하는 중..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "다른 이름으로 저장..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "인쇄는 구현되지 않았습니다." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "인쇄 중..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "%2 중 %1쪽 인쇄 중" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (선택)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "인쇄가 완료되었습니다." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "인쇄가 중단되었습니다." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "종료 중..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "도구 모음 전환 중..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "상태 표시줄 전환 중..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 파트" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "SVG 이미지를 표시하는 KPart" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "KDiff3(&K)" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 설정" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"KDiff3 부분을 초기화할 수 없습니다.\n" +"설치 문제일 수도 있습니다. 소스 코드 패키지의 README 파일을 참고하십시오." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "파일(&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "폴더(&O)" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "현재 항목 합치기 작업" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "현재 항목 동기화 작업" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "이동(&O)" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "차이 보기(&I)" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "합치기(&E)" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "창(&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "주 도구 모음" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "무시함.(사용자 정의)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64비트)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32비트)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "파일과 폴더를 비교하고 합치는 도구" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "입력을 합칩니다." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "명시적인 기반 파일. 일부 도구와 호환성 때문에 사용합니다." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "출력 파일. -m을 암시합니다. 예: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "출력 파일, 또 다시.(일부 도구와 호환성 때문에 사용합니다.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"모든 충돌 사항을 자동적으로 해결할 수 있는 경우 GUI 사용 안 함(-o file 필요)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "--auto 옵션을 무시하고 항상 GUI를 표시합니다." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "무시됨." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "입력 파일 1(기반)에 대한 표시 이름 대체입니다." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "입력 파일 2에 대한 표시 이름 대체입니다." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "입력 파일 3에 대한 표시 이름 대체입니다." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "대안 표시 이름 대체입니다. 입력 파일마다 하나씩 지정하십시오." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"설정 옵션을 재정의합니다. 설정마다 하나씩 사용하십시오. 예: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "설정 옵션과 현재 값을 표시합니다." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "다른 설정 파일을 사용합니다." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "열 파일 1(--base로 지정하지 않은 경우의 기반)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "열 파일 2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "열 파일 3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "지원되는 옵션은 kdiff3 --help 명령을 참조하십시오." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "비정상 파일과 정상 파일을 비교할 수 없습니다." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "링크와 일반 파일의 혼합." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "링크: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "크기: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "날짜와 크기: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "파일 비교 중..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "항상 A 선택" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "항상 B 선택" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "항상 C 선택" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "모든 해결하지 않은 충돌 항목에서 A 선택" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "모든 해결하지 않은 충돌 항목에서 B 선택" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "모든 해결하지 않은 충돌 항목에서 C 선택" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "모든 해결하지 않은 공백 문자 충돌 항목에서 A 선택" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "모든 해결하지 않은 공백 문자 충돌 항목에서 B 선택" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "모든 해결하지 않은 공백 문자 충돌 항목에서 C 선택" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "남은 해결하지 않은 충돌 항목: %1(공백 %2개 포함)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"출력 파일이 수정되었습니다.\n" +"계속 진행하면 변경 사항을 저장하지 않습니다." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "모든 입력 파일의 바이너리가 같습니다." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "모든 입력 파일의 텍스트가 같습니다." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "파일 %1와(과) %2의 바이너리가 동일합니다.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "파일 %1와(과) %2의 텍스트가 동일합니다.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"총 충돌 수: %1\n" +"자동으로 해결된 충돌 개수: %2\n" +"해결되지 않은 충돌 개수: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "충돌" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<원본 줄 없음>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<충돌 합치기(공백만>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<충돌 합치기>" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"모든 충돌 사항을 해결하지 않았습니다.\n" +"파일이 저장되지 않았습니다." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "충돌 사항 남음" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"줄 끝 스타일이 충돌합니다. 줄 끝 스타일을 직접 선택하십시오.\n" +"파일이 저장되지 않았습니다." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"백업을 만들 수 없습니다. 파일을 저장하지 않았습니다." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "파일 저장 오류" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "쓰는 중 오류가 발생했습니다." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "출력:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[수정됨]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "저장용 인코딩:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "충돌" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "A의 코덱: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "B의 코덱: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "C의 코덱: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "대화 상자" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A(기반):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "출력(선택 사항):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "파일..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "이름 전환/복사..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C(선택 사항):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "폴더..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"버전 관리 역사 항목은 여러 줄로 이루어져 있습니다.\n" +"시작 주석이 없는 첫 번째 항목을 확인할 정규 표현식을 지정하십시오.\n" +"정렬에 사용할 키 그룹은 괄호로 지정하십시오.\n" +"비어 있으면 KDiff3은 빈 줄로 역사 항목을 구분하는 것으로 간주합니다.\n" +"자세한 사항은 문서를 참고하십시오." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"버전 관리 항목 시작 그룹의 각각 괄호에 둘러싸인 항목은 정렬에 사용할\n" +"키를 지정합니다.\n" +"맨 첫 번째 일치 항목을 1에서 시작하여 키 순서를 쉼표로 구분한 목록으로\n" +"입력하십시오. (예: \"4,5,6,1,2,3,7\")\n" +"비어 있으면 정렬하지 않습니다.\n" +"자세한 사항은 문서를 참고하십시오." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"KDiff3에서 자동으로 하나의 원본을 선택할 때 사용할 정규 표현식입니다.\n" +"충돌이 발생한 줄이 정규 표현식과 일치하는 경우\n" +"C를 선택하고, 그렇지 않으면 B를 선택합니다." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"버전 관리 역사 항목의 시작을 나타내는 정규 표현식입니다.\n" +"대개 이 줄에는 \"$Log$\" 키워드가 들어 있습니다.\n" +"기본값: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"키스의 고유 조건은 입술끼리 만나야 되고 특별한 요령은 필요치 않다.\n" +"그러나 입술끼리 만나게 되는 일은 흔하지 않을 뿐이다.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "글꼴 변경" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"글꼴: %1, %2, %3\n" +"\n" +"예:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "유니코드" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "비 ASCII 문자가 올바르게 보이지 않으면 변경하십시오." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "설정" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "글꼴" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "편집기와 Diff 출력 글꼴" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "프로그램 글꼴" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "파일 보기 글꼴" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "색" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "색 설정" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "편집기와 차이점 보기:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "글자색:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "배경색:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Diff 배경색:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "색 A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "색 B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "색 C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "충돌 색:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "현재 범위 배경색:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "현재 범위 Diff 배경색:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "수동으로 정렬한 차이점 범위 색:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "폴더 비교 보기:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "가장 새로운 파일 색:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "이 색을 변경하면 다음 폴더 비교부터 적용됩니다." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "가장 오래된 파일 색:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "보통 시기 파일 색:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "없는 파일 색:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "편집기" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "편집기 행동" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "탭을 눌렀을 때 공백 삽입" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"켜짐: 탭을 누르면 해당하는 만큼 공백을 삽입합니다.\n" +"꺼짐: 탭 문자를 삽입합니다." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "탭 크기:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "자동 들여쓰기" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "켜짐: 이전 줄의 들여쓰기를 새 줄에도 적용합니다.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "자동 선택 복사" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"켜짐: 모든 선택 내용이 클립보드에 즉시 기록됩니다.\n" +"꺼짐: 예를 들어 Ctrl-C를 통해 명시적으로 복사해야 합니다." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "유닉스" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "자동 감지" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"편집한 파일을 저장할 때 줄 끝을 지정합니다.\n" +"DOS/Windows: CR+LF, UNIX: LF. CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff 설정" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "숫자 무시(공백으로 처리)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"줄 일치 과정에서 숫자에 해당하는 문자를 무시합니다.(공백 무시와 비슷함)\n" +"숫자 데이터가 들어 있는 파일을 비교할 때 사용할 수 있습니다." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ 주석 무시(공백으로 처리)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ 주석을 공백으로 취급합니다." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "대소문자 무시(공백으로 처리)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "대소문자 차이를 공백 차이로 취급합니다.('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "전처리기 명령:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "사용자 정의 전처리입니다.(자세한 사항은 문서를 참고하십시오)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "줄 일치 전처리 명령:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"이 전처리기는 줄 일치에만 사용합니다.\n" +"(자세한 사항은 문서를 참고하십시오.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "더 자세히 비교(느림)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"외부 diff 실행 시 --minimal 옵션을 사용합니다.\n" +"큰 파일 비교가 느려질 수 있습니다." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "입력 파일이 3개일 때 B와 C 정렬" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"입력 파일 세 개를 비교하거나 합칠 때 B와 C로 정렬을 시도합니다.\n" +"합칠 때에는 더 복잡해질 수 있으므로 합칠 때에는 추천하지 않습니다.\n" +"(기본값으로 비활성화됨.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "합치기" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "합치기 설정" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "자동 진행 지연 시간(ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"자동 진행 모드에서는 현재 선택 결과를 지정한 시간 동안 표시한 다음\n" +"다음 충돌 항목으로 이동합니다. 범위: 0-2000ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "정보 대화 상자 표시" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "충돌 개수 정보 대화 상자를 표시합니다." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "공백만 변경되었을 때 2개 파일 합치기 기본값:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "수동 선택" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"공백만 변경되었을 때 합치기 알고리즘에서 입력을 자동으로 선택하도록 허용합니" +"다." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "공백만 변경되었을 때 3개 파일 합치기 기본값:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "자동 합치기 정규 표현식" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "자동 합치기 정규 표현식:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "합치기를 시작할 때 정규 표현식 실행" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"합치기 작업을 시작할 때 자동 합치기\n" +"정규 표현식으로 합치기를 실행합니다.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "버전 관리 역사 합치기" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "역사 시작 정규 표현식:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "역사 항목 시작 정규 표현식:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "역사 합치기 정렬" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "버전 관리 역사를 키를 기준으로 정렬합니다." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "버전 관리 시작 정렬 키 순서:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "합치기를 시작할 때 버전 관리 역사 합치기" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "합치기를 시작할 때 자동으로 버전 관리 역사를 합칩니다." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "최대 역사 항목 수:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "지정한 개수를 초과하는 항목은 잘라냅니다. -1은 제한을 두지 않습니다." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "정규 표현식을 시험해 보십시오" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "관계 없는 합침 명령:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"자동 합치기가 끝난 후 합칠 항목이\n" +"더 이상 없으면 지정한 스크립트를 실행합니다.\n" +"다음 인자로 호출합니다: filename1 filename2 filename3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "충돌하지 않고 합쳐졌을 때 자동으로 저장하고 끝내기" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"KDiff3이 명령행에서 파일 합치기 작업으로 시작되었고 모든\n" +"변경 사항이 사용자 확인 없이 진행 가능하면 자동으로 저장하고 끝냅니다.\n" +"(명령행 옵션 \"--auto\"와 비슷합니다.)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "재귀적 폴더" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "하위 폴더를 분석할지 여부입니다." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "파일 패턴:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"분석할 파일 패턴입니다.\n" +"와일드카드: '*', '?'\n" +"쌍반점(';')을 사용하여 패턴 여러 개를 지정할 수 있습니다." + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "파일 제외 패턴:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"분석할 파일에서 제외할 패턴입니다.\n" +"와일드카드: '*', '?'\n" +"쌍반점(';')을 사용하여 패턴 여러 개를 지정할 수 있습니다." + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "폴더 제외 패턴:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"분석할 폴더에서 제외할 패턴입니다.\n" +"와일드카드: '*', '?'\n" +"쌍반점(';')을 사용하여 패턴 여러 개를 지정할 수 있습니다." + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "무시 파일 사용" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"버전 관리 시스템에서 무시하는 파일을 제외합니다.\n" +"폴더별로 무시 파일을 다르게 지정할 수 있습니다." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "숨김 파일과 폴더 찾기" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "숨김 파일과 폴더를 찾습니다." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "파일 링크 따라가기" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"켜짐: 링크가 가리키는 곳의 파일을 따라갑니다.\n" +"꺼짐: 링크 자체를 비교합니다." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "폴더 링크 따라가기" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"켜짐: 링크가 가리키는 곳의 폴더를 따라갑니다.\n" +"꺼짐: 링크 자체를 비교합니다." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "파일 이름 비교 시 대소문자 구분" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"폴더 비교 기능은 이름이 일치하는 파일과 폴더를 비교합니다.\n" +"이름의 대소문자가 반드시 일치해야 하면 이 옵션을 선택하십시오(Windows에서는 " +"꺼짐, 기타 플랫폼에서는 켜짐)." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "불러올 때 모든 하위 폴더 펼치기" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"켜짐: 폴더 Diff를 시작할 때 모든 하위 폴더를 펼칩니다.\n" +"꺼짐: 하위 폴더를 접힌 상태로 둡니다." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "폴더 상태 보고서 건너 뛰기" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"켜짐: 폴더 비교 상태를 표시하지 않습니다.\n" +"꺼짐: 시작 시 상태 대화 상자를 표시합니다." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "파일 비교 모드" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "바이너리 비교" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "각각 파일의 바이너리 비교를 수행합니다.(기본값)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "완전 분석" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"완전 분석을 수행하여 추가 열에 통계 정보를 표시합니다.\n" +"(바이너리 비교보다 느리며 바이너리 파일에서는 더 느립니다)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "크기와 수정한 날짜 무시하기(안전하지 않음)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"파일 크기와 수정한 날짜가 같으면 파일을 같은 것으로 취급합니다.\n" +"내용이 같지만 수정한 날짜가 다른 파일은 다른 파일로 나타납니다.\n" +"큰 폴더나 느린 네트워크에서 유용합니다." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"크기와 수정한 날짜를 무시하지만 날짜가 다르면 바이너리 비교 사용(안전하지 않" +"음)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"파일 크기와 수정한 날짜가 같으면 파일을 같은 것으로 취급합니다\n" +"수정한 날짜가 다른 파일은 바이너리 비교를 수행합니다.\n" +"큰 폴더나 느린 네트워크에서 유용합니다." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "크기 건너뛰기(안전하지 않음)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"파일 크기가 같은 파일은 같은 파일로 취급합니다.\n" +"날짜가 다운로드 중 수정된 큰 폴더나 느린 네트워크에서 유용합니다." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "폴더 동기화" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"양쪽 폴더에 모두 파일을 저장하여\n" +"작업 이후 폴더의 내용을 동일하게 유지합니다.\n" +"대상을 지정하지 않고 두 폴더를 비교할 때만 작동합니다." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "공백 문자 변경을 같은 것으로 취급" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"파일이 공백 문자만 다르면 같은 것으로 취급합니다.\n" +"완전 분석을 선택했을 때만 사용합니다." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "합치는 대신 새 파일 복사(안전하지 않음)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"파일의 내용과 관계 없이 새로운 파일을 선택합니다.\n" +"(무엇을 하는지 알고 있는 경우에만 이 옵션을 사용하십시오!)\n" +"두 폴더를 비교할 때에만 사용합니다." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "파일 백업(.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"기존 파일의 내용을 변경하여 저장하는 경우, 기존 파일은\n" +"삭제되지 않고 '.orig' 확장자가 추가되어 저장됩니다." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "지역 설정" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "모든 항목에 동일한 인코딩 사용:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"이 옵션을 사용하면 첫 인코딩을 변경했을 때 모든 인코딩을 변경합니다.\n" +"개별 설정이 필요하면 비활성화하십시오." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "메모: 로컬 인코딩은 \"%1\"입니다" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "A 파일 인코딩:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"이 옵션을 사용하면 유니코드(UTF-16, UTF-8) 인코딩을 자동으로 감지합니다.\n" +"파일이 유니코드가 아닌 경우 선택한 인코딩을 폴백으로 사용합니다.\n" +"(유니코드 감지는 파일의 첫 바이트를 봅니다.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "유니코드 자동 감지" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "B 파일 인코딩:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "C 파일 인코딩:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "합치기 출력과 저장 인코딩:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "자동 선택" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"이 옵션을 사용하면 입력 파일의 인코딩을 사용합니다.\n" +"모호한 경우 사용자에게 저장할 인코딩을 물어 보는 대화 상자를 엽니다." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "전처리 파일 인코딩:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "오른쪽에서 왼쪽으로 쓰는 언어" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"일부 언어는 오른쪽에서 왼쪽으로 씁니다.\n" +"이 설정은 뷰어와 편집기의 설정을 변경합니다." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "통합" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "통합 설정" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "무시할 명령행 옵션:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"KDiff3을 다른 도구에서 사용할 때 무시할 명령행 옵션입니다.\n" +"여러 항목을 구분하려면 쌍반점(';')을 사용하십시오.\n" +"이 옵션은 \"알 수 없는 옵션\" 오류를 비활성화합니다." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Esc 키로도 끝내기" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"끝내는 빠른 방법입니다.\n" +"Esc 키로 끝내기에 익숙한 사람을 위한 방법입니다." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "현재 항목 뿐만 아니라 모든 옵션을 초기화합니다." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "전처리기 명령: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "다음 선택한 옵션은 데이터를 변경할 수 있습니다:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"합치기 과정 중 원하지 않을 수도 있습니다.\n" +"이 설정을 비활성화하거나, 활성화 후 계속 진행하시겠습니까?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "옵션 변경이 합칠 때 안전하지 않음" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "합칠 때 이 옵션 사용하기" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "안전하지 않은 옵션 비활성화" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A 불러오는 중" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "A 불러오는 중: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B 불러오는 중" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "B 불러오는 중: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "줄 Diff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C 불러오는 중" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "C 불러오는 중: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "줄 Diff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "줄 Diff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "모든 입력 파일의 텍스트가 같지만 바이너리는 같지 않습니다." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "파일 %1와(과) %2의 텍스트가 같지만 바이너리는 같지 않습니다.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"일부 입력 파일은 일반 텍스트 파일이 아닌 것 같습니다\n" +"KDiff3의 합치기 기능은 바이너리 데이터에 적합하지 않습니다.\n" +"본인 책임 하에 계속 진행하십시오." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"일부 입력 문자를 올바른 유니코드로 변환할 수 없습니다.\n" +"잘못된 코덱을 사용할 수도 있습니다.(예: 비 UTF-8 파일에 UTF-8 사용)\n" +"확신하지 못하는 경우 파일을 저장하지 마십시오. 본인 책임 하에 계속 진행하십시" +"오.\n" +"영향 받는 입력 파일은 %1에 있습니다." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "중단" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "파일 여는 중..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "선택 영역 잘라내는 중..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "선택 영역 클립보드에 복사하는 중..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "클립보드 내용 삽입 중..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "자동 줄 바꿈(취소하면 자동으로 줄 바꾸지 않음)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "가로 스크롤 막대의 최대 너비 계산" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "저장하고 계속" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "저장하지 않고 계속" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "검색이 완료되었습니다." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "검색 완료" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Diff 입력 창에서 아무것도 선택하지 않았습니다." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "수동 Diff 범위 추가 중 오류 발생" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "취소(&C)" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "%1<->%2 전환" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "%1->출력으로 복사" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "%1<->출력 전환" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "설정..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "폴더 열기" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "출력 파일 선택" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "all/allfiles (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "찾을 문자열:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "대소문자 구분" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "A 검색" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "B 검색" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "C 검색" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "출력 검색" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "찾기(&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "정규 표현식 시험 도구" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "자동으로 합칠 줄 예제:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "자동 합치기를 사용하려면 파일에 있는 줄을 그대로 복사하십시오." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "일치 결과:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "예제 기록 시작 줄(도입부 주석 포함):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"도입부 주석과 같이\n" +"과거 기록 시작 줄을 파일에 있는 대로 복사합니다." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "과거 기록 정렬 키 순서:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "예제 기록 항목 시작 줄(도입부 주석 포함):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"도입부 주석을 제외하여\n" +"과거 기록 항목 시작 줄을 파일에 있는 대로 복사하십시오." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "정렬 키 결과:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "일치 성공." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "일치 실패." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "정규 표현식의 열고 닫는 괄호가 일치하지 않습니다." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "클립보드 데이터를 임시 파일로 저장할 수 없습니다." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "클립보드에서" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1은(는) 일반 파일이 아닙니다." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " 임시 파일: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"전처리가 실패한 것 같습니다. 다음 명령을 확인하십시오:\n" +"\n" +" %1\n" +"\n" +"전처리 명령을 비활성화합니다." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "%1 파일이 너무 커서 처리할 수 없습니다. 건너뜁니다." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"줄 일치 전처리가 실패한 것 같습니다. 다음 명령을 확인하십시오:\n" +"\n" +" %1\n" +"\n" +"줄 일치 전처리 명령을 비활성화합니다." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "닫는 따옴표 다음에 공백 문자가 필요합니다." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "따옴표 짝이 맞지 않습니다." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "인자 내에 예상하지 못한 따옴표가 있습니다." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "프로그램을 지정하지 않았습니다." \ No newline at end of file diff --git a/po/ko/kdiff3fileitemactionplugin.po b/po/ko/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..ac8f87b --- /dev/null +++ b/po/ko/kdiff3fileitemactionplugin.po @@ -0,0 +1,100 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Shinjo Park , 2014, 2019, 2020. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2020-04-05 01:42+0200\n" +"Last-Translator: Shinjo Park \n" +"Language-Team: Korean \n" +"Language: ko\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: Lokalize 19.04.3\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "%1와(과) 비교하기" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "%1와(과) 합치기" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "나중에 사용하려고 '%1' 저장" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "기반이 있는 3중 결합" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "다음과 비교..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "목록 비우기" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "비교" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3중 비교" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "KDiff3 메뉴 플러그인 정보..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "KDiff3 파일 항목 동작 플러그인: Copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"콘텍스트 메뉴 확장 기능 사용 방법:\n" +"두 선택된 파일을 단순히 비교하려면 \"비교\"를 누르십시오.\n" +"다른 파일이 다른 곳에 있으면 \"저장\"을 눌러서 파일을 기억해 두십시오. \"다음" +"과 비교...\" 하위 메뉴에 나타납니다. 그 다음 \"다음과 비교\"를 두 번째 파일에" +"서 누르십시오.\n" +"3중 결합을 사용하려면 기반 파일을 \"저장\"한 다음 합칠 브랜치를 저장하고 대" +"상 브랜치로 사용할 곳에서 \"기반이 있는 3중 결합\"을 선택하십시오.\n" +"폴더 비교와 결합에서도 같은 방법을 사용합니다." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "KDiff3 파일 항목 동작 플러그인 정보" \ No newline at end of file diff --git a/po/lt/kdiff3.po b/po/lt/kdiff3.po new file mode 100644 index 0000000..8136193 --- /dev/null +++ b/po/lt/kdiff3.po @@ -0,0 +1,3430 @@ +# Lithuanian translation of the KDiff3 pakckage +# +# Remigijus Jarmalavičius , 2011. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2011-07-28 19:13+0300\n" +"Last-Translator: Remigijus Jarmalavičius \n" +"Language-Team: Lithuanian \n" +"Language: lt\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 ? 0 : n%10>=2 && (n%100<10 || n" +"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" +"X-Generator: Lokalize 1.2\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Andrius Štikonas" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "andrius@stikonas.eu" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Skaitomas failas: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Rašomas failas: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Nepakanka atminties" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Kuriamas aplankas: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Šalinamas failas: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Šalinamas failas: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Kuriama simbolinė nuoroda: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Pervadinamas failas: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopijuojamas failas: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Skaitomas failas: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Eilutės pabaigos stilius:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Eilutės pabaigos stilius:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Viršutinė eilutė" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Pab" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Atveriami failai..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Apjungti" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Baigta." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Klaida" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Pavadinimas" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operacija" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Būsena" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Dėmesio" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Opening of folders failed:" +msgstr "Atveriami failai..." + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Failo atvėrimo klaida" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Saving file..." +msgid "Scanning folders..." +msgstr "Išsaugomas failas..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Skaitomas failas: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Skaitomas failas: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Skaitomas failas: %1" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, fuzzy, kde-format +msgid "Ready." +msgstr "" +"#-#-#-#-# kfindpart.po (kfindpart) #-#-#-#-#\n" +"Pasiruošęs\n" +"#-#-#-#-# kfilereplace.po (kfilereplace) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# k3b.po (k3b) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# pwmanager.po (pwmanager) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kdat.po (kdat) #-#-#-#-#\n" +"Pasiruošęs.\n" +"#-#-#-#-# kcron.po (kcron) #-#-#-#-#\n" +"Pasiruošęs.\n" +"#-#-#-#-# ksayit.po (ksayit) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kmouth.po (kmouth) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kmrml.po (kmrml) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kcoloredit.po (kcoloredit) #-#-#-#-#\n" +"Pasiruošęs.\n" +"#-#-#-#-# kverbos.po (kverbos) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kmail.po (kmail) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# ksync.po (ksync) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# dub.po (dub) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kopete.po (kopete) #-#-#-#-#\n" +"Pasirengęs." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipas" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Dydis" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Failas" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nieko nedaryti" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Trinti A ir B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Skaitomas failas: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Opening %1 failed. %2" +msgstr "Atveriami failai..." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Dabartinė konfigūracija:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Išsaugojimas nepavyko." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Klaida atveriant bylą" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +msgid "Reload" +msgstr "" +"#-#-#-#-# kfindpart.po (kfindpart) #-#-#-#-#\n" +"Pasiruošęs\n" +"#-#-#-#-# kfilereplace.po (kfilereplace) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# k3b.po (k3b) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# pwmanager.po (pwmanager) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kdat.po (kdat) #-#-#-#-#\n" +"Pasiruošęs.\n" +"#-#-#-#-# kcron.po (kcron) #-#-#-#-#\n" +"Pasiruošęs.\n" +"#-#-#-#-# ksayit.po (ksayit) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kmouth.po (kmouth) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kmrml.po (kmrml) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kcoloredit.po (kcoloredit) #-#-#-#-#\n" +"Pasiruošęs.\n" +"#-#-#-#-# kverbos.po (kverbos) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kmail.po (kmail) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# ksync.po (ksync) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# dub.po (dub) #-#-#-#-#\n" +"Pasirengęs.\n" +"#-#-#-#-# kopete.po (kopete) #-#-#-#-#\n" +"Pasirengęs." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, fuzzy, kde-format +msgid "Quits the application" +msgstr "" +"#-#-#-#-# k3b.po (k3b) #-#-#-#-#\n" +"Išeina iš programos\n" +"#-#-#-#-# kmag.po (kmag) #-#-#-#-#\n" +"Baigs programos darbą\n" +"#-#-#-#-# kmouth.po (kmouth) #-#-#-#-#\n" +"Baigs programos darbą\n" +"#-#-#-#-# kverbos.po (kverbos) #-#-#-#-#\n" +"Baigs programos darbą\n" +"#-#-#-#-# ksync.po (ksync) #-#-#-#-#\n" +"Baigs programos darbą\n" +"#-#-#-#-# umbrello.po (umbrello) #-#-#-#-#\n" +"Baigs programos darbą" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Iškirps pažymėtą sritį ir padės į talpyklą" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Nukopijuos pažymėtą sritį į talpyklą" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "Padės talpyklės turinį dabartinėje pozicijoje" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Įjungs arba išjungs būsenos juostą" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Konfigūruoti KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Eiti į ankstesnį konfliktą" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Ankstesnis\n" +"konfliktas" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Eiti į kitą konfliktą" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Kitas\n" +"konfliktas" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Pasirinkti\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Pasirinkti\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Pasirinkti\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "Iškerpamas žymėjimas..." + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Išsaugomas failas..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Failas įrašomas nauju pavadinimu..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Įrašyti kaip..." + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +#| msgid "Printing completed." +msgid "Printing not implemented." +msgstr "Spausdinimas baigtas." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Spausdinama..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Pažymėjimas" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Spausdinimas baigtas." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Spausdinimas nutrauktas." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Išeinama..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Perjungti būsenos juostą..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3" +msgid "KDiff3 Part" +msgstr "KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Konfigūruoti KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Failas" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Apjungti" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Langas" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Pagrindinė įrankinė" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Ignoruoti" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Dydis. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konfliktai" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Failo išsaugojimo klaida" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Išvestis" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konfliktas" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Failas..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unikodas" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Konfigūruoti" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Šriftas" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Failo išsaugojimo klaida" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Spalva" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Spalvų nustatymai" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Priekinio plano spalva:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Fono spalva:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Spalva A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Spalva B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Spalva C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Konflikto spalva:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Redaktorius" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Langas" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Iškerpamas žymėjimas..." + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Ignore C/C++ comments" +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignoruoti C/C++ komentarus" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Apjungti" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Sinchronizuoti aplankus" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, fuzzy, kde-format +msgid "Auto Select" +msgstr "Iškerpamas žymėjimas..." + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, fuzzy, kde-format +msgid "Integration" +msgstr "Operacija" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading A: %1" +msgstr "Skaitomas failas: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading B: %1" +msgstr "Skaitomas failas: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading C: %1" +msgstr "Skaitomas failas: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Nutraukti" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Atveriami failai..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Iškerpamas žymėjimas..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopijuojama pažymėtą vietą į talpyklę..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Įterpiamas talpyklės turinys..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Atšaukti" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Konfigūruoti..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Atveriami failai..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, fuzzy, kde-format +msgid "Case sensitive" +msgstr "" +"#-#-#-#-# kate.po (kate) #-#-#-#-#\n" +"Skirti raidžių dydį\n" +"#-#-#-#-# quanta.po (quanta) #-#-#-#-#\n" +"Skirti raidžių dydį\n" +"#-#-#-#-# kfilereplace.po (kfilereplace) #-#-#-#-#\n" +"Skirti raidžių dydį\n" +"#-#-#-#-# kbabel.po (kbabel) #-#-#-#-#\n" +"Skiriant raidžių dydį\n" +"#-#-#-#-# kopete.po (kopete) #-#-#-#-#\n" +"Skirti raidžių dydį" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Ieškoti" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Iš iškarpinės" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/lt/kdiff3fileitemactionplugin.po b/po/lt/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..a3cd700 --- /dev/null +++ b/po/lt/kdiff3fileitemactionplugin.po @@ -0,0 +1,93 @@ +# Lithuanian translations for l package. +# Copyright (C) 2011 This_file_is_part_of_KDE +# This file is distributed under the same license as the l package. +# Automatically generated, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2011-08-02 05:07+0200\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: lt\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 ? 0 : n%10>=2 && (n%100<10 || n" +"%100>=20) ? 1 : n%10==0 || (n%100>10 && n%100<20) ? 2 : 3);\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" \ No newline at end of file diff --git a/po/mai/kdiff3.po b/po/mai/kdiff3.po new file mode 100644 index 0000000..78fcda9 --- /dev/null +++ b/po/mai/kdiff3.po @@ -0,0 +1,3335 @@ +# translation of kdiff3.po to Maithili +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Rajesh Ranjan , 2010. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2010-09-24 20:11+0530\n" +"Last-Translator: Rajesh Ranjan \n" +"Language-Team: Maithili \n" +"Language: mai\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "संगीता कुमारी" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sangeeta09@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "स्मृति सँ बाहर" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Making folder: %1" +msgstr "निर्देशिका" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Removing folder: %1" +msgstr "निर्देशिका" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading folder: %1" +msgstr "निर्देशिका" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "उपलब्ध नहि" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "एनकोडिंग:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "एनकोडिंग:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "अंत" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open File" +msgstr "फाइल" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "मिलाबू" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "सम्पन्न" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "त्रुटि" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "नाम" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "सँक्रिया" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "स्थिति" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "उज्जर" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "चेतावनी" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "" + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder A" +msgstr "निर्देशिका" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder B" +msgstr "निर्देशिका" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder C" +msgstr "निर्देशिका" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "" + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "प्रकार" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "आकार" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "फाइल" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "उपलब्ध नहि" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "किछु नहि करू" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "पुनः लोड करू" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "स्ट्रिंग लेल ढूँढू" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "पंक्ति सँख्यासभ देखाबू" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "एहन सहेजू..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "छपाइ भए रहल अछि..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "चुनाव" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "" + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "Diff" +msgid "KDiff3 Part" +msgstr "Diff" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, fuzzy, kde-format +#| msgid "Diff" +msgid "&KDiff3" +msgstr "Diff" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +#| msgid "Configure" +msgid "Configure KDiff3" +msgstr "बिन्यस्त करू" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, fuzzy, kde-format +#| msgid "Diff" +msgid "KDiff3" +msgstr "Diff" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "फाइल (&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "मिलाबू" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "विंडो (&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "मुख्य अओजार पट्टी" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "उपेक्षा" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "संघर्ष" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "आउटपुट" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding for saving:" +msgstr "एनकोडिंग:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "विरोध" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "यूनिकोड" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "बिन्यस्त करू" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "फोन्ट" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "रंग" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "अग्रभूमि क' रंगः" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "पृष्ठभूमि क' रंगः" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "संपादक" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "विंडो (&W)" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "स्वतः चुनू" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "मिलाबू" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "स्वतः चुनू" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "संयोजन" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading A: %1" +msgstr "एनकोडिंग:" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading B: %1" +msgstr "एनकोडिंग:" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading C: %1" +msgstr "एनकोडिंग:" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "छोड़ू" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "खोज पूर्ण भेल." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "रद्द करू (&C)" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "कान्फिगर..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open Folder" +msgstr "फाइल" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "स्थितिक प्रति संवेदनशील" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "खोज (&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "क्लिपबोर्ड सँ" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/ml/kdiff3.po b/po/ml/kdiff3.po new file mode 100644 index 0000000..e4d3bad --- /dev/null +++ b/po/ml/kdiff3.po @@ -0,0 +1,3468 @@ +# Malayalam Translation of kdiff3 +# Copyright (C) 2009 This_file_is_part_of_KDE +# This file is distributed under the same license as the KDIFF3 package. +# SANKARANARAYANAN | ശങ്കരനാരായണന്‍ , 2009. +# Praveen Arimbrathodiyil , 2009. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2009-01-19 HO:MI+ZONE\n" +"Last-Translator: SANKARANARAYANAN | ശങ്കരനാരായണന്‍ \n" +"Language-Team: SMC \n" +"Language: ml\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ശങ്കരനാരായണന്‍, പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "snalledam@dataone.in, pravi.a@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "ഫയല്‍ നിലവാരം എടുക്കുന്നു: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "ഫയലില്‍ എഴുതി ചേര്ക്കുന്നു: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "ഓര്മ്മക്ക് പുറത്താണ്" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "തട്ട് പണിയുന്നു: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "ഫയല്‍ നീക്കം ചെയ്യുന്നു: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "ഫയല്‍ നീക്കം ചെയ്യുന്നു: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "പ്രതീകാത്മക കണ്ണി സൃഷ്ടിക്കുന്നു: %1->%2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "ഫയല്‍ പുനര്നാമകരണം ചെയ്യുന്നു: %1->%2 " + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "ഫയല്‍ പകര്ത്തുന്നു: %1->%2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "തട്ട് പട്ടികയാക്കുന്നു:%1" + +#: diff.cpp:1551 diff.cpp:1565 +#, fuzzy, kde-format +#| msgid "" +#| "Data loss error:\n" +#| "If it is reproducable please contact the author.\n" +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"സ്ഥിതിവിവരനഷ്ട പിശക്:\n" +" പുന:സൃഷ്ടിക്കാന്‍ കഴിയുന്നതാണെങ്കില്‍ രചയിതാവിനെ സമീപിക്കുക.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "ഗുരുതരമായ ആന്തര പിശക്" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "ഗുരുതരമായ ആന്തര പിശക്" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "ഗുരുതരമായ ആന്തര പിശക്" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "വരി അവസാനിക്കുന്ന രീതി:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "ഏ (അടിസ്ഥാനം)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "വരി അവസാനിക്കുന്ന രീതി:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "മുകളിലെ വരി" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Open" +msgid "Open File" +msgstr "തുറക്കുക" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "യൂണിക്കോഡ്, 8ബിറ്റ്" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "ലയിപ്പിക്കുക" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "ഇപ്പോള്‍ നിങ്ങള്‍ ഒരു തട്ട് ലയിപ്പിച്ചുകൊണ്ടിരിക്കുകയാണ്. അലസിപ്പിക്കണമെന്ന് ഉറപ്പാണോ?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "മുന്നറിയിപ്പ്" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of these files failed:" +msgid "Opening of folders failed:" +msgstr "ഈ ഫയലുകള്‍ തുറക്കുന്നത് പരാജയപ്പെട്ടു:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "ഫയല്‍ തുറക്കുന്നതില്‍ പിശക്" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Saving file..." +msgid "Scanning folders..." +msgstr "ഫയല്‍ സൂക്ഷിയ്ക്കുന്നു..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "തയ്യാര്‍" + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Saving failed." +msgid "Opening %1 failed. %2" +msgstr "സൂക്ഷിക്കുന്നതു് പരാജയപ്പെട്ടു." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"ഭാവിയിലേക്കായി കരുതാന്‍ ശ്രമിക്കുമ്പോള്‍ പഴയ കരുതല്‍ മായ്ക്കുന്നത് പരാജയപ്പെട്ടു.\n" +"ഫയല്‍നാമം: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"ഭാവിയിലേക്കായി കരുതാന്‍ ശ്രമിക്കുമ്പോള്‍ പുഅര്നാമകരണം പരാജയപ്പെട്ടു.\n" +" ഫയല്‍നാമം: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "നിലവിലുള്ള ക്രമീകരണം:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "ക്രമീകരണ ഐച്ഛികത്തിലെ പിശക്:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "--auto ഐച്ഛികം ഉപയോഗിച്ചിച്ചുണ്ടെങ്കിലും, ഉല്പന്ന ഫയല്‍ നിര്‍ദ്ദേശിച്ചിട്ടില്ല." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "--auto ഐച്ഛികം തട്ടുകളുടെ താരതമ്യ‌‌ത്തിനു് അവഗണിച്ചു." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "സൂക്ഷിക്കുന്നതു് പരാജയപ്പെട്ടു." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "ഈ ഫയലുകള്‍ തുറക്കുന്നത് പരാജയപ്പെട്ടു:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "File open error" +msgstr "ഫയല്‍ തുറക്കുന്നതില്‍ പിശക്" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "താരതമ്യ‌‌ത്തിനായി പ്രമാണങ്ങള്‍ തുറക്കുന്നു..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "വീണ്ടും കയറ്റുക" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "ലയനഫലം സൂക്ഷിയ്ക്കുന്നു. എല്ലാ വൈരുദ്ധ്യ‌ങ്ങളും പരിഹരിക്കപ്പെടണം!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "നിലവിലുള്ള പ്രമാണങ്ങള്‍ ഇങ്ങനെ സൂക്ഷിയ്ക്കുന്നു..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ അച്ചടിയ്ക്കുക" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "പ്രയോഗം വിട്ടുപോകുന്നു" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "തെരഞ്ഞെടുത്ത ഭാഗം മുറിച്ചെടുത്ത് ഓര്‍മ്മച്ചെപ്പില്‍ വെയ്ക്കുന്നു" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "തെരഞ്ഞെടുത്ത ഭാഗം പകര്‍ത്തെടുത്ത് ഓര്‍മ്മച്ചെപ്പില്‍ വെയ്ക്കുന്നു" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "ഓര്‍മ്മച്ചെപ്പിലെ ഉള്ളടക്കം യഥാസ്ഥാനത്ത് പതിക്കുന്നു" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "നിലവിലുള്ള ജാലകത്തിലെ എല്ലാം തെരഞ്ഞെടുക്കുക" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "ഒരു അക്ഷരനിര പരതുന്നു" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "വീണ്ടും ആ അക്ഷരനിര പരതുന്നു" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "നിലവാരപ്പട്ട പ്രാവര്‍ത്തികമാക്കുന്നു/പ്രവര്‍ത്തനരഹിതമാക്കുന്നു" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "കെഡിഫ്3 ക്രമീകരിക്കാം..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "നിലവിലുള്ള ഡെല്‍ട്ടയിലേക്ക് പോകുക" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"നിലവിലുള്ള\n" +"ഡെല്‍ട്ട" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "ആദ്യ ഡെല്‍ട്ടയിലേക്ക് പോകുക" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"ആദ്യ‌‌ത്തെ\n" +"ഡെല്‍ട്ട" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "അവസാന ഡെല്‍ട്ടയിലേക്ക് പോകുക" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"അവസാന\n" +"ഡെല്‍ട്ട" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(\"ഒഴിഞ്ഞ ഇടങ്ങള്‍ കാണിയ്ക്കുക\" പ്രവര്‍ത്തമരഹിതമാക്കിയാല്‍ ഒഴിഞ്ഞ ഇടങ്ങളിലെ വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ " +"ഒഴിവാക്കുന്നു.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"( \"ഒഴിഞ്ഞ ഇടങ്ങള്‍ കാണിയ്ക്കുക\" പ്രവര്‍ത്തമരഹിതമാക്കിയാലും ഒഴിഞ്ഞ ഇടങ്ങളുടെ വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ " +"ഒഴിവാക്കുന്നില്ല.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "മുന്‍ ഡെല്‍ട്ടയിലേക്ക് പോകുക" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"മുന്‍\n" +"ഡെല്‍ട്ട" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "അടുത്ത ഡെല്‍ട്ടയിലേക്ക് പോകുക" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"അടുത്ത\n" +"ഡെല്‍ട്ട" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "മുന്‍ വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"മുന്‍\n" +"വൈരുദ്ധ്യം" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "അടുത്ത വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"അടുത്ത\n" +"വൈരുദ്ധ്യം" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "പരിഹരിക്കപ്പെടാത്ത മുന്‍ വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"മുന്‍\n" +"പരിഹരിക്കപ്പെടാത്ത" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "പരിഹരിക്കപ്പെടാത്ത അടുത്ത വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"അടുത്ത\n" +"പരിഹരിക്കപ്പെടാത്ത" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "A യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"A\n" +"തെരഞ്ഞെടുക്കുക" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "B യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"B\n" +"തെരഞ്ഞെടുക്കുക" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "C യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"C\n" +"തെരഞ്ഞെടുക്കുക" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "സ്രോതസ്സ് തെരഞ്ഞെടുത്താല്‍ സ്വയം അടുത്ത പരിഹരിക്കപ്പെടാത്ത വൈരുദ്ധ്യ‌ത്തിലേക്ക് പോകുക" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"സ്വയം\n" +"അടുത്ത" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ക്കായി ഇടവും പട്ടികയുടെ ചിഹ്നങ്ങളും കാണിക്കുക" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"ഒഴിഞ്ഞ\n" +"അക്ഷരങ്ങള്‍" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "ശുഭ്രസ്ഥാനങ്ങള്‍ കാണിക്കുക" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"എഴുതുക\n" +"ഡെല്‍റ്റാസ്" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "വരികളുടെ നമ്പര്‍ കാണിക്കുക" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"വരി\n" +"നമ്പര്‍" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "നിസ്സാര വൈരുദ്ധ്യ‌ങ്ങള്‍ സ്വയം പരിഹരിക്കുക" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "വൈരുദ്ധ്യ‌ങ്ങള്‍ക്ക് ഡെല്‍റ്റകളെ തയ്യാറാക്കുക" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "റെഗുലര്‍ എക്സ്പ്രഷന്റെ യാന്ത്രികലയനം പ്രവര്‍ത്തിപ്പിക്കുക" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "നാള്‍വഴി വൈരുദ്ധ്യ‌ങ്ങള്‍ സ്വയം പരിഹരിക്കുക" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "തെരഞ്ഞെടുക്കുന്ന സമയത്ത് diff പിളര്ത്തുക" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "തെരഞ്ഞെടുത്ത diff യോജിപ്പിക്കുക" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "ജാലകം A കാണിക്കുക" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "ജാലകം B കാണിക്കുക" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "ജാലകം Cകാണിക്കുക" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "സാധാരണ ചെറുവിവരണം" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A ക്കും Bക്കും പൊതുവായ ചെറുവിവരണം" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A ക്കും Cക്കും പൊതുവായ ചെറുവിവരണം" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr " Bക്കും Cക്കും പൊതുവായ ചെറുവിവരണം" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "ഡിഫ് ജാലകങ്ങളിലെ വാക്കുകള്‍ ഒതുക്കുക" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "ഡിഫില്‍ മാനവികമായി നിര ഒപ്പിക്കല്‍ ചേര്‍ക്കുക" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "ഡിഫിലെ എല്ലാ‍ മാനവികമായ നിര ഒപ്പിക്കലും നീക്കം ചെയ്യുക" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "അടുത്ത ജാലകത്തില്‍ കേന്ദ്രീകരിക്കുക" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "പിന്നിട്ട ജാലകത്തില്‍ കേന്ദ്രീകരിക്കുക" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "പിളര്ന്ന ഘടന മാറ്റുക" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "അറയും &പാഠങ്ങളും പിളര്ന്ന യവനികാദൃശ്യം" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "അറയുടേയും പാഠങ്ങളുടേയും കാഴ്ചകള്‍ തമ്മില്‍ മാറ്റുക" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "ലയനഫലം സംരക്ഷിച്ചിട്ടില്ല." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "സംരക്ഷിച്ച് &&വിട്ടുപോകുക" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "സംരക്ഷിക്കാതെ വിട്ടുപോകുക" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "ലയനഫലം സൂക്ഷിയ്ക്കുന്നതില്‍ പരാജയം" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "ഇപ്പോള്‍ നിങ്ങള്‍ ഒരു തട്ട് ലയിപ്പിച്ചുകൊണ്ടിരിക്കുകയാണ്. അലസിപ്പിക്കണമെന്ന് ഉറപ്പാണോ?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "ഫയല്‍ സൂക്ഷിയ്ക്കുന്നു..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "ഫയല്‍ ഒരു പുതിയ ഫയല്‍നാമത്തില്‍ സൂക്ഷിയ്ക്കുന്നു..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "...ആയി സൂക്ഷിയ്ക്കുക" + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +#| msgid "Printing completed." +msgid "Printing not implemented." +msgstr "അച്ചടി മുഴുവനായി" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "അച്ചടിക്കുന്നു" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "തെരഞ്ഞെടുക്കല്‍" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "അച്ചടി മുഴുവനായി" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "അച്ചടി അലസി." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "വിട്ടു പോകുന്നു..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "ഉപകരണപ്പട്ട മാറ്റുന്നു..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "നിലവാരപ്പട്ട മാറ്റുക" + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3" +msgid "KDiff3 Part" +msgstr "കെഡിഫ്3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&കെഡിഫ്3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "കെഡിഫ്3 ക്രമീകരിയ്ക്കുക" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "കെഡിഫ്3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&ശേഖരം" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&നീക്കം" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "&വ്യത്യാസകാഴ്ച" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "ലയിപ്പിക്കുക" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&ജാലകം" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "പ്രധാന ഉപകരണപ്പട്ട" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "അവഗണിയ്ക്കുക" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "എല്ലായിടത്തും A തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "എല്ലായിടത്തും B തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "എല്ലായിടത്തും C തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും A തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും B തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും C തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും A തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും B തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും C തെരഞ്ഞെടുക്കുക" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "വൈരുദ്ധ്യങ്ങള്‍" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<സ്രോതസ്സില്‍ വരിയില്ല>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<ലയനത്തില്‍ വൈരുദ്ധ്യം (ഒഴിഞ്ഞ സ്ഥലം മാത്രം)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<ലയനത്തില്‍ വൈരുദ്ധ്യം>" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "ബാക്കിയുള്ള വൈരുദ്ധ്യങ്ങള്‍" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "വൈരുദ്ധ്യം" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "ഏ (അടിസ്ഥാനം)" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "ഉത്പന്നം (ഐച്ഛികം):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "ഫയല്‍..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "വെച്ചുമാറല്‍/പേരുകള്‍ ‍പകര്‍ത്തല്‍..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "സി (ഐച്ഛികം):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"ഒരു ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി ചേര്‍ക്കുന്നതില്‍ പല വരികളുണ്ടാകും.\n" +"ആദ്യ‌‌ത്തെ വരി കണ്ടുപിടിക്കാനുള്ള നിത്യ‌‌ഭാവം നിര്‍ദ്ദേശിക്കുക (മുന്നിലെ വിശദീകരണം കൂടാതെ).\n" +"ഇനം തിരിക്കാനുപയോഗിക്കുന്ന കീകളെ ഒന്നിച്ചാക്കാന്‍ ബ്രാക്കറ്റുകള്‍ ഉപയോഗിക്കുക.\n" +"ഒഴിച്ചു വിട്ടാല്‍ ഒഴിഞ്ഞ വരികള്‍ നാള്‍വഴിയിലെ വിവരങ്ങള്‍ വേര്‍തിരിക്കാനാണെന്ന് കെഡിഫ്3 സങ്കല്‍" +"പ്പിയ്ക്കും.\n" +"വിശദീകരണങ്ങള്‍ക്ക് പ്രമാണപത്രം കാണുക." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"കെഡിഫ്3 സ്വതന്ത്രമായി ഒരു സ്രോതസ്സ് തെരഞ്ഞെടുക്കുന്നിടത്ത് വരികള്‍ക്കുള്ള നിത്യഭാവം.\n" +"സംഘട്ടനമുള്ള വരി ചേര്‍ന്നുവരുമ്പോള്‍ അതിന്റെ നിത്യ‌‌ഭാവം\n" +"-സി ഉണ്ടെങ്കില്‍ അത്, അല്ലെങ്കില്‍ ബി തെരഞ്ഞെടുക്കപ്പെടും." + +#: optiondialog.cpp:58 +#, fuzzy, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി തുടങ്ങുന്നതിന്റെ നിത്യഭാവം എഴുതിച്ചേര്‍ക്കല്‍.\n" +"സാധാരണയായി ഈ വരി \"$Log$\"-keyword.\n" +" ഉള്‍ക്കൊണ്ടിരിക്കും.\n" +"തനത് മൂല്യം:\".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "യൂണിക്കോഡ്" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "ലാറ്റിന്‍1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "ASCII അല്ലാത്ത ചിഹ്നങ്ങള്‍ ശരിയായി പ്രദര്ശിപ്പിക്കപ്പെടുന്നില്ലെങ്കില്‍ അത് മാറ്റുക" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "ക്രമീകരിക്കുക" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "അക്ഷരരൂപം" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "ഗ്രന്ധ പരിശോധകനും ഡിഫ് പുറത്ത് വിടുന്നതിന്റെ അക്ഷരരൂപവും" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "വര്‍ണ്ണം" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "വര്‍ണ്ണങ്ങള്‍ ഉറപ്പിക്കല്‍ " + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "ഗ്രന്ധപരിശോധകനും ഡിഫ് വീക്ഷണവും" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "പുരോതല വര്ണ്ണം:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "പശ്ചാത്തല വര്‍ണ്ണം:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "ഡിഫ് പശ്ചാത്തല വര്‍ണ്ണം:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "വര്ണ്ണം ഏ:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "വര്ണ്ണം ബി" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "വര്ണ്ണം സി" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "വര്ണ്ണ വൈരുദ്ധ്യം:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "നടപ്പിലുള്ള റേഞ്ചിന്റെ പശ്ചാത്തല വര്ണ്ണം:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "നടപ്പിലുള്ള റേഞ്ചിന്റെ ഡിഫ് പശ്ചാത്തല വര്ണ്ണം:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "മാനവികമായി വരിയാക്കിയ വ്യ‌‌ത്യാ‌സ പരിധികളുടെ വര്ണ്ണം:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "അറകളുടെ താരതമ്യ‌‌വീക്ഷണം" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "ഏറ്റവും പുതിയ ഫയലിന്റെ വര്ണ്ണം" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "ഈ വര്ണ്ണം മാറുന്നത് മാത്രമേ അടുത്ത അറകളുടെ താരതമ്യം തുടങ്ങുമ്പോള്‍ഫലപ്രദമാകൂ." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "ഏറ്റവും പഴയ ഫയലിന്റെ നിറം:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "മദ്ധ്യ‌‌കാല ഫയലിന്റെ നിറം:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "കാണാതെപോയ ഫയലിന്റെ നിറം" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "ഗ്രന്ഥ പരിശോധകന്‍" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "ഗ്രന്ഥ പരിശോധകന്റെ പെരുമാറ്റം" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "തൊങ്ങല്‍ ഇടയ്ക്ക് സ്ഥലം ഇടുന്നു" + +#: optiondialog.cpp:790 +#, fuzzy, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"ഓണ്‍: ടാബ് കീ അമര്ത്തിയാല്‍ ആവശ്യ‌‌ത്തിനുള്ള അച്ചകലം സൃഷ്ടിക്കും.\n" +"ഓഫ്: ഒരു ടാബ് ചിഹ്നം പതിക്കും." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "ടാബ് അളവ്:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "യാന്ത്രികമായി സ്ഥലം ഒഴിച്ചുവിടല്‍ " + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "ഓണ്‍: മുന്‍ വരിയില്‍ സ്ഥലം ഒഴിച്ചു വിട്ടത് പുതിയ വരി തുടങ്ങാന്‍ ഉപയോഗിച്ചു.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "യാന്ത്രിക പകര്പ്പ് തെരഞ്ഞെടുക്കുക" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"ഓണ്‍: തെരഞ്ഞെടുത്തതെന്തും ഉടനടി ഓര്‍മ്മച്ചെപ്പില്‍ എഴുതപ്പെടും.\n" +"ഓഫ്: നിങ്ങള്‍ നിസ്സംശയം പകര്‍പ്പെടുക്കണം. ഉദാഹരണമായി Ctrl+C വഴി." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&ജാലകം" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "" +#| "Auto\n" +#| "Next" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" +"സ്വയം\n" +"അടുത്ത" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"ചിട്ടപ്പെടുത്തിക്കഴിഞ്ഞ ഒരു ഫയല്‍ സം‌രക്ഷിക്കുമ്പോള്‍ വരിയുടെ അവസാനം ഉറപ്പിക്കുന്നു.ഡോസ്/വിന്‍ഡോസ്: " +"CR=0D, LF=0A നോട് ചേര്‍ത്ത് CR+LF; UNIX: LF" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "ഡിഫ്" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "ഡിഫ് സജ്ജീകരണങ്ങള്‍" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "വെളുത്ത അച്ചകലമായി കണക്കാക്കുക" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"വരികളുടെ ചേര്‍ച്ച നോക്കുന്ന ഘട്ടത്തില്‍ അക്കങ്ങളായ ചിഹ്നങ്ങള്‍ വിഗണിക്കുക. (വെളുത്തഅച്ചകലങ്ങള്‍ " +"വിഗണിച്ചപോലെ.)\n" +"ഫയലുകള്‍ സാംഖ്യ‌‌‌‌വിവരങ്ങളുമായി താരതമ്യം ചെയ്യാന്‍ സഹായിച്ചേയ്ക്കും." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "സി/സി++ വിശദീകരണം വെള്ള അച്ചകലമായി കണക്കാക്കുക." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "സി/സി++ വിശദീകരണം വെള്ള അച്ചകലമായി കണക്കാക്കുക." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "വെളുത്ത അച്ചകലമായി കണക്കാക്കുക" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "അക്ഷരങ്ങളുടെ അവസ്ഥാന്തരങ്ങള്‍ ‍വെള്ള അച്ചകലമായി കണക്കാക്കുക ('a'<=>'A'" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "പൂര്‍വ്വ പ്രക്രിയയ്ക്കുള്ള ആജ്ഞ:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "ഉപയോക്താവ് നിര്‍വ്വചിയ്ക്കുന്ന പൂര്‍വ്വ -പ്രക്രിയ. ( വിശദീകരണങ്ങള്ക്ക് പ്രമാണപത്രം നോക്കുക.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "വരികളുടെ-ചേര്‍ച്ച നോക്കുന്ന പൂര്‍വ്വ പ്രക്രിയയ്ക്കുള്ള ആജ്ഞ:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"വരികളുടെ ചേര്‍ച്ച നോക്കുമ്പോള്‍ മാത്രമേ ഈ പൂര്‍വ്വപ്രക്രിയ ഉപയോഗിക്കൂ.\n" +"(വിശദീകരണങ്ങള്ക്ക് പ്രമാണപത്രം നോക്കുക.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "കഠിനമായി യത്നിക്കുക (സാവകാശം)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"പുറം ഡിഫിനായി --ഏറ്റവും കുറഞ്ഞ ഐച്ഛികങ്ങള്‍ സജീവമാക്കുന്നു.\n" +"വളരെ വലിയ ഫയലുകളുടെ വിശകലനം വളരെ സാവധാനത്തിലായിരിക്കും." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "3 അകത്തുവിടാനുള്ള ഫയലുകള്‍ക്കായി ബിയും സിയും നിര ഒപ്പിക്കുക." + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"അകത്തുവിടാനുള്ള 3ഫയലുകള്‍ താരതമ്യമ് ചെയ്യുമ്പോഴോ ലയനം നടത്തുമ്പോഴോബിയും സിയും നിരഒപ്പിക്കാന്‍ " +"ശ്രമിക്കണം.\n" +"കൂടുതല്‍ കുഴപ്പം പിടിച്ചതായതുകൊണ്ട് ലയനത്തിന്റെ കാര്യ‌‌ത്തില്‍ അത് ശുപാര്‍ശ ചെയ്തിട്ടില്ല.\n" +"(ഓഫ് ആണ് സഹജം.)" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "ലയിപ്പിക്കുക" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "ഒരുക്കങ്ങള്‍ ലയിപ്പിക്കുക" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "യാന്ത്രികമായ മുന്‍കൂര്‍ വിളംബം (മിസെ):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"സ്വയം പുരോഗമിക്കുന്ന മട്ടിലാകുമ്പോള്‍ അടുത്ത സംഘട്ടത്തിലേക്ക് എടുത്തു ചാടുന്നതിന് മുമ്പ് ഇപ്പോള്‍ " +"തെരഞ്ഞെടുത്തതിന്റെ ഫലം നിര്‍ദ്ദേശിക്കപ്പെട്ടസമയത്തേയ്ക്ക് കാണിക്കും \n" +"ദൈര്‍ഘ്യം: 0-2000മിസെ" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "വിവരങ്ങളുടെ സംവാദ ജാലകം കാണിക്കുക" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "സംഘട്ടനങ്ങളുടെ എണ്ണത്തെ സംബന്ധിക്കുന്ന വിവരം ഒരു സംവാദജാലകത്തില്‍ കാണിക്കുക." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "ശുഭ്രസ്ഥാനം 2-ഫയല്‍ ലയനം സഹജം:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "മാനവിക അവസരം" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"ശുഭ്ര-സ്ഥാനത്തിന്-മാത്രം വേണ്ടി സ്വയം നിക്ഷേപം തെരഞ്ഞെടുക്കാന്‍ ലയനത്തിനായുള്ള ആജ്ഞാസംഹിതക്ക് " +"മാറ്റങ്ങള്‍ അനുവദിക്കുക" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "ശുഭ്രസ്ഥാനം 3-ഫയല്‍ ലയനം സഹജം:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "നിത്യഭാവം സ്വയമേവ ലയിപ്പിക്കുക" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "നിത്യഭാവം സ്വയം ലയിപ്പിക്കുക:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "ലയനം തുടങ്ങുമ്പോള്‍ നിത്യ‌‌ഭാവത്തിന്റെ യാന്ത്രികലയനം പ്രവര്‍ത്തിപ്പിക്കുക" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"ഒരു ലയനം തുടങ്ങുമ്പോള്‍ ഉടനെത്തന്നെ നിത്യഭാവത്തിന്റെ സ്വയം ലയനത്തിന്\n" +" വേണ്ടി ലയനം പ്രവര്‍ത്തിപ്പിക്കുക.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി ലയിപ്പിക്കല്‍" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "നാള്‍വഴി നിത്യ‌‌ഭാവം തുടങ്ങുക:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "നാള്‍വഴി ചേര്‍ക്കുന്നത് നിത്യ‌‌ഭാവം തുടങ്ങും:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "തരം തിരിക്കുന്നതിനെ നാള്‍വഴി ലയിപ്പിക്കുന്നു" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "ഭാഷാന്തര നിയന്ത്രണ നാള്‍വഴി ഒരു കീ ഉപയോഗിച്ച് തരം തിരിക്കുക." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "നാള്‍വഴി ചേര്‍ത്തത് കീകളുടെ ക്രമം തരം തിരിക്കാന്‍ തുടങ്ങുന്നു." + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "തട്ടിനുള്ളിലെ തട്ടുകള്‍ കൂടി" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "തട്ടിനുള്ളിലെ തട്ടുകള്‍ കൂടി വിശകലനം ചെയ്യണോ വേണ്ടയോ എന്നു്." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Ignore case" +msgid "Use Ignore File" +msgstr "അക്ഷരങ്ങളുടെ അവസ്ഥ വിഗണിക്കുക" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Unfold all subfolders on load" +msgstr "തട്ടിനുള്ളിലെ തട്ടുകള്‍ കൂടി വിശകലനം ചെയ്യണോ വേണ്ടയോ എന്നു്." + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading A: %1" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading B: %1" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading C: %1" +msgstr "ഫയല്‍ വായിക്കുന്നു: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&റദ്ദു ചെയ്യുക" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "വെച്ചുമാറല്‍ %1->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "പകര്‍പ്പ് %1-> ഉത്പന്നം" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "വെച്ചുമാറല്‍ %1->ഉത്പന്നം" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "ക്രമീകരിക്കുക..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Open" +msgid "Open Folder" +msgstr "തുറക്കുക" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "പാഠം പരതുക:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "അവസ്ഥ സൂക്ഷ്മവേദ്യ‌‌മായ" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "ഏ പരതുക" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "ബി പരതുക" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "സി പരതുക" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "ഉത്പന്നം പരതുക" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&പരതുക" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "നിത്യഭാവ പരിശോധകന്‍" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "വരി സ്വയം ലയിപ്പിക്കുക ഉദാഹരണം:" + +#: smalldialogs.cpp:397 +#, fuzzy, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "സ്വയം ലയിപ്പിക്കുവാന്‍ നിങ്ങളുടെ ഫയലിലെ ഒരു വരി പരീക്ഷണ പകര്‍ത്തല്‍ നടത്തുക." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "ചേര്ച്ചയുടെ ഫലം:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "നാള്‍വഴി ഉദാഹരണം തുടങ്ങുന്ന വരി (വ്യാഖ്യാ‌‌നം മുന്നിലായി):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "നിങ്ങളുടെ ഫയലില്‍ ഉള്ള പോലെ നാള്‍വഴി തുടങ്ങുന്ന വരിമുന്നിലെ വ്യാഖ്യാ‌‌നത്തോടെ പകര്‍ത്തുക." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "നാള്‍വഴി തരം തിരിക്കുന്ന കീയുടെ ക്രമം:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "ഉദാഹരണത്തിന് നാള്‍വഴി ചേര്‍ക്കുന്നത് തുടങ്ങുന്ന വരി (മുന്നിലെ വ്യാ‌‌ഖ്യാ‌‌നം കൂടാതെ):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"നിങ്ങളുടെ ഫയലിലുപയോഗിക്കുന്ന വിധത്തില്‍ നാള്‍വഴി ചേര്ക്കുന്നത് തുടങ്ങുന്ന വരി പകര്‍ത്തുക,\n" +"എന്നാല്‍ മുന്നിലെ വ്യാ‌‌ഖ്യാ‌‌നം ഒഴിവാക്കണം." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "പ്രധാനപ്പെട്ട ഫലങ്ങള്‍ തരം തിരിക്കുക:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "ചേര്‍ച്ച വിജയം." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "ചേര്‍ച്ച പരാജയപ്പെട്ടു." + +#: smalldialogs.cpp:543 +#, fuzzy, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "നിത്യഭാവത്തില്‍ തുടങ്ങുന്നതും അവസാനിക്കുന്നതുമായ ബ്രാക്കറ്റുകള്‍ യോജിക്കുന്നില്ല." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "ഓര്‍മ്മച്ചെപ്പിലെ വിവരങ്ങള്‍ താല്‍ക്കാലിക ഫയലില്‍ എഴുതി ചേര്ക്കുന്നു." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "ഓര്മ്മച്ചറ്റയില്‍നിന്ന്" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"മുന്‍‌കൂര്‍ നടപടി പരാജയപ്പെട്ടിരിക്കാം. ഈ ആജ്ഞ പരിശോധിക്കൂ:\n" +"\n" +" %1\n" +"\n" +"മുന്‍‌കൂര്‍ നടപടിക്കുള്ല ആജ്ഞ ഇപ്പോള്‍ പ്രവര്‍ത്തനരഹിതമാക്കും." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"വരികളിലെ-സമാനതകാണുന്ന- മുന്‍‌കൂര്‍നടപടി പരാജയപ്പെട്ടിരിക്കാം.ഈ ആജ്ഞ പരിശോധിക്കൂ:\n" +"\n" +" %1\n" +"\n" +"വരികളിലെ-സമാനതകാണുന്ന- മുന്‍‌കൂര്‍നടപടി ആജ്ഞ ഇപ്പോള്‍ പ്രവര്‍ത്തനരഹിതമാക്കും." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/mr/kdiff3.po b/po/mr/kdiff3.po new file mode 100644 index 0000000..379ddeb --- /dev/null +++ b/po/mr/kdiff3.po @@ -0,0 +1,3323 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Chetan Khona , 2013. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2013-03-06 18:02+0530\n" +"Last-Translator: Chetan Khona \n" +"Language-Team: Marathi \n" +"Language: mr\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.5\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "चेतन खोना" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "chetan@kompkin.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "स्मृती कमी पडली" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Making folder: %1" +msgstr "संचयीका" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Removing folder: %1" +msgstr "संचयीका" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading folder: %1" +msgstr "संचयीका" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +msgid "File %1: Line not available" +msgstr "उपलब्ध नाही" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "एन्कोडिंग :" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, fuzzy, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, fuzzy, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, fuzzy, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "एन्कोडिंग :" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, fuzzy, kde-format +msgid "End" +msgstr "समाप्त" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open File" +msgstr "फाईल" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "संपन्न." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "त्रुटी" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, fuzzy, kde-format +msgid "In progress..." +msgstr "प्रगतीपथावर आहे/चालू आहे" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "नाव" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "क्रिया" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "स्थिती" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "पांढरा" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, fuzzy, kde-format +msgid "Warning" +msgstr "इशारा" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +msgid "Opening of folders failed:" +msgstr "%1 साठवणे अयशस्वी झाले :
%2" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +msgid "Scanning folders..." +msgstr "%1 साठवणे अयशस्वी झाले :
%2" + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder A" +msgstr "संचयीका" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder B" +msgstr "संचयीका" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder C" +msgstr "संचयीका" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "तयार." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, fuzzy, kde-format +msgid "delete( %1 )" +msgstr "काढून टाका" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, fuzzy, kde-format +msgid "copy( %1 -> %2 )" +msgstr "प्रत करा" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, fuzzy, kde-format +msgid "rename( %1 -> %2 )" +msgstr "नाव बदला" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "प्रकार" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "आकार" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, fuzzy, kde-format +msgid "Link-Destination" +msgstr "लक्ष्य लिंक करा" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "फाईल" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +msgid "-Link" +msgstr "लिंक" + +#: directorymergewindow.cpp:2766 +#, fuzzy, kde-format +msgid "not available" +msgstr "उपलब्ध नाही" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "काही करू नका" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +msgid "Opening %1 failed. %2" +msgstr "%1 साठवणे अयशस्वी झाले :
%2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, fuzzy, kde-format +msgid "Saving failed." +msgstr "%1 साठवणे अयशस्वी झाले :
%2" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +msgid "Reload" +msgstr "पुन्हा दाखल करा" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +msgid "Show Line Numbers" +msgstr "ओळ क्रमांक दर्शवा (&L)" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "असे साठवा..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "छपाई..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "निवड" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "फाईल (&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "चौकट (&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, fuzzy, kde-format +msgid "Main Toolbar" +msgstr "मुख्य साधनपट्टी" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +msgid "Ignored." +msgstr "दुर्लक्ष करा" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, fuzzy, kde-format +msgid "file2 to open" +msgstr "उघडावयाची फाईल" + +#: main.cpp:144 +#, fuzzy, kde-format +msgid "file3 to open" +msgstr "उघडावयाची फाईल" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, fuzzy, kde-format +msgid "Link: " +msgstr "लिंक" + +#: MergeFileInfos.cpp:421 +#, fuzzy, kde-format +msgid "Size. " +msgstr "आकार" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +msgid "Output:" +msgstr "आउटपुट" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, fuzzy, kde-format +msgid "[Modified]" +msgstr "सुधारले" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding for saving:" +msgstr "एन्कोडिंग :" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, fuzzy, kde-format +msgid "File..." +msgstr "फाईल" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "युनिकोड" + +#: optiondialog.cpp:384 +#, fuzzy, kde-format +msgid "Latin1" +msgstr "लॅटिन" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +msgid "Configure" +msgstr "संयोजीत करा" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "फॉन्ट" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "रंग" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "पृष्ठभूमी रंग :" + +#: optiondialog.cpp:637 +#, fuzzy, kde-format +msgid "Background color:" +msgstr "पार्श्वभूमी रंग :" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "संपादक" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "चौकट (&W)" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "स्वयंचलित निवड" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "स्वयंचलित निवड" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading A: %1" +msgstr "एन्कोडिंग :" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading B: %1" +msgstr "एन्कोडिंग :" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading C: %1" +msgstr "एन्कोडिंग :" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "रद्द करा (&C)" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, fuzzy, kde-format +msgid "Swap %1<->%2" +msgstr "स्वॅप" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "संयोजीत करा..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open Folder" +msgstr "फाईल" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, fuzzy, kde-format +msgid "Case sensitive" +msgstr "अक्षर आकार संवेदनशील" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "शोध (&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/mr/kdiff3fileitemactionplugin.po b/po/mr/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..e5f2825 --- /dev/null +++ b/po/mr/kdiff3fileitemactionplugin.po @@ -0,0 +1,94 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Chetan Khona , 2013. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2013-03-26 15:38+0530\n" +"Last-Translator: Chetan Khona \n" +"Language-Team: Marathi \n" +"Language: mr\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.5\n" + +#: kdiff3fileitemaction.cpp:81 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "के-डिफ3 ..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "याच्याशी तुलना करा %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "याच्याशी एकत्रीकरण करा %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "याच्याशी तुलना करा ..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "यादी रिकामी करा" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "तुलना करा" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" \ No newline at end of file diff --git a/po/nb/kdiff3.po b/po/nb/kdiff3.po new file mode 100644 index 0000000..8ada25e --- /dev/null +++ b/po/nb/kdiff3.po @@ -0,0 +1,3476 @@ +# Translation of kdiff3 to Norwegian Bokmål +# +# Knut Yrvin , 2003. +# Bjørn Steensrud , 2006, 2008, 2009, 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-04-07 02:13+0000\n" +"PO-Revision-Date: 2011-09-04 22:27+0200\n" +"Last-Translator: Bjørn Steensrud \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.2\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Klaus Ade Johnstad" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "klaus@skolelinux.no" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Henter filstatus: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Leser fil: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Skriver fil: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Slapp opp for minne" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Fjerner fil: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Oppretter symbolsk lenke: %1 → %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Endrer navn på fil: %1 → %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopierer fil: %1 → %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Lister mappe: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Datatap-feil:\n" +"Hvis det kan gjenskapes, vennligst kontakt forfatteren.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Alvorlig intern feil" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Tegnkoding:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Linjeavslutning:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Øverste linje" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Slutt" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopier A til B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopier B til A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Slett A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Slett B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Slett A & B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Flett til A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Flett til B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Flett til A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Slett (hvis det finnes)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Flett sammen" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Flett (manuelt)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Feil: Konflikt mellom filtyper" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Feil: Endret og slettet" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Feil: Datoene er like, men ikke filene." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Feil" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Hoppet over." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Ikke lagret." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Pågår …" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Gjenstår." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Navn" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Handling" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Uløst" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Løst" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Ikkehvitt" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Hvitt" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Advarsel" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Les på nytt" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Fortsett fletting" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parameter-advarsel" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "" + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Klar." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Dette påvirker alle flettehandlinger." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Endre alle flette-handlinger" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Denne handlinga er ikke mulig nå." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Handling ikke mulig" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Flettefeil" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Ukjent flettehandling. (Dette må aldri skje!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Ukjent flettehandling." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Flettingen skal til å starte.\n" +"\n" +"Velg «Gjør det» hvis du har lest instruksjonene og vet hva du gjør.\n" +"Velg «Simuler det» for å se hva som vil skje.\n" +"\n" +"Vær oppmerksom på at dette programmet er i beta-status og det er OVERHODET " +"INGEN GARANTI! Ta sikkerhetskopi av vitale data!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Starter fletting" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Gjør det" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuler det" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Filene er ulike men har samme dato for siste endring. Velg hva som skal " +"gjøres." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Det var en feil i siste steg.\n" +"Vil du fortsette med elementet som ga feil, eller hoppe over det?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Fortsett fletting etter feil" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Fortsett med siste element" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Hopp over element" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Flettehandling fullført." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Fletting fullført" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulert fletting fullført. Se etter om du er enig i de foreslåtte " +"handlingene." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Feil: Under sletting av %1: oppretting av sikkerhetskopi mislyktes." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "slett ( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Feil: rmdir( %1 ) mislyktes." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Feil: sletting mislyktes." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "manuell fletting( %1, %2, %3 → %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Merk: Etter en manuell fletting bør brukeren fortsette ved å trykke F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Feil: kopiering (%1 → %2) mislyktes. Eksisterende mål kunne ikke slettes." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 → %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Feil: copyLink mislyktes. Det er ikke støtte for nettverkslenker ennå." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Feil: copyLink mislyktes." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopier(%1 → %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Feil under navneendring( %1 → %2 ): Kan ikke slette eksisterende mål." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "endre navn ( %1 → %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Feil: navneendring mislyktes." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Feil ved oppretting av mappe %1. Kan ikke slette eksisterende fil." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Lag mappe( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Mål" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Type" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Størrelse" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Siste endring" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Lenkemål" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fil" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ikke tilgjengelig" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (mål): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (basis): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (mål): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (mål) :" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Mål: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Kjør handling for gjeldende element" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Sammenlikne valgt fil" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Flett gjeldende fil" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Flett\n" +"Fil" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Velg A for alle elementer" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Velg B for alle elementer" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Velg C for alle elementer" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Auto-velg handling for alle elementer" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ingen handling for alle elementer" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Vis identiske filer" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identiske\n" +"filer" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Vis forskjellige filer" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Vis filer bare i A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Filer \n" +"bare i A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Vis filer bare i B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Filer \n" +"bare i B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Vis filer bare i C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Filer \n" +"bare i C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Sammenlikne uttrykkelig valgte filer" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Flett uttrykkelig valgte filer" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ikke gjør noe" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Slett A && B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Flett til A && B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Klarte ikke opprette midlertidig kopi av %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Gjeldende oppsett:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Feil i oppsett:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "--auto brukt, men ingen utdatafil er oppgitt." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Lagring mislyktes." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Klarte ikke åpne disse filene:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Feil ved filåpning" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Åpner dokumentere for sammenlikning …" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Last på nytt" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Lagrer fletteresultatet. Alle konflikter må løses!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Lagrer gjeldende dokument som …" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Skriv ut forskjellene" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Avslutter programmet" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Klipper ut det markerte og legger det på utklippstavla" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopierer det markerte til utklippstavla" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Limer inn innhold fra utklippstavla til gjeldende posisjon" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Velg alt i gjeldende vindu" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Søk etter en streng" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Søk igjen etter strengen" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Slår statuslinja av/på" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Sett opp KDiff3 …" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Gå til gjeldende Delta" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Gjeldende\n" +"Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Gå til første Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Første\n" +"Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Gå til siste Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Siste\n" +"Delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Hopper over forskjeller i tomrom når «Vis tomrom» er slått av.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Hopper ikkeover forskjeller i tomrom selv når «Vis tomrom» er slått av.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Gå til forrige Delta" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Forrige\n" +"Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Gå til neste Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Neste\n" +"Delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Gå til forrige konflikt" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Forrige\n" +"lonflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Gå til neste konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Neste\n" +"konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Gå til forrige uløste konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Forrige\n" +"uløste" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Gå til neste uløste konflikt" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Neste\n" +"uløste" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Velg linje(r) fra A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Velg\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Velg linje(r) fra B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Velg\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Velg linje(r) fra C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Velg\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Gå automatisk til neste uløste konflikt etter at kildene er valgt" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Auto\n" +"neste" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Tomroms\n" +"tegn" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Vis tomrom" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Tomroms\n" +"deltaer" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Vis linjenumre" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Linje\n" +"numre" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Løs enkle konflikter automatisk" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Sett deltaer til konflikter" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Kjør autofletting med regulære uttrykk" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Løs opp historiekonflikter automatisk" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Splitt differansen ved utvalget" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Slå sammen valgte differ" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Vis vindu A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Vis vindu B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Vis vindu C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normal oversikt" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Oversikt A mot B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Oversikt A mot C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Oversikt B mot C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Ordbryt i diff-vinduer" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Legg til manuell diff-innretting" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Tilbakestill all manuell diff-innretting" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokus på neste vindu" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokus på forrige vindu" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Bytt om splitt-orientering" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Lagre og avslutt" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Avslutt uten lagring" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Fletteresultatet kunne ikke lagres." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Lagrer fil …" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Lagrer fil med nytt filnavn …" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Lagre som …" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Utskrift er ikke implementert." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Skriver ut …" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr "" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Utskrift fullført." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Utskrift avbrutt." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Avslutter …" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Slår verktøylinje av/på …" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Slå statuslinje av/på …" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "En KPart som viser SVG-bilder" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Sett opp KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Klarte ikke klargjøre KDiff3-part.\n" +"Dette skyldes oftest et installasjonsproblem. Det står mer om dette i README-" +"fila i kildekoden." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fil" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Flettehandling på gjeldende element" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Synk-handling på gjeldende element" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iffvisning" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Vindu" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Hovedverktøylinje" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorert. (Selvvalgt.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Flett inn-data." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Uttrykkelig angitt basefil. For kompatibilitet med visse verktøy." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Utdata-fil. Impliserer -m. F.eks: -o nyfil.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Utdata-fil, igjen. (For kompatibilitet med visse verktøy)." + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "Ingen GUI hvis alle konflikter kan auto-løses. (Trenger -o fil)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Synlig navnerstatning for inn-fil 1 (basis)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Synlig navnerstatning for inn-fil 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Synlig navnerstatning for inn-fil 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Alternativ synlig navnerstatning. Angi en gang for hver inngang." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Overstyr en innstilling. Bruk en gang for hver innstilling. F.eks.: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Vis liste over oppsettsinnstillinger og gjeldende verdier." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Bruk en annen oppsettsfil." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "fil 1 som skal åpnes (basis, hvis ikke oppgitt via --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "fil 2 som skal åpnes" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "fil 3 som skal åpnes" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Blanding av lenker og normale filer." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Lenke: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Størrelse: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Dato og størrelse: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Sammenlikner fil …" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Velg A overalt" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Velg B overalt" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Velg C overalt" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Velg A for alle uløste konflikter" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Velg B for alle uløste konflikter" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Velg C for alle uløste konflikter" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Velg A for alle uløste tomromkonflikter" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Velg B for alle uløste tomromkonflikter" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Velg C for alle uløste tomromkonflikter" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Antall uløste konflikter som gjenstår: %1 ( herav %2 tomrom )" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Utdata er blitt endret.\n" +"Hvis du fortsetter mister du endringene dine." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Alle inn-filer er binært like." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Alle inn-filer inneholder samme tekst." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Filene %1 og %2 er binært like.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Filer %1 og %2 har lik tekst. \n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konflikter" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Gjenstående konflikter" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Det lyktes ikke å lage sikkerhetskopi. Fila er ikke lagret." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Feil ved fillagring" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Feil ved skriving." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Utdata:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Endret]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Basis):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fil …" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (valgfri):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"En historieoppføring består av flere linjer.\n" +"Oppgi et regulært uttrykk som finner første linje (uten kommentaren foran).\n" +"Bruk parenteser for å binde sammen nøkler du vil bruke til sortering.\n" +"Hvis det står tomt regner KDiff3 med at det er blanke linjer mellom " +"historieoppføringene.\n" +"Se i dokumentasjonen etter detaljer." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Hvert parentespar brukt i det regulære uttrykket for start på " +"historieoppføringa\n" +"angir en nøkkel som kan brukes til sortering.\n" +"Oppgi en liste over nøkler (nummerert i den rekkefølge de opptrer\n" +"med start på 1), med «,» som skilletegn (f.eks. \"4,5,6,1,2,3,7\").\n" +"Står dette tomt blir det ikke sortert.\n" +"Detaljer finnes i dokumentasjonen." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regulært uttrykk for linjer der KDiff3 skal velge én kilde automatisk.\n" +"Når en linje med konflikt stemmer med det regulære uttrykket, så \n" +"velges C hvis tilgjengelig, ellers B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regulært uttrykk for start på oppføringa i versjonskontroll-historien.\n" +"Denne linja inneholder som regel nøkkelordet \"$Log$\".\n" +"Standard: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Endre dette hvis tegn som ikke er i ASCII ikke blir vist riktig." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Sett opp" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Skrift" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Skrift for redigering og utdata" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Fargeinnstillinger" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Redigering og forskjellsvisning:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Forgrunnsfarge:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Bakgrunnsfarge:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Bakgrunnsfarge for forskjell:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Farge A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Farge B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Farge C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Konfliktfarge:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Bakgrunnsfarge for gjeldende område:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Bakgrunnsfarge for gjeldende forskjellsområde:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Farge for manuelt innrettede forskjellsområder:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Farge for nyeste fil:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Farge for eldste fil:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Farge for filer med midlere alder:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Farge for manglende filer:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Redigerer" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Redigeringsoppsett" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "TAB setter inn mellomrom" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"På: tab-tasten setter inn passende antall mellomrom.\n" +"Av: Et tab-tegn settes inn." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "TAB-størrelse:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automatisk innrykk" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "På: Innrykket for forrige linje brukes for en ny linje.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Autokopier utvalg" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Bestemmer tegn for slutt på linja når en fil lagres.\n" +"DOS/Windows: CR+LF; UNIX: LF; med CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Innstillinger for Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignorer sifre når linjene søkes opp. (Likner Ignorer tomrom)\n" +"Kan hjelpe til å sammenlikne filer med numeriske data." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Behandle kommentarer i C/C++ som tomrom." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Behandle endringer små/store som endring i tomrom («a»<=>«A»)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Forarbeide-kommando:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Selvvalgt forarbeide. (Detaljer finnes i dokumentasjonen)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Linjesøkende forarbeide, kommando:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Denne forbehandleren brukes bare når linjer søkes.\n" +"(Detaljer i dokumentasjonen)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Grundig (langsommere)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Slår på --minimal for det eksterne diff-programmet.\n" +"Analyse av store filer blir mye langsommere." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Innrett B og C for 3 inn-filer" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Forsøk å rette inn B og C når tre inn-filer sammenliknes eller flettes.\n" +"Ikke anbefalt for fletting fordi fletting kan bli mer komplisert.\\ " +"(Standard er av.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Innstillinger for fletting" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Forsinkelse for auto-avansering (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Når det brukes auto-avansering vises resultatet av gjeldende utvalg \n" +"i oppgitt tid, før det hoppes til neste konflikt. Verdiområde fra 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Vis informasjonsdialoger" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Vis en dialog med informasjon om antall konflikter." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Standard for 2-fils tomromsfletting:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Manuelt valg" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Tillat flettealgoritmen å velge inn-data automatisk for endringer som bare " +"gjelder tomrom." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Standard for 3-fils tomromsfletting:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automatisk fletting med regulært uttrykk" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regulært uttrykk for automatisk fletting:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Kjør autofletting med regulære uttrykk ved flettestart" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Kjør autoflettingen med regulære uttrykk med en\n" +"gang når en fletting begynner.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Fletting av historien fra versjonskontroll" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Regulært uttrykk for start på historien:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regulært uttrykk for start på historieoppføring:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Flettesortering av historien" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Sorter versjonskontroll-historien etter en nøkkel." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Nøkkelrekkefølge for sortering av historiestart:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Flett versjonshistorien når flettingen begynner" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Kjør autofletting på versjonshistorien når fletting begynner." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Maks antall oppføringer i historien:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Stopp etter det oppgitte antallet. Bruk -1 for ubegrenset antall oppføringer." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Test de regulære uttrykkene" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Irrelevant flettekommando:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Hvis det er oppgitt, kjøres dette skriptet etter\n" +"autofletting når ingen andre relevante endringer \n" +"ble funnet. Kalles med parametre filnavn1 filnavn2 filnavn3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automatisk lagring og avslutting etter fletting uten konflikter" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Hvis KDiff3 ble startet for filfletting fra kommandolinja og alle " +"konflikter\n" +"kan løses uten å spørre brukeren, så lagre og avslutt automatisk.\n" +"(Likner kommandolinjevalget «--auto»." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Filmønster(e):" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mønster(e) for filnavn som skal analyseres.\n" +"Jokertegn: «*» og «?»\n" +"Flere mønstre kan oppgis med «;» som skilletegn" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Fil-antimønster(e):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mønster(e) for filer som ikke skal analyseres. \n" +"Jokertegn: «*» og «?»\n" +"Flere mønstre kan oppgis med «;» som skilletegn" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Følg fil-lenker" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"På: Sammenlikne filer som lenkene peker på.\n" +"Av: Sammenlikne lenkene." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Store/små bokstaver i filnavn" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Hvordan filer sammenliknes" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binær sammenlikning" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binær sammenlikning av hver fil. (Standard)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Full analyse" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Gjør en full analyse og vis statistikk i ekstra kolonner.\n" +"(Langsommere enn binær sammenlikning, mye langsommere for binære filer.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Stol på størrelsen og endringsdatoen (utrygt)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Stol på størrelse og dato, men bruk binær sammenlikning hvis datoen ikke " +"stemmer (utrygt)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Stol på størrelsen (utrygt)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Tomromsforskjeller betraktes som like" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Hvis filer er forskjellige bare i tomrom, betrakt dem som\n" +"like. Dette er bare aktivt når det kjøres full analyse." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopier den nyeste i stedet for å flette (utrygt)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Ta sikkerhetskopi av filer (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Hvis en ny fil ville bli lagret oppå en gammel, så får den gamle\n" +"fila nytt navn med «.orig» til slutt i stedet for å bli slettet." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regionale innstillinger" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Bruk samme koding for alt:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Hvis dette er slått på kan alle kodinger endres ved bare å endre den " +"første.\n" +"Slå av hvis det trengs separate innstillinger." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Filkoding for A :" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Hvis dette er slått på blir Unicode oppdaget (UTF-16 eller UTF-8).\n" +"Hvis fila ikke er i Unicode, så blir den valgte kodingen brukt som reserve.\n" +"(Unicode oppdages avhengig av de første tegnene i en fil.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Auto-oppdag Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Filkoding for B :" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Filkoding for C :" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Filkoding for flettet resultat og lagring:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Autovalg" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Hvis dette er slått på, så brukes kodingen fra inndata-filene.\n" +"Hvis en entydig koding ikke kan bestemmes, vil et dialogvindu be brukeren " +"velge en koding for lagring." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Filkoding for forbehandlingsfiler:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Høyre mot venstre-språk" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Noen språk leses fra høyre mot venstre.\n" +"Denne innstillinga endrer visning og redigering tilsvarende." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integrasjon" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integrasjonsinnstillinger" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Kommandolinjeparametre som skal ignoreres:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Liste over kommandolinje-parametre som skal hoppes over når KDiff3 brukes av " +"andre verktøy.\n" +"Flere verdier kan oppgis atskilt med «;»\n" +"Da forsvinner feilmeldinga «Ukjent parameter»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Avslutt også med Escape-tasten" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Rask måte å avslutte på.\n" +"For de som er vant til å bruke Escape-tasten." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Dette tilbakestiller alle valg, ikke bare dem i dette emnet." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Forbehandlingskommando :" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Følgende innstillinger som er valgt kan endre data:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Ved fletting er nok ikke dette ønsket.\n" +"Vil du slå av disse innstillingene eller fortsette med dem slått på?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Utrygg innstilling for fletting" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Bruk disse innstillingene under fletting" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Slå av utrygge innstillinger" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Laster A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Laster B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linjediff A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Laster C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linjediff B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linjediff A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Alle inn-filene inneholder samme tekst, men er ikke binært like." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Filene %1 og %2 har lik tekst, men er ikke binært like. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Avbryt" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Åpner filer …" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Klipper ut utvalget …" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopierer utvalg til utklippstavla …" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Setter inn fra utklippstavla …" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Lagre og fortsett" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Fortsett uten lagring" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Søk fullført." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Søk fullført" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ingenting er valgt i noe av inndata-vinduene." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Feil oppsto ved tillegg av manuelt diff-område" + +#: progress.cpp:59 progress.cpp:71 +#, kde-format +msgid "&Cancel" +msgstr "&Avbryt" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Bytt om %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopier %1->Utdata" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Bytt om %1<->utdata" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Sett opp …" + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Søketekst:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Skill mellom store og små bokstaver" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Søk i A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Søk i B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Søk i C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Utdata fra søk" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Søk" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Prøv ut regulært uttrykk" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Eksempel på autoflette-linje:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Kopier hit en linje slik som brukt i filene dine, for å teste autofletting." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultat av søk:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Eksempel på startlinje for historie (med innledende kommentar):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopier en historie-startlinje fra en av filene dine,\n" +"ta med den innledende kommentaren." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Sorteringsrekkefølge for historienøkler:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Eksempel på startlinje for historieoppføring (uten innledende kommentar):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopier en startlinje for historieoppføring fra en av filene dine,\n" +"men ta bort den innledende kommentaren." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resulterende sorteringsnøkler:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Tilslag." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Ikke tilslag." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Begynn- og sluttparenteser stemmer ikke overens i regulært uttrykk." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Klarte ikke å skrive fra utklippstavla til midlertidig fil." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Fra utklippstavla" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Forarbeidet muligens mislykket. Se denne kommandoen:\n" +"\n" +" %1\n" +"\n" +"Kommandoen for forarbeide blir nå slått av." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Forarbeidet med å samordne linjer muligens mislykket. Se denne kommandoen:\n" +"\n" +" %1\n" +"\n" +"Forarbeide-kommandoen for linjesamordning blir nå slått av." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Ikke noe program oppgitt." \ No newline at end of file diff --git a/po/nb/kdiff3fileitemactionplugin.po b/po/nb/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..9def868 --- /dev/null +++ b/po/nb/kdiff3fileitemactionplugin.po @@ -0,0 +1,94 @@ +# Translation of kdiff3fileitemactionplugin to Norwegian Bokmål +# +# Bjørn Steensrud , 2011. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2011-05-07 15:03+0200\n" +"Last-Translator: Bjørn Steensrud \n" +"Language-Team: Norwegian Bokmål \n" +"Language: nb\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Sammenlikne med %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Flett sammen med %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Lagre «%1» til senere" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-veis fletting med basis" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Tøm liste" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Sammenlikne" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3-veis sammenlikning" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Om programtillegget for KDiff3 filhandling" \ No newline at end of file diff --git a/po/nds/kdiff3.po b/po/nds/kdiff3.po new file mode 100644 index 0000000..041cb33 --- /dev/null +++ b/po/nds/kdiff3.po @@ -0,0 +1,3742 @@ +# Translation of kdiff3.po to Low Saxon +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sönke Dibbern , 2008, 2009. +# Manfred Wiese , 2009, 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2011-10-09 21:25+0200\n" +"Last-Translator: Manfred Wiese \n" +"Language-Team: Low Saxon \n" +"Language: nds\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sönke Dibbern" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "s_dibbern@web.de" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Dateistatus warrt leest: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Datei warrt leest: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Datei warrt schreven: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Nich noog Spieker" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Orner warrt opstellt: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Datei warrt wegmaakt: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Datei warrt wegmaakt: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Symboolsch Link warrt opstellt: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Datei warrt ümnöömt: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Datei warrt kopeert: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Datei warrt leest: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Orner warrt oplist: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Daten sünd wegkamen:\n" +"Lett sik dit wedderhalen, snack dor bitte den Autor op an.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Swoor intern Fehler" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Swoor intern Fehler" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Swoor intern Fehler" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "Reeg nich verföögbor" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Koderen:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Reegenn-Stil:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (Basis):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Koderen:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Reegenn-Stil:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Böverst Reeg" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Enn" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Dateien warrt opmaakt..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 Bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A op B koperen" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B op A koperen" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A wegdoon" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B wegdoon" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A un B wegdoon" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Mit A tosamenföhren" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Mit B tosamenföhren" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Mit A un B tosamenföhren" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Wegdoon (wenn vörhannen)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Tosamenföhren" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Tosamenföhren (vun Hand)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Fehler: Inkompatibel Dateitypen" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Fehler: Ännert un wegdaan" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Fehler: De Daten sünd liek, man de Dateien nich." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Afslaten." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Fehler" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Utlaten." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Nich sekert" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "In de Maak..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Opgaav" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Naam" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Akschoon" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Nich oplööst" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Oplööst" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Nichfree" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Free" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Du büst jüst togang un föhrst Ornern tosamen. Wullt Du dat Tosamenföhren " +"redig afbreken un den Orner nieg dörkieken?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Wohrschoen" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Nieg dörkieken" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Tosamenföhren wiedermaken" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Opmaken vun Ornern fehlslaan:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Orner A \"%1\" gifft dat nich oder is keen Orner.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Orner B \"%1\" gifft dat nich oder is keen Orner.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Orner C \"%1\" gifft dat nich oder is keen Orner.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Fehler bi't Opmaken" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"De Teelorner mutt bi't Tosamenföhren vun 3 Dateien nich de sülve wesen as A " +"oder B.\n" +"\n" +"Prööv dat bitte, ehr Du wiedermaakst." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parameter-Wohrschoen" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Ornern warrt dörkeken..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Datei warrt leest: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Datei warrt leest: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Datei warrt leest: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "En Reeg Ünnerornern lett sik nich lesen binnen" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Prööv bitte de Verlöven vun de Ünnerornern." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Praat." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Tall vun Tosamenföhren vun Hand:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Dit bedröppt all Tosamenföhr-Akschonen" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "All Tosamenföhr-Akschonen ännern" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Bi to verarbeiden: " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Disse Akschoon is opstunns nich mööglich." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Akschoon nich mööglich" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Dat geev en Fehler bi't Koperen.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Tosamenföhr-Fehler" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Nich begäng Tosamenföhrakschoon (Dit mutt nienich vörkamen!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Nich begäng Tosamenföhrakschoon" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Dat Tosamenföhren kann nu loosgahn.\n" +"\n" +"Klick op \"Utföhren\", wenn Du de Anwiesen leest hest un weetst, wat Du " +"deist.\n" +"Klick op \"Simuleren\", wenn Du weten wullt, wat passeren dee.\n" +"\n" +"Beacht bitte, dit Programm hett jümmers noch Beta-Status un dat gifft keen " +"Garantien, för gor nix. Maak Sekerheitkopien vun Dien wichtige Daten!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Tosamenföhren starten" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Doon" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuleren" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"De rutheevte Indrag hett binnen de verscheden Ornern verscheden Typen. Wat " +"wullt Du doon?" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"De Ännerdaten vun de Dateien sünd liek, man de Dateien sünd dat nich. Wat " +"wullt Du doon?" + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"De rutheevte Indrag wöör binnen een Orner ännert un ut den anner wegdaan. " +"Wat wullt Du doon?" + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Disse Akschoon lett sik opstunns nich utföhren, dor löppt en Orner-" +"Tosamenföhren." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Bi den verleden Schritt hett dat en Fehler geven.\n" +"Wullt Du mit dat Element wiedermaken, dat den Fehler utlööst hett, oder " +"wullt Du dat utlaten?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Tosamenföhren na Fehler wiedermaken" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Mit verleden Element wiedermaken" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Element utlaten" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Tosamenföhren afslaten." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Tosamenföhren afslaten" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Dat simuleerte Tosamensmölten is afslaten Kiek, wat Du de vörslaan Akschonen " +"utföhren wullt." + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Dat hett en Fehler geven. Klick op OK, wenn Du de Enkelheiten ankieken " +"wullt.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" +"Fehler bi't Wegdoon vun \"%1\": Opstellen vun Sekerheitkopie fehlslaan." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "Orner un Ünnerornern wegdoon (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "wegdoon (%1)" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Fehler: Wegdoon vun Orner fehlslaan, bides he leest wöör." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Fehler: rmdir-Akschoon (%1) fehlslaan." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Fehler: Wegdoon fehlslaan." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "Vun Hand tosamenföhren (%1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Beacht bitte: Na't Tosamenföhren vun Hand schull de Bruker mit F7 " +"wiedermaken" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Fehler: Koperen (%1 -> %2) fehlslaan. Wegdoon vun vörhannen Teel fehlslaan." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Link koperen (%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Fehler: Koperen vun Link fehlslaan. Feern links warrt noch nich ünnerstütt." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Fehler: Koperen vun Link fehlslaan." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "Koperen (%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Fehler bi't Ümnömen (%1 -> %2): Vörhannen Teel lett sik nich wegmaken." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "Ümnömen (%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Fehler: Ümnömen fehlslaan." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Fehler bi't Opstellen vun Orner \"%1\". Vörhannen Datei lett sik nich " +"wegdoon." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Orner opstellen (%1)" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Fehler bi't Opstellen vun Orner." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Teel" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Typ" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Grött" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Verleden Ännern" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Link-Teel" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Datei" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Link: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "nich verföögbor" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Teel): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "B (Grundl.): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Teel): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Teel): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Teel: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Orner-Tosamenföhrstatus sekern as..." + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Orner-Tosamenföhren starten/wiedermaken" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Akschoon mit aktuell Element utföhren" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Utsöcht Datei verglieken" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Aktuell Datei tosamenföhren" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Datei\n" +"tosamenföhren" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "All Ünnerornern infoolden" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "All Ünnerornern utfoolden" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "A bi all Indrääg utsöken" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "B bi all Indrääg utsöken" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "C bi all Indrääg utsöken" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Akschoon bi all Indrääg automaatsch utsöken" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Keen Akschoon för all Indrääg" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Liek Dateien wiesen" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Liek\n" +"Dateien" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Verscheden Dateien wiesen" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Dateien bloots in A wiesen" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Dateien\n" +"bloots in A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Dateien bloots in B wiesen" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Dateien\n" +"bloots in B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Dateien bloots in C wiesen" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Dateien\n" +"bloots in C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Utsöcht Dateien verglieken" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Utsöcht Dateien tosamenföhren" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nix doon" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A un B wegdoon" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Na A un B tosamenföhren" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Datei warrt leest: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Temporeerkopie vun \"%1\" lett sik nich opstellen" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "\"%1\" lett sik nich opmaken" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "\"%1\" lett sik nich lesen" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Bi't Opstellen vun en Sekerheitkopie lett sik en öller Sekerheitkopie nich " +"wegdoon.\n" +"Dateinaam: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Bi't Opstellen vun en Sekerheitkopie lett sik en Datei nich ümnömen.\n" +"Dateinaams: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Aktuell Instellen:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Fehler binnen de Instellen:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Optschoon \"--auto\" bruukt, man keen Utgaavdatei angeven." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "Optschoon \"--auto\" warrt bi't Verglieken vun Ornern övergahn." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Sekern fehlslaan." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Disse Dateien laat sik nich opmaken:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fehler bi't Datei-Opmaken" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Dokmenten warrt för't Verglieken opmaakt..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Nieg laden" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Sekert dat Resultaat vun't Tosamenföhren. All Konflikten mööt oplööst wesen!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Sekert dat aktuelle Dokment as..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Verscheel drucken" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Maakt dat Programm ut" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Knippt dat utsöchte Rebeet un föögt dat na de Twischenaflaag in" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopeert den utsöchten Afsnitt na de Twischenaflaag" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Föögt de Twischenaflaag ehr Inholt bi de aktuelle Steed in." + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Allens binnen dat aktuelle Finster utsöken" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Na en Tekenkeed söken" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Nochmaal na en Tekenkeed söken" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Maakt den Statusbalken an oder ut" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 instellen..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Na aktuellen Verscheel gahn" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Aktuell\n" +"Verscheel" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Na eersten Verscheel gahn" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Eerst\n" +"Verscheel" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Na lesten Verscheel gahn" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Lest\n" +"Verscheel" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Övergeiht Freeruum-Verschelen, wenn \"Freerüüm wiesen\" utmaakt is.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Övergeiht Freeruum-Verschelen nich, ok wenn \"Freerüüm wiesen\" utmaakt is.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Na verleden Verscheel gahn" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Verleden\n" +"Verscheel" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Na nakamen Verscheel gahn" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Nakamen\n" +"Verscheel" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Na verleden Konflikt gahn" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Verleden\n" +"Konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Na nakamen Konflikt gahn" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Nakamen\n" +"Konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Na verleden Konflikt gahn, de nich oplööst is" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Verleden\n" +"n. oplööst" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Na nakamen Konflikt gahn, de nich oplööst is" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Nakamen\n" +"n. oplööst" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Reeg ut A bruken" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"A\n" +"bruken" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Reeg ut B bruken" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"B\n" +"bruken" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Reeg ut C bruken" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"C\n" +"bruken" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Na Bornköör automaatsch na nakamen nich oplöösten Konflikt gahn" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Autom.\n" +"Nakamen" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Free- un Tab-Tekens as Verscheel wiesen" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "Freerüüm" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Freerüüm wiesen" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Freeruum-\n" +"Verschelen" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Reegnummern wiesen" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Reeg-\n" +"nummern" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Eenfach Konflikten automaatsch oplösen" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "All Verschelen as Konflikten markeren" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Automaatsch Tosamenföhren mit reguleer Utdruck" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Vörgeschicht-Konflikten automaatsch oplösen" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Verscheel bi Köör delen" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Utsöcht Verschelen tosamenstellen" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Finster A wiesen" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Finster B wiesen" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Finster C wiesen" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normaal Översicht" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A-B-Översicht" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A-C-Översicht" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B-C-Översicht" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Regen ümbreken" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Verscheel-Utrichten vun Hand tofögen" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "All Vun-Hand-Utrichten wegmaken" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Nakamen Finster anmaken" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Verleden Finster anmaken" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Deelricht wesseln" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Deelt Ansicht för Orner un Text" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Orner- un Text-Ansicht wesseln" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Tosamenföhr-Resultaat wöör nich sekert" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Sekern && Utmaken" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Utmaken un nich Sekern" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Tosamenföhr-Resultaat lett sik nich sekern" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Du föhrst jüst Ornern tosamen. Wullt Du dat redig afbreken?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Datei warrt sekert..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Datei warrt mit en nieg Dateinaam sekert..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Sekern as..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Drucken nich inbuut" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "An't Drucken..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Köör" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Drucken afslaten." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Drucken afbraken." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Bi to utstiegen..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Warktüüchbalken warrt an-/utmaakt..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Statusbalken an-/utmaken..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 instellen" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"De KDiff3-Komponent lett sik nich torechtmaken.\n" +"Dit kummt normalerwies bi Problemen mit de Installatschoon vör. De " +"Enkelheiten staht binnen de README-Datei vun't Born-Paket." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Datei" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Tosamenföhr-Akschoon för aktuell Element" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Synkroniseer-Akschoon för aktuell Element" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Verschuven" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Verscheel&ansicht" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Tosamenföhren" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Finster" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Hööft-Warktüüchbalken" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Övergahn. (Vun'n Bruker fastleggt.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Tosamenföhr-Warktüüch för Dateien un Ornern" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "De Ingaav tosamenföhren" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Utspraken Basisdatei. För de Kompatibiliteet mit anner Warktüüch." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Utgaavdatei. Slutt \"-m\" in. Bispill: -o niegdatei.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Utgaavdatei, nochmaal. (För de Kompatibiliteet mit anner Warktüüch.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Keen Böversiet, wenn sik all Konflikten automaatsch oplösen laat (\"-o " +"Utgaavdatei\" nödig)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Övergahn" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Sichtbor Tuuschnaam för Ingaavdatei 1 (Grundlaag)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Sichtbor Tuuschnaam för Ingaavdatei 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Sichtbor Tuuschnaam för Ingaavdatei 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Anner sichtbor Tuuschnaam. Eenmaal för elkeen Ingaavdatei angeven." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"En Instellen överschrieven. Eenmaal för elkeen Instellen bruken, a.B.: »--cs " +"\"AutoAdvance=1\"«" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "List vun Instellenoptschonen un Weerten wiesen" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "En anner Instellendatei bruken" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" +"Eerste Datei, de Du opmaken wullt (Grundlaag, wenn nich mit \"--base\" " +"angeven)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Twete Datei, de Du opmaken wullt" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Drüdde Datei, de Du opmaken wullt" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mischen vun Links un normaal Dateien" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Link: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Grött: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Datum un Grött: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Datei warrt vergleken..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Jümmers A bruken" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Jümmers B bruken" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Jümmers C bruken" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "A för all nich oplööst Konflikten bruken" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "B för all nich oplööst Konflikten bruken" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "C för all nich oplööst Konflikten bruken" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "A för all nich oplööst Freeruum-Konflikten bruken" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "B för all nich oplööst Freeruum-Konflikten bruken" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "C för all nich oplööst Freeruum-Konflikten bruken" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Tall vun överbleven nich oplööst Konflikten: %1 (dor sünd %2 vun Freeruum-" +"Konflikten)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Du hest de Utgaav ännert.\n" +"Maakst Du wieder, kaamt Dien Ännern weg." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "All Ingaavdateien sünd bineer liek." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "All Ingaavdateien bargt den sülven Text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "De Dateien %1 un %2 sünd bineer liek.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "De Dateien %1 un %2 bargt den sülven Text.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konflikten" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Noch sünd nich all Konflikten oplööst.\n" +"Datei nich sekert.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Konflikten na" + +#: mergeresultwindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Dat giffft en Konflikt mit de Reegennen. Söök bitte den Reegenn-Stil vun " +"Hand ut.\n" +"Datei nich sekert.\n" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Sekerheitkopie lett sik nich opstellen. Datei nich sekert." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Fehler bi't Sekern" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Fehler bi't Schrieven" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Utgaav" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Ännert]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Koderen bi't Sekern" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Koderen vun" + +#: mergeresultwindow.cpp:3249 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Koderen vun" + +#: mergeresultwindow.cpp:3251 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Koderen vun" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Basis):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Utgaav (köörwies):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Datei..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Naams tuschen/koperen..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (köörwies):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"En Verschoonkuntrull-Vörgeschichtindrag geiht över mehr Regen.\n" +"Hier kannst Du den reguleren Utdruck angeven, mit den sik de eerste Reeg " +"kennen lett (ahn den vöranstellten Kommentar).\n" +"Mit Klemmen kannst Du Slötels för't Sorteren tosamenkoppeln.\n" +"Lettst Du dat leddig, nimmt KDiff3 an, dat leddig Regen twischen " +"Vörgeschichtindrääg staht.\n" +"De Enkelheiten staht binnen de Dokmentatschoon." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Elkeen Klemmenpoor binnen den reguleren Utdruck för den Vörgeschichtindrag-" +"Anfang\n" +"koppelt en Slötel tosamen, de sik bi't Sorteren bruken lett.\n" +"Hier kannst Du de Reeg för de Slötels över ehr Nummern angeven\n" +"(fangt bi 1 an, nummereert na de Reeg, in de se in den reguleren Utdruck " +"staht).\n" +"Bruuk Kommas (\",\") as Trennteken (a.B.: \"4,5,6,1,2,3,7\").\n" +"Lettst Du dat leddig, warrt nich sorteert.\n" +"De Enkelheiten staht binnen de Dokmentatschoon." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Reguleer Utdruck för Regen, bi de KDiff3 automaatsch een Born utsöken " +"schall.\n" +"Passt de Utdruck op en Reeg mit en Konflikt, warrt - wenn verföögbor - de " +"Reeg\n" +"ut Born C, sünst de Reeg ut Born B bruukt." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Reguleer Utdruck för den Anfang vun den Verschoonkuntrull-" +"Vörgeschichtindrag.\n" +"Normalerwies bargt disse Reeg dat Slötelwoort \"$Log$\".\n" +"Standardweert: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Änner dit, wenn Tekens buten dat ASCII-Rebeet nich propper wiest warrt." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Instellen" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Schriftoort" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Editor- un Verscheel-Schriftoort" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Fehler bi't Sekern" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Klöör" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Klören instellen" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editor- un Verscheel-Ansichten:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Vörgrundklöör:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Achtergrundklöör:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Verscheel-Achtergrundklöör:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Klöör A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Klöör B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Klöör C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Konflikt-Klöör:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Achtergrundklöör för aktuell Rebeet:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Verscheel-Achtergrundklöör för aktuell Rebeet:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Klöör för vun Hand utricht Verscheelrebeden:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "Ornerverscheel-Ansicht:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Klöör för niegst Datei:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Ännern an disse Klöör warrt eerst bi't nakamen Verglieken vun Ornern bruukt." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Klöör för öllst Datei:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Klöör för en middeloolt Datei:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Klöör för fehlen Dateien:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Editor-Bedregen" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabtast föögt Freetekens in" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"An: De Tabtast föögt en propper Tall vun Freetekens in.\n" +"Ut: De Tabtast föögt en Tabteken in." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tab-Breed:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Autom. inrücken" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "An: De Inrückdeepde ut de verleden Reeg warrt för de niege bruukt.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Köör autom. koperen" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"An: All Kören warrt fuurts na de Twischenaflaag kopeert.\n" +"Ut: Du muttst dat Koperen sülven maken, a.B. mit Strg+C." + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Finster" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Autom. Köör" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Leggt de Tekens fast, de bi't Sekern för Reegennen bruukt warrt.\n" +"DOS/Windows: CR+LF, UNIX: LF (CR = 0D, LF = 0A)" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Verscheel" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Verscheel-Instellen" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "As Freeruum hanteren" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Talltekens bi't Regenutrichten övergahn (liek to \"Freerüüm övergahn\").\n" +"Mag bi't Verglieken vun Dateien mit Tallen beter Resultaten geven." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++-Kommentaren liek as Freerüüm hanteren." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++-Kommentaren liek as Freerüüm hanteren." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "As Freeruum hanteren" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Verschelen in Groot- un Lüttschrieven liek as Freerüüm-Verschelen hanteren." + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Vörverarbeid-Befehl:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Vun Bruker fastleggt Vörverarbeiden (Enkelheiten binnen de Dokmentatschoon)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Vörverarbeid-Befehl för't Regenutrichten:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Disse Vörverarbeiden warrt bloots bi't Regenutrichten bruukt.\n" +"(Enkelheiten binnen de Dokmentatschoon)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "In't Tüüch leggen (langsamer)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Bruukt de Optschoon \"--minimal\" vun't Diff-Programm.\n" +"Dat Dörkieken vun groot Dateien warrt denn bannig wat langsamer." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "B un C för 3 Ingaavdateien utrichten" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"B un C bi't Verglieken oder Tosamenföhren vun 3 Ingaavdateien toenanner " +"utrichten.\n" +"Bi't Tosamenföhren nich anraadt, dat mag to vigeliensch warrn.\n" +"(Standard is Ut.)" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Tosamenföhren" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Tosamenföhr-Instellen" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Töövtiet för't autom. Wiedergahn (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Is dat Automaatsche Wiedergahn anmaakt, warrt dat Resultaat vun de aktuelle " +"Köör\n" +"för de angeven Tiet wiest, ehr dat Programm na den nakamen Konflikt jumpt. " +"Weerten: 0 - 2000 ms." + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Infodialogen wiesen" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "En Dialoog mit de Tall vun Konflikten wiesen" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Freeruum-Standard bi 2-Dateien-Tosamenföhren:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Köör vun Hand" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Den Tosamenföhr-Algoritmus bi Freeruum-Konflikten automaatsch en Born " +"utsöken laten" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Freeruum-Standard bi 3-Dateien-Tosamenföhren:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Reguleer Utdruck för't autom. Tosamenföhren" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Reguleer Utdruck för't autom. Tosamenföhren:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Bi't Starten vun't Tosamenföhren automaatsch na reguleer Utdruck " +"tosamenföhren" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Dat automaatsche Tosamenföhren langs de reguleren\n" +"Utdrück för't automaatsche Tosamenföhren direktemang\n" +"utföhren, wenn dat Tosamenföhren anfangt.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Tosamenföhren mit Verschoonkuntrull-Vörgeschicht" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Reguleer Utdruck för Vörgeschicht-Anfang:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Reguleer Utdruck för Vörgeschichtindrag-Anfang:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Sorteren bi Vörgeschicht-Tosamenföhren" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Verschoonkuntrull-Vörgeschicht na Slötel sorteren" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Sorteerreeg för Vörgeschichtindrag-Anfang:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" +"Verschoonkuntrull-Vörgeschicht bi't Starten vun't Tosamenföhren tosamenföhren" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Bi't Starten vun't Tosamenföhren automaatsch Verschoonkuntrull-Vörgeschicht " +"tosamenföhren" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Hööchsttall vun Vörgeschichtindrääg:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Na angeven Tall ophollen. Bi -1 nich ophollen." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Regulere Utdrück utproberen" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Tosamenföhr-Befehl bi fehlen Ännern:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Wenn angeven, warrt dit Skript na't automaatsche\n" +"Tosamenföhren opropen, wenn dat sünst keen Ännern geven hett.\n" +"Warrt mit disse Parameters opropen: Dateinaam1 Dateinaam2 Dateinaam3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Na't Tosamenföhren ahn Konflikten autom. sekern un utmaken" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Wenn KDiff3 för't Tosamenföhren vun Dateien opropen warrt un sik all\n" +"Konflikten oplösen laat un de Bruker nix bidregen mutt, denn\n" +"dat Resultaat automaatsch sekern un dat Programm utmaken.\n" +"(Liek to de Befehlsreegoptschoon \"--auto\".)" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Rekursiev" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "Leggt fast, wat ok Ünnerornern dörkeken warrt." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Dateimuster(n):" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Muster(n) vun Dateien, de Du bekieken wullt.\n" +"Platzholltekens: \"*\" un \"?\"\n" +"Trennteken twischen Mustern: \";\"" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Datei-Utsluutmuster(n):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Muster(n) för Dateien, de Du vun't Bekieken utsluten wullt.\n" +"Platzholltekens: \"*\" un \"?\"\n" +"Trennteken twischen Mustern: \";\"" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Datei-Utsluutmuster(n):" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Muster(n) för Dateien, de Du vun't Bekieken utsluten wullt.\n" +"Platzholltekens: \"*\" un \"?\"\n" +"Trennteken twischen Mustern: \";\"" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "\".cvsignore\" bruken" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Verwiedert dat Utsluutmuster op allens, wat CVS övergahn dee.\n" +"Bi lokaal \".cvsignore\"-Dateien kann dat vun den Orner afhangen." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "Versteken Dateien un Ornern bekieken" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "Versteken Dateien un Ornern bekieken" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Dateilinks nagahn" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"An: De Datei verglieken, op de de Link wiest.\n" +"Ut: De Links verglieken." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Dateilinks nagahn" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"An: De Datei verglieken, op de de Link wiest.\n" +"Ut: De Links verglieken." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Bi Dateinaam-Vergliek op Groot- un Lüttschrieven kieken" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"De Ornervergliek vergliekt Dateien oder Ornern, wenn ehr Naams liek sünd.\n" +"Maakt dit an, wenn de Groot-/Lüttschrieven liek wesen mutt. (Op Windows " +"standardwies ut, sünst an)." + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "All Ünnerornern utfoolden" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Dateivergliek-Bedriefoort" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Bineervergliek" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Bineervergliek bi all Dateien (Standard)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Heel Dörkiek" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"En heel Dörkiek doon un bito Statistik binnen besünner Striepen wiesen.\n" +"(Langsamer as en Bineervergliek, veel langsamer bi Bineerdateien.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Grött un Ännerdatum bruken (nich seker)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Dateien mit liek Ännerdatum un Längde as liek hanteren.\n" +"Dateien mit liek Inholt, man verscheden Ännerdatum warrt as verscheden " +"wiest.\n" +"Goot bi groot Ornern oder binnen langsam Nettwarken." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Grött un Ännerdatum bruken, man bi nich liek Datum bineer verglieken (nich " +"seker)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Dateien mit liek Ännerdatum un Längde as liek hanteren.\n" +"Is de Grött liek, man dat Datum nich, de Dateien bineer verglieken.\n" +"Goot bi groot Ornern oder binnen langsam Nettwarken." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Grött bruken (nich seker)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Dateien mit liek Längde as liek hanteren.\n" +"Goot bi groot Ornern oder binnen langsam Nettwarken, wenn sik dat Datum bi't " +"Daalladen ännert." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Ornern synkroniseren" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Dateien ut un na beed Ornern so koperen, dat\n" +"se achteran liek sünd.\n" +"Funkscheneert bloots bi't Verglieken vun twee Ornern, un wenn keen Teel " +"angeven is." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Freeruum-Verschelen as liek hanteren" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Dateien as liek hanteren, wenn se bloots in de Freerüüm verscheden sünd.\n" +"Dit is bloots anmaakt, wenn Du \"Heel Dörkiek\" utsöcht hest." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Nieger Datei koperen, nich tosamenföhren (nich seker)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Inholt nich bekieken, eenfach de niegere Datei nehmen.\n" +"(Bruuk dit bloots, wenn Du nau weetst, wat Du dor deist!)\n" +"Funkscheneert bloots bi't Verglieken vun twee Ornern." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Sekerheitkopie (.orig) opstellen" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Schull en Datei över en öller Datei schreven warrn, denn warrt de\n" +"öllere Datei ümnöömt un \".orig\" na ehr Naam anhangt." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regiooninstellen" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "De sülve Koderen för allens bruken:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Is dit anmaakt, kannst Du all Koderen över de eerste ännern.\n" +"Maak dit ut, wenn verscheden Instellen för de Dateien nödig sünd." + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Beacht: De lokale Koderen is " + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Koderen för Datei A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Is dit anmaakt, warrt Unicode (UTF-8 oder UTF-16) as Koderen opdeckt.\n" +"Is de Datei nich in Unicode, warrt de utsöchte Koderen bruukt.\n" +"(Dat Opdecken vun Unicode hangt vun de eersten Bytes vun en Datei af.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Unicode automaatsch opdecken" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Koderen för Datei B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Koderen för Datei C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Koderen för't Tosamenföhren un Sekern:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Autom. Köör" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Wenn anmaakt, warrt de Koderen vun de Ingaavdateien bruukt.\n" +"Is dat nich eenkennig, warrt de Bruker na de Koderen för't Sekern fraagt." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Koderen för de Vörverarbeid-Dateien:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Rechts-Na-Links-Spraak" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"En Reeg Schriften warrt vun rechts na links leest.\n" +"Disse Optschoon passt dor de Ansicht un den Editor op to." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Inbinnen" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Inbinnen instellen" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Befehlsreeg-Optschonen, de övergahn warrt:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"List vun Befehlsreeg-Optschonen, de övergahn warrt, wenn anner Programmen " +"KDiff3 oproopt.\n" +"Du kannst mehr Weerten angeven, wenn dor twischen en \";\" steiht.\n" +"Dit verhöödt den \"Nich begäng Optschoon\"-Fehler." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Ok mit ESC-Tast utmaken" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Gau Metood för't Utmaken.\n" +"För de Lüüd, de de ESC-Tast anworrn sünd." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"Disse Funkschoon sett all Optschonen torüch, nich bloots de för't aktuelle " +"Thema." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Vörverarbeid-Befehl: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Disse vun Di utsöchten Optschonen köönt Daten ännern:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Dat will Een normalerwies bi't Tosamenföhren nich hebben.\n" +"Wullt Du disse Instellen ut- oder dor mit wiedermaken?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Optschoon för't Tosamenföhren nich seker" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Disse Optschonen bruken" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Nich seker Optschonen utmaken" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A warrt laadt" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "A warrt laadt" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B warrt laadt" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "A warrt laadt" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Verscheel: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Reegverscheel: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C warrt laadt" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "A warrt laadt" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Verscheel: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Verscheel: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Reegverscheel: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Reegverscheel: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "All Ingaavdateien bargt den sülven Text, man sünd bineer nich liek." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"De Dateien %1 un %2 bargt den sülven Text, man sünd bineer nich liek.\n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"As't lett sünd nich all Ingaavdateien reen Textdateien.\n" +"Beacht, KDiff3 is nich för't Tosamenföhren vun Bineerdaten maakt.\n" +"Maak man op Dien egen Riskanz wieder." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"En Reeg vun Tekens laat sik nich na gellen Unikode wanneln.\n" +"Villicht is Dien bruukt Koderen nich richtig, (a.B. UTF-8 för Dateien in en " +"anner Koderen as UTF-8).\n" +"Büst Du nich seker, denn spieker dat Resultaat beter nich af. Du kannst op " +"Dien egen Riskanz wiedermaken.\n" +"De bedrapen Ingaavdateien liggt in %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Afbreken" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Dateien warrt opmaakt..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Köör warrt knippt..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Köör warrt na de Twischenaflaag kopeert..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Twischenaflaag-Inholt warrt inföögt..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Sekern un wiedermaken" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Ahn Sekern wiedermaken" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Söök afslaten." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Söök afslaten" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Binnen keen Verscheel-Ingaavfinster is wat utsöcht." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Fehler bi't Tofögen vun en Verscheelrebeet vun Hand" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Afbreken" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "%1<->%2 tuschen" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "%1 -> Utgaav koperen" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "%1 <-> Utgaav tuschen" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Instellen..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Dateien warrt opmaakt..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Sööktext:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Op Groot-/Lüttschrieven kieken" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "A dörkieken" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "B dörkieken" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "C dörkieken" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Utgaav dörkieken" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Söken" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Reguleer Utdrück utproberen" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Bispillreeg för't autom. Tosamenföhren:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Kopeer en Reeg, as se binnen Dien Dateien vörkamen kann, wenn Du dat autom. " +"Tosamenföhren utproberen wullt." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Passen Resultaat:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Bispillreeg för en Vörgeschicht-Anfang (mit vöranstellt Kommentar):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopeer en Vörgeschicht-Anfangreeg, as se binnen\n" +"Dien Dateien vörkamen kann, un ok den vöranstellten\n" +"Kommentar." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Vörgeschicht-Sorteerreeg:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Bispillreeg för en Vörgeschichtindrag-Anfang (ahn vöranstellt Kommentar):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopeer en Vörgeschichtindrag-Anfangreeg, as se\n" +"binnen Dien Dateien vörkamen kann, man nich den\n" +"vöranstellten Kommentar." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sorteerresultaat:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Dreper funnen." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Keen Dreper funnen." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Binnen den reguleren Utdruck passt de linken un rechten Klemmen nich tosamen." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Twischenaflaag-Daten laat sik nich as Temporeerdatei sekern." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Ut Twischenaflaag" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Mischen vun Links un normaal Dateien" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Dat Vörverarbeiden is villicht fehlslaan. Prööv dissen Befehl:\n" +"\n" +" %1\n" +"\n" +"De Vörverarbeid-Befehl warrt nu utmaakt." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"De Vörverarbeiden för de Regenutrichten is villicht fehlslaan. Prööv dissen " +"Befehl:\n" +"\n" +" %1\n" +"\n" +"De Vörverarbeid-Befehl för de Regenutrichten warrt nu utmaakt." + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Free Ruum achter Afsluss-Hoochkomma verwacht" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Argument bargt nich verwacht Hoochkomma" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Keen Programm angeven" \ No newline at end of file diff --git a/po/nds/kdiff3fileitemactionplugin.po b/po/nds/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..f8ff02b --- /dev/null +++ b/po/nds/kdiff3fileitemactionplugin.po @@ -0,0 +1,122 @@ +# translation of kdiff3fileitemactionplugin.po to Low Saxon +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Manfred Wiese , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2011-09-21 07:00+0200\n" +"Last-Translator: Manfred Wiese \n" +"Language-Team: Low Saxon \n" +"Language: nds\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kdiff3fileitemaction.cpp:81 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3…" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Mit \"%1\" verglieken" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Mit \"%1\" tosamenföhren" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "\"%1\" för later sekern" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-Weeg-Tosamenföhren mit Grundlaag" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Verglieken mit..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "List leddig maken" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Verglieken" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3-Weeg-Verglieken" + +#: kdiff3fileitemaction.cpp:162 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "Över dat KDiff3-Menümoduul…" + +#: kdiff3fileitemaction.cpp:270 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"KDiff3-Dateiindrag-Akschonenmoduul. Copyright © 2011 Joachim Eibl\n" +"KDiff3-Tohuussiet: http://kdiff3.sourceforge.net\n" +"\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"De Rechtsklickmenü-Verwiedern bruken:\n" +"Twee utsöcht Dateien laat sik eenfach mit »Verglieken« verglieken.\n" +"Is de anner Datei an en anner Steed, »Seker« de eerste Datei »för later«, se " +"dukt denn in't Ünnermenü »Verglieken mit...« op, dat Du för de twete Datei " +"opröppst.\n" +"Wullt Du Dateien tosamenföhren, »seker« toeerst de Grunddatei, denn den " +"Telg, den Du tosamenföhren wullt, un för de drüdde Datei bruukst Du »3-Weeg-" +"Tosamenföhren mit Grundlaag«, se warrt denn dat Teel.\n" +"Dat sülve gellt ok för't Verglieken un Tosamenföhren vun Ornern." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Över dat KDiff3-Dateiindrag-Akschonenmoduul…" \ No newline at end of file diff --git a/po/nl/diff_ext.po b/po/nl/diff_ext.po new file mode 100644 index 0000000..cbc4635 --- /dev/null +++ b/po/nl/diff_ext.po @@ -0,0 +1,130 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Freek de Kruijf , 2018, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-04-28 14:48+0200\n" +"Last-Translator: Freek de Kruijf \n" +"Language-Team: Dutch \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" +"X-Generator: Lokalize 21.04.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Vergelijken met %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Samenvoegen met %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "3-weg samenvoeging met basis" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "'%1' voor later gebruik opslaan" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Vergelijken met..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Lijst wissen" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Vergelijken" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3-weg vergelijking" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Info over Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Alle rechten voorbehouden.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" +"Deze software mag gedistribueerd worden onder de licentie BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Enige extensies voor KDiff3 (c) 2006-2013 door Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Overgezet naar Qt5/Kf5 door Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Homepagina voor Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Info over Diff-Ext voor KDiff3 (64 bits)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Geselecteerde bestanden vergelijken" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "'%1' vergelijken met '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "'%1' voor latere bewerking opslaan" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Kon KDiff3 niet starten. Doe de installatie van KDiff3 opnieuw." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Commando" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "CommandoRegel" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext voor KDiff3" \ No newline at end of file diff --git a/po/nl/docs/kdiff3/index.docbook b/po/nl/docs/kdiff3/index.docbook new file mode 100644 index 0000000..0f982aa --- /dev/null +++ b/po/nl/docs/kdiff3/index.docbook @@ -0,0 +1,3987 @@ + +KDiff3"> + + + + ASCII"> +]> + + + + + + +Het handboek van &kdiff3; + + + Michael Reeves
reeves.87@gmail.com +
+
+ Joachim Eibl
joachim.eibl at gmx.de +
+
+&Sander.Koning;&Freek.de.Kruijf;&Ronald.Stroethoff; +
+ + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +2019-02-22 +1.08.70 + + + +&kdiff3; is een hulpmiddel om bestanden en mappen te vergelijken en samen te voegen dat +twee of drie tekstbestanden of mappen vergelijkt en samenvoegt, +de verschillen regel-voor-regel en teken-voor-teken(!) aangeeft, +een automatische samenvoegfunctie biedt, +een editor heeft voor het comfortabel oplossen van samenvoegconflicten, +netwerktransparantie biedt via KIO, +opties heeft voor het accentueren of verbergen van wijzigingen in witruimte of commentaar, +Unicode, UTF-8 en andere bestandscoderingen ondersteunt, +verschillen in regels afdrukt, +versiebeheersleutelwoorden ondersteunt en samenvoegen van geschiedenis. + +Dit document beschrijft &kdiff3; versie 1.9. + + + + + +KDE +kdiff3 +verschil +samenvoegen +CVS +drievoudig verschil +vergelijken +bestanden +mappen +mappen +versiebeheer +drievoudig samenvoegen +verschillen in regels +synchroniseren +kpart +kio +netwerktransparant +editor +witruimte +commentaar + + +
+ +Inleiding +Alweer een front-end voor diff? +Er bestaan diverse grafische hulpmiddelen voor diff. Waarom &kdiff3; gebruiken? Laat me uitleggen waarom ik het geschreven heb. &kdiff3; begon omdat ik een moeilijke samenvoegoperatie moest doen. Samenvoegen is nodig als diverse mensen aan dezelfde bestanden in een project werken. Een samenvoeging kan enigszins geautomatiseerd worden, als het samenvoeghulpmiddel daartoe niet alleen de nieuwe, gewijzigde bestanden heeft ("takken") maar ook het originele bestand ("basis"). Het samenvoeghulpmiddel kiest automatisch een verandering die alleen in één tak is gedaan. Als diverse mensen dezelfde regels veranderen, detecteert het samenvoeghulpmiddel een conflict dat handmatig opgelost moet worden. De samenvoeging was moeilijk omdat één van de helpers veel dingen had gewijzigd en de insprong op veel plaatsen had verbeterd. Een andere helper had ook veel tekst in hetzelfde bestand veranderd, hetgeen in diverse samenvoegconflicten resulteerde. Het hulpmiddel dat ik toen gebruikte toonde alleen de gewijzigde regels, maar niet wat er in die regels was gewijzigd. En er was geen informatie over of alleen de insprong gewijzigd was. Het samenvoegen was een kleine ramp. Dus dat was het begin. De eerste versie kon verschillen binnen een regel en verschillen in witruimte tonen. Later werden veel andere mogelijkheden toegevoegd om het nut te vergroten. Als u bijvoorbeeld snel wat tekst wilt vergelijken, kunt u het naar het klembord kopiëren en in een van de vergelijkingsvensters plakken. Een optie die veel werk vereiste was het vergelijken en samenvoegen van mappen, dat het programma bijna in een bestandsverkenner veranderde. Ik hoop dat &kdiff3; ook voor u werkt. Veel plezier! Joachim Eibl (2003) + + +Schermafdrukken en mogelijkheden +Deze schermafdruk toont het verschil tussen twee tekstbestanden (met gebruik van een eerdere versie van &kdiff3;): + + + + +3-voudig samenvoegen wordt volledig ondersteunt. Dit is nuttig als twee mensen code onafhankelijk wijzigen. Het originele bestand (de basis) wordt gebruikt om &kdiff3; te helpen bij het automatisch selecteren van de goede wijzigingen. In de samenvoeg-editor onder de verschillenvensters kunt u conflicten oplossen, terwijl u de uitvoer ziet die dat oplevert. U kunt zelfs de uitvoer wijzigen. Deze schermafdruk toont het samenvoegen van drie invoerbestanden: + + + + + +&kdiff3; helpt u ook bij het vergelijken en samenvoegen van complete mappen. Deze schermafdruk toont &kdiff3; gedurende het samenvoegen van een map. + + + + + + +Meer mogelijkheden +Verschillen regel-voor-regel en teken-voor-teken tonen +Door de mogelijkheden van een grafisch kleurenbeeldscherm te gebruiken toont &kdiff3; u precies wat het verschil is. U zult dit prettig vinden als u veel code moet doornemen. + + + + + +Verschillen in witruimte in één oogopslag zien +Spaties en tabs die verschillen worden getoond. Als regels alleen in de hoeveelheid witruimte verschillen kunt u dit in één oogopslag zien in de overzichtskolom aan de linkerkant. (Geen zorgen meer als mensen de insprong veranderen.) + + + + + +Drievoudig verschil +Drie bestanden analyseren en zien waar ze verschillen. De vensters links/midden/rechts heten A/B/C en zijn respectievelijk blauw/groen/magenta gekleurd. Als één bestand hetzelfde is en één bestand verschilt op een regel geeft de kleur aan welk bestand verschilt. De rode kleur geeft aan dat beide andere bestanden verschillen. + + + + + +Comfortabel samenvoegen van twee of meer invoerbestanden +U kunt &kdiff3; gebruiken om twee of drie invoerbestanden samen te voegen en het samenvoegen zo veel mogelijk automatisch te laten verlopen. Het resultaat wordt getoond in een bewerkbaar venster waarin de meeste conflicten met een enkele muisklik opgelost kunnen worden: kies respectievelijk de knoppen ... in de vensters A/B/C om de bron te kiezen die gebruikt moet worden. U kunt hier ook meer dan één bron kiezen. Aangezien dit uitvoervenster een editor is, kunnen ook conflicten die verdere correctie vereisen hier uitgevoerd worden zonder een extra hulpmiddel. + + +En... + + Snelle navigatie via knoppen. + Een muisklik in een samenvattingskolom synchroniseert alle vensters om dezelfde positie te laten zien. + Selecteer en kopieer vanuit elk venster en plak het in het samengevoegde resultaatvenster. + Een overzichtskolom die toont waar de wijzigingen en conflicten zijn. + De kleuren zijn aan te passen aan uw specifieke voorkeuren. + Aanpasbare tabgrootte. + Een optie om spaties in plaats van tabs in te voegen. + Bestanden comfortabel openen via een dialoogvenster of bestanden opgeven op de opdrachtregel. + Zoek naar tekenreeksen in alle tekstvensters met menu-items BewerkenZoeken (&Ctrl;F) en BewerkenVolgende zoeken (F3). + De regelnummers voor elke regel tonen. + Het klembord plakken of tekst in een verschil-invoervenster slepen. + Netwerktransparantie via KIO. + Kan gebruikt worden als verschillenviewer uit &kdevelop; 3. + Regelafbreking voor lange regels. + Ondersteuning voor Unicode, UTF-8 en andere coderingen. + Ondersteuning voor talen die rechts-naar-links schrijven. + ... + + + + + +Vergelijken en samenvoegen van bestanden + +Opdrachtregel-opties + +2 bestanden vergelijken: +kdiff3 bestand1 bestand2 + + + +2 bestanden samenvoegen: +kdiff3 bestand1 bestand2 -m + kdiff3 bestand1 bestand2 -o uitvoerbestand + + + +3 bestanden vergelijken: +kdiff3 bestand1 bestand2 bestand3 + + + +3 bestanden samenvoegen: +kdiff3 bestand1 bestand2 bestand3 -m + kdiff3 bestand1 bestand2 bestand3 -o uitvoerbestand + +Merk op dat bestand1 als basisbestand voor bestand2 en bestand3 gebruikt zal worden. + + +Speciaal geval: bestanden met dezelfde naam +Als alle bestanden dezelfde naam hebben maar zich in verschillende mappen bevinden, kunt u typewerk besparen door de bestandsnaam alleen voor het eerste bestand op te geven, ⪚: +kdiff3 map1/bestandsnaam map2 map3 + + + +Opdrachtregel voor het vergelijken of samenvoegen van mappen: +Dit lijkt er erg op, maar gaat nu over mappen. +kdiff3 map1 map2 + kdiff3 map1 map2 -o doelmap + kdiff3 map1 map2 map3 + kdiff3 map1 map2 map3 -o doelmap + +Voor het vergelijken en samenvoegen van mappen kunt u hier verder lezen. + + +Overige commandoregel-opties +Voor meer informatie over opdrachtregel-opties gebruikt u: +kdiff3 --help + +Voorbeeld uitvoer: +Opties: + -m, --merge De invoer samenvoegen. + -b, --base bestand Expliciet basisbestand. Voor compatibiliteit met bepaalde hulpmiddelen. + -o, --output bestand Uitvoerbestand. Impliceert -m. Bijv: -o nieuwbestand.txt + --out bestand Uitvoerbestand. Voor compatibiliteit met bepaalde programma's.) + --noauto Negeer --auto en toon altijd GUI. + --auto Geen GUI als alle conflicten automatisch te doen zijn. (Vereist -o) + --L1 alias1 Zichtbare naamvervanging voor invoerbestand1 (basis). + --L2 alias2 Zichtbare naamvervanging voor invoerbestand 2. + --L3 alias3 Zichtbare naamvervanging voor invoerbestand 3. + -L, --fname alias Alternatieve zichtbare naamvervanging. Eenmaal voor elke invoer opgeven.. + --cs string Vervang een config instelling. Voor elke instelling er één gebruiken. Bijv.: --cs "AutoAdvance=1" + --confighelp Toon een lijst met config instellingen en huidige waarden. + --config file Gebruik een ander config-bestand. + +De optie maakt het mogelijk om een configuratie-waarde aan te passen die anders alleen via de configuratiedialoog veranderd kan worden. Let op: bij het beëindigen van &kdiff3; wordt de aangepaste waarde samen met de andere instellingen opgeslagen. De namen van de beschikbare configuratie-waarden en de waarden daarvan kunt U te weten komen door het gebruik van . +Via kunt u een ander config-bestand specificeren. Wanneer u &kdiff3; vaak gebruikt met compleet andere instellingen dan stelt dit u in staat om gemakkelijk tussen hen te wisselen. + +Opdrachtregel-opties die genegeerd mogen worden +Vele mensen willen &kdiff3; in combinatie met een versiecontrolesysteem gebruiken. Maar wanneer dit versiecontrolesysteem &kdiff3; aanroept door gebruik van parameters op de commandoregel, die &kdiff3; niet herkent, dan eindigt &kdiff3; met een foutmelding. U kunt in de instellingendialoog in het item Integratie commandoregelargumenten opgeven die door &kdiff3; genegeerd moeten worden. Ze zullen in de help voor gebruik verschijnen zoals in dit voorbeeld: +--foo Genegeerd (gebruikergedefinieerd). + + + Te negeren commandoregelopties:Een lijst opties, gescheiden door puntkomma's ';'. Wanneer een van deze opties op de commandoregel verschijnt zal &kdiff3; deze negeren en draaien zonder een fout te geven. (Standaard is het "u;query;html;abort"). + +Wanneer dit niet genoeg is, dan wordt het schrijven van een shell-script aanbevolen die de vertaling van de optie doet. + + + + +Het venster "Openen" +Aangezien veel bestanden geselecteerd moeten kunnen worden, heeft het programma een speciaal dialoogvenster hiervoor: + + + +In dit dialoogvenster kunt u de bestandsnamen met de hand wijzigen, een bestand via het bladerprogramma kiezen via knop Bestand...) of recente bestanden via de afrolmenu's kiezen. Als u het dialoogvenster opnieuw opent, blijven de huidige bestandsnamen staan. Het derde invoerbestand is niet verplicht. Als het item bij C leeg blijft, wordt slechts een verschillenanalyse op twee bestanden uitgevoerd. U kunt ook een map kiezen met Map.... Als voor A een map opgegeven is wordt een vergelijking/samenvoeging op mappen gestart. Als A een bestand opgeeft maar B, C of de uitvoer een map opgeeft, gebruikt &kdiff3; de bestandsnaam van A in de opgegeven mappen. Als Samenvoegen geselecteerd is, kunt u de regel Uitvoer bewerken. Maar het is niet nodig om direct de uitvoerbestandsnaam op te geven. U kunt hiermee ook wachten tot bij het opslaan. De knop Configureren... opent de instellingendialoog, waarmee u de opties kunt instellen voordat de analyse gestart wordt. + + +Invoer plakken en slepen +Soms wilt u tekstdelen die niet in een eigen bestand staan vergelijken. &kdiff3; biedt u ook de mogelijkheid tekst vanaf het klembord in een vergelijkingsvenster, dat de focus heeft, te plakken. De vergelijkingsanalyse begint dan direct. In het venster "Openen" hoeft u dan geen bestanden op te geven, sluit dit gewoon met de knop Annuleren. U kunt ook slepen en neerzetten: Sleep een bestand uit een bestandsbeheerder of geselecteerde tekst uit een editor en zet deze neer in een verschillenvenster. Wat is het idee? Soms bevat een bestand twee gelijksoortige functies, maar bekijken hoe gelijk ze werkelijk zijn is een grote moeite als u eerst twee bestanden moet maken en deze dan moet laden. Nu kunt u eenvoudigweg de relevante secties kopiëren, plakken, en vergelijken. Momenteel kunt u niets uit &kdiff3; slepen. Alleen slepen naar de vergelijkingsinvoer wordt ondersteund. Sommige editors interpreteren slepen en neerzetten in een ander programma nog steeds als knippen (in plaats van kopiëren) en plakken. Uw originele gegevens kunnen daardoor verloren gaan. + + +Bestanden vergelijken en de informatie in de invoervensters interpreteren + + + +InforegelBovenaan elk tekstvenster staat de "inforegel". De inforegels van de invoervensters bevatten een letter A, B of C, de te bewerken bestandsnaam, een knop voor bladeren en het regelnummer van de eerste zichtbare regel in het venster. (Merk op dat venster C optioneel is). Elke inforegel verschijnt in een aparte kleur. Als u een ander bestand heeft geselecteerd door zoeken of door na het invoeren van de bestandsnaam op de toets &Enter; te drukken, dan zal het nieuwe bestand geladen worden en vergeleken met de al eerder geladen bestanden. KleurenDe drie invoervensters krijgen de letters A, B en C. A heeft de kleur blauw, B is groen en C is magenta. (Dit zijn de standaard kleuren, u kunt ze wijzigen via het item Kleur de instellingendialoog.) Als er een verschil opgemerkt wordt, toont de kleur welk invoerbestand er verschilt. Als beide andere invoerbestanden verschillen is de kleur die dit aangeeft standaard rood (Conflictkleur in optie in item Kleur in de instellingendialoog). Dit kleurenschema is vooral handig in het geval van drie invoerbestanden, hetgeen u zult zien in de volgende sectie (Samenvoegen). SamenvattingskolomLinks van elke tekst staat een "samenvattingskolom". Als er verschillen op een regel opgetreden zijn geeft deze kolom de respectievelijke kleur aan. Voor een verschil alleen in witruimte is de samenvatting geblokt. Voor programmeertalen waar witruimte niet zo belangrijk is, is dit nuttig om te zien of er iets belangrijks veranderd is. (In C/C++ is witruimte alleen interessant binnen tekenreeksen, commentaar, voor de preprocessor en sommige zeer uitzonderlijke situaties.) De verticale lijn die de overzichtskolom en de tekst scheidt wordt onderbroken als het invoerbestand daar geen regels heeft. Als regelafbreking ingeschakeld is, wordt deze lijn gestippeld voor afgebroken regels. OverzichtskolomAan de rechterkant is een "overzichts"-kolom zichtbaar, links van de verticale schuifbalk. Deze toont gecomprimeerd de samenvattingskolom van invoer A. Alle verschillen en conflicten zijn in één oogopslag zichtbaar. Als er slechts twee invoervensters gebruikt worden, verschijnen alle verschillen in rood omdat elk verschil dan een conflict is. Een zwarte rechthoek omrandt het zichtbare deel van de invoer. Voor zeer lange invoerbestanden, waarbij het aantal regels groter is dan de hoogte van de overzichtskolom in pixels, delen diverse invoerregels één overzichtsregel. Een conflict heeft dan topprioriteit boven eenvoudige verschillen, die prioriteit hebben boven geen wijziging, zodat geen verschil of conflict verloren gaat. Door in deze overzichtskolom te klikken wordt de bijbehorende tekst getoond. Handmatig regels uitlijnenSoms plaatst het algoritme de verkeerde regels naast elkaar. Of u wilt een stuk tekst vergelijken met een ander stuk tekst op een compleet andere locatie in het andere bestand. Voor dit soort situaties kunt u handmatig &kdiff3; bepaalde regels naast elkaar laten uitlijnen. Markeer met de muis de tekst die u wilt uitlijnen alsof u het wilt kopiëren en kies vervolgens VerschilweergaveHandmatige uitlijning van vergelijking toevoegen (sneltoets &Ctrl;Y). Er zal een oranje balk in de samenvattingskolom naast de gekozen tekst verschijnen. Herhaal dit voor de tweede en (indien aanwezig) derde venster met verschillen. &kdiff3; zal iedere keer onmiddellijk de verschillen herberekenen en de aangewezen regels uitlijnen. Natuurlijk zullen sommige regels die voorheen wel uitgelijnd waren en nu niet meer uitgelijnd zijn. Op dit moment ondersteunt samenvoegen het handmatig uitlijnen niet. Handmatig samenvoegen en opsplitsen van secties met verschillenIn sommige gevallen heeft &kdiff3; te veel of te weinig secties om te kunnen samenvoegen. In dergelijke gevallen kunt u bestaande secties opsplitsen of juist samenvoegen. Voeg nieuwe secties toe door tekst in de regels die bij elkaar horen te selecteren in beide invoervensters (op dezelfde manier als kopiëren naar het klembord). Kies vervolgens het menu-item SamenvoegenVergelijking bij selectie splitsen. Splitsingen worden boven de eerste regel en onder de laatste regel van de geselecteerde tekst geplaatst. Als u maar één sectie wilt toevoegen, dan moet u vanaf een andere sectie-splitsing de tekst selecteren. Voor het samenvoegen van secties in beide invoervenster selecteert u iets in de regels uit de samen te voegen secties. (U kunt ook meerdere secties in één bewerking samenvoegen). Kies vervolgens menu-item SamenvoegenGeselecteerde verschillen samenvoegen. + + + +Samenvoegen en het editorvenster voor samenvoegingsuitvoer + + + +Het editorvenster voor de samenvoegingsuitvoer (onder de verschil-invoervensters) heeft ook een inforegel bovenaan met Uitvoer:, de bestandsnaam en [Gewijzigd] als u iets bewerkt hebt. Meestal bevat dit wat tekst door de automatische samenvoegingsfunctie, maar vaak bevat het ook conflicten. !!! Opslaan is uitgeschakeld totdat alle conflicten opgelost zijn !!! (Gebruik de knoppen Ga naar vorig/volgend onopgelost conflict om de overgebleven conflicten te vinden.) Met maar twee invoerbestanden is elk verschil ook een conflict dat handmatig opgelost moet worden. Met drie invoerbestanden wordt het eerste bestand als basis gebruikt, en het tweede en derde bestand bevatten wijzigingen. Als op een bepaalde regel alleen invoer B of C gewijzigd is, maar niet beide, wordt de veranderde bron gekozen. Alleen als B en C op dezelfde regel veranderd zijn, detecteert het hulpmiddel een conflict dat handmatig opgelost moet worden. Als B en C hetzelfde zijn, maar niet hetzelfde als A, wordt C gekozen. De kolom SamenvattingHet editorvenster voor samenvoegingsuitvoer heeft ook links een samenvattingskolom. Deze toont de letter van de invoer waaruit een regel geselecteerd is of niets als alle drie de bronnen gelijk waren op die regel. Bij conflicten wordt een vraagteken "?" getoond en de regel toont dan "<Samenvoegconflict>", het geheel in rood. Omdat conflicten regel voor regel oplossen erg lang duurt, worden de regels gegroepeerd in groepen die dezelfde verschil- en conflictkenmerken hebben, Alleen witruimte-conflicten worden gescheiden van niet-witruimte-conflicten om het samenvoegen van bestanden waarin de insprong gewijzigd is, gemakkelijker te maken. De huidige groep instellen en zichtposities van samenvoegen en verschillen synchroniserenAls u met de &LMB; in een samenvattingskolom klikt, wordt de groep die bij die regel hoort geselecteerd in alle vensters en wordt het begin van de groep getoond. Deze groep wordt dan de "huidige groep". Deze wordt geaccentueerd met het optie Achtergrondkleur van diff voor huidig bereik van item Integratie in de instellingendialoog en er verschijnt een zwarte balk links van de tekst. Kies invoer A, B of C voor het huidige conflict en bewerkingDe knoppenbalk onder de menubalk heeft drie selectieknoppen voor invoer met de letters A, B en C. Klik op de keuzeknop voor invoer om de regels uit de desbetreffende bron te plakken (of na het plakken weer te verwijderen). Voor gebruik van regels uit verschillende bronnen klikt u op de knoppen in de gewenste volgorde. Als u bijvoorbeeld wilt dat de regels van B boven de regels van A in de uitvoer verschijnen, klik dan eerst op B en daarna op A. Als u de knop Automatisch na bronselectie naar volgende onopgeloste conflict gaan gebruikt (zie sectie (Automatisch doorgaan), is het verstandig om dit uit te schakelen voordat u uit diverse bronnen regels selecteert en deze daarna wilt gaan bewerken. Als u dit nalaat zal &kdiff3; naar het volgende conflict springen na het selecteren van de eerste invoer. Het is vaak handig om de samenvoegingsuitvoer te kunnen bewerken. In de samenvattingskolom is een "m" te zien voor iedere regel die handmatig is bewerkt. Wanneer bijvoorbeeld de verschillen zodanig zijn uitgelijnd dat eenvoudig de invoer kiezen niet het gewenste resultaat oplevert, dan kunt u de gewenste tekst markeren en de normale manier van kopiëren en plakken gebruiken voor het samenvoegen. Soms verschijnt de tekst "<Geen regel in de bron>" in een regel als die ofwel door automatisch samenvoegen ofwel door bewerken verwijderd is, en er geen andere regels in die groep overblijven. Dit is een plaatshouder voor de groep voor als u zich bedenkt en weer een bron aangeeft. De tekst verschijnt niet in het opgeslagen bestand of in gekopieerde of geplakte selecties. De tekst "<Samenvoegconflict>" verschijnt in het klembord als u tekst met zo'n regel kopieert en plakt. Maar wees alsnog voorzichtig. Kiezen van invoer A, B, of C voor alle conflictenHet normale samenvoegen begint door het automatisch oplossen van eenvoudige conflicten. Maar het menu Samenvoegen biedt wat acties voor andere veelvoorkomende zaken. Als u dezelfde bron voor de meeste conflicten wilt gebruiken, kunt u A, B of C overal kiezen, of alleen voor de overgebleven niet-opgeloste conflicten, of voor de niet-opgeloste witruimteconflicten. Als u elk apart onderscheid zelf wilt bepalen, kunt u Elk onderscheid maken bij conflicten instellen. Of als u terug wilt gaan naar de automatische keuzes van &kdiff3; kiest u Eenvoudige conflicten automatisch oplossen. &kdiff3; herstart het samenvoegen dan. Voor acties die uw vorige wijzigingen aanpassen vraagt &kdiff3; om uw instemming alvorens door te gaan. Als u één van de bronnen voor onopgeloste witruimte-conflicten kiest en de optie Getallen negeren (als witruimte behandelen) of C/C++ commentaar negeren (als witruimte behandelen) bij het item Diff is gekozen in de instellingendialoog, dan worden wijzigingen in getallen respectievelijk commentaar ook als witruimte behandeld. Automatisch samenvoegen van trefwoorden en geschiedenis (Log) uit versiebeheerVeel systemen voor versiecontrole gebruiken speciale trefwoorden in het bestand. (⪚ "$Date$", "$Header$", "$Author$", "$Log$", &etc;). Deze regels worden aangepast tijdens het inchecken in het version control system (VCS). Bijvoorbeeld "$Date$" zal veranderen in "$Date: 2005/03/22 18:45:01 $". Omdat deze regel in iedere versie van het bestand verschillend is, is daarom het handmatig ingrijpen noodzakelijk tijdens het samenvoegen. &kdiff3; heeft de mogelijkheid om dit soort items automatisch in item Samenvoegen in de instellen. Bij eenvoudige regels die overeenkomen met de instellingen voor Reguliere expressie voor automatisch samenvoegen voor alle invoerbestanden, zal &kdiff3; kiezen voor de regel uit B of - indien beschikbaar - uit C. (Het is bovendien noodzakelijk dat voor de vergelijking de regels uitgelijnd zijn en dat de voorgaande regels geen conflicten hebben). Dit automatisch samenvoegen kunt u naar keuze onmiddellijk na het starten van het samenvoegen uitvoeren (door het inschakelen van de optie Bij starten van samenvoegen automatisch reguliere expressie gebruiken) of later via menu-item SamenvoegenAutomatisch samenvoegen d.m.v. reguliere expressie uitvoeren. Ook het automatisch samenvoegen van de geschiedenis van versiebeheer (ook "log" genoemd) is ondersteund. De geschiedenis samenvoegen kunt u naar keuze onmiddellijk na het starten van het samenvoegen uitvoeren door het inschakelen van de keuze Geschiedenis versiebeheer samenvoegen bij aanvang van samenvoegen in het item Samenvoegen in de instellingendialoog of later via het menu-item SamenvoegenAutomatisch geschiedenisconflicten oplossen Meestal begint de geschiedenis van het versiebeheer met een regel waarin het trefwoord "$Log$" voor komt. Dit moet overeenkomen met de Reguliere expressie voor begin van geschiedenis. &kdiff3; bepaalt welke opvolgende regels ook in de geschiedenis thuishoren door te kijken naar de voorafgaande tekens die voor het trefwoord "$Log$" staan. Als dezelfde "voorafgaand commentaar"-tekens ook in volgende regels verschijnen, dan worden deze regels ook in de geschiedenis opgenomen. Tijdens elke check-in schrijft het VCS een unieke regel met daarin informatie over de versie, datum en tijdstip gevolgd door regels met commentaar van de gebruiker. Deze regels vormen samen een geschiedenisitem. Deze geschiedenis groeit met elke check-in met het meest recente item bovenaan (na de beginregel van de geschiedenis). Wanneer bij parallelle ontwikkeling twee of meer ontwikkelaars een tak van een bestand inchecken dan verschijnen bij het samenvoegen van de geschiedenis verschillende items met conflicten. Omdat het samenvoegen van deze takken vervelend kan zijn, komt &kdiff3; met twee mogelijke strategieën: Gewoon de geschiedenisitems van beide ontwikkelaars bovenaan invoegen of de geschiedenisitems sorteren via een door de gebruiker opgegeven trefwoord. De gewoon-toevoegen-van-alle-items-methode is makkelijker om in te stellen. &kdiff3; heeft alleen maar een methode nodig om vast te stellen welke regels bij een geschiedenis-item horen. De meeste VCS voegen een lege regel toe onder elke geschiedenis-item. Als er geen andere lege regels zijn dan is dit voldoende voor &kdiff3;. Maak eenvoudig een lege Reguliere expressie voor begin van een geschiedenis aan in item Samenvoegen in de instellingendialoog. Als het lege regel criterium niet voldoende is dan kunt u een normale expressie aanmaken voor het detecteren van het begin van het geschiedenis-item. Merk op dat &kdiff3; duplicaat geschiedenis-items zal verwijderen. Als een geschiedenis-item meerdere keren aanwezig is in de geschiedenis van een invoerbestand dan blijft deze maar één keer bewaart in het uitvoerbestand. Als u de geschiedenis op volgorde wilt leggen dan moet u opgeven hoe de sorteersleutel is opgebouwd. Gebruik haakjes in de Reguliere expressie voor het begin van een geschiedenis in item Samenvoegen in de instellingendialoog voor het groeperen van gedeeltes van de reguliere expressie die u later wilt gebruiken voor de sorteersleutel. Geef vervolgens in de Sorteervolgorde van het begin van geschiedenis met door komma's "," gescheiden lijst op van nummers die de volgorde aangeven in de reguliere expressie. Omdat het niet gemakkelijk is om dit in een keer goed te krijgen, kunt u de reguliere expressie uitproberen en daarna zo nodig verbeteren in een speciaal dialoogvenster door het gebruik van de knop Reguliere expressies testen. Voorbeeld: neem een geschiedenis aan die lijkt op dit: +/************************************************************************** +** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ +** +** \main\integration_branch_12 2 Apr 2001 10:45:41 tom +** Samengevoegde branch simon_branch_15. +** +** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry +** Snelheid van subroutine convertToMesh() verbeterd. +** crash opgelost. +**************************************************************************/ + +De beginregel van de geschiedenis komt overeen met de reguliere expressie ".*\$Log.*\$.*". Daarna volgen de geschiedenisitems. De regel met het trefwoord "$Log$" begint met twee keer "*" waarna een spatie volgt. &kdiff3; gebruikt de eerste regel met niet-witruimte als "voorafgaand commentaar" en concludeert dat de geschiedenis eindigt in de eerste regel zonder dit voorafgaand commentaar. In dit voorbeeld eindigt de laatste regel met een tekenreeks die ook start met twee keer "*", maar in plaats van een spatie volgt meer keer "*". Met deze regel eindigt daarom de geschiedenis. Als sorteren niet vereist is dan kan de beginregel met de reguliere expressie van het geschiedenisitem er uitzien als dit. (Deze regel is opgesplitst in tweeën omdat het anders niet zou passen.) +\s*\\main\\\S+\s+[0-9]+ (jan|feb|maa|apr|mei|jun|jul|aug|sep|okt|nov|dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + +Meer details over reguliere expressies kunt u lezen in de documentatie over reguliere expressies. Merk op dat "\s" (kleine letter "s") overeenkomt met witruimte en "\S" (Hoofdletter "S") overeenkomt met niet-witruimte. In ons voorbeeld bestaat de beginregel van ons geschiedenis-item als eerste informatie over de versie met de reguliere expressie "\\main\\\S+", de datum bestaande uit de dag "[0-9]+", maand "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" en jaar "[0-9][0-9][0-9][0-9]", de tijd "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" en tenslotte de gebruikersnaam van de ontwikkelaar ".*". Merk op dat de tekens van het "voorafgaand commentaar" (in het voorbeeld "**") al verwijderd zijn door &kdiff3; voor de poging tot uitlijnen, daarom begint de reguliere expressie met een overeenkomst voor een of meer witruimte-tekens "\s*". Omdat commentaar-tekens kunnen verschillen in ieder bestand (⪚ C/C++ gebruikt andere commentaar-tekens dan een Perl script) let &kdiff3; zelf op de tekens van voorafgaand commentaar en hoeven deze daarom niet opgegeven te worden in de reguliere expressie. Als u een gesorteerde geschiedenis vereist. Dan moet de sorteersleutel berekend worden. Hiervoor moeten de relevante delen in de reguliere expressie gegroepeerd worden door haakjes. (De extra haakjes kunnen er ook in blijven als sorteren van de geschiedenis is uitgeschakeld). +\s*\\main\\(\S+)\s+([0-9]+) (jan|feb|maa|apr|mei|jun|jul|aug|sep|okt|nov|dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + +Tussen de haken vindt u nu 1. versie-info, 2. dag, 3. maand, 4. jaar, 5. tijd, 6. naam. Maar als we op datum en tijd willen sorteren dan moeten we een sleutel creëren waarvan de onderdelen een andere volgorde hebben: eerst het jaar, gevolgd door de maand, dag, tijd, versienummer en naam. De sorteersleutel moet daarom zijn als volgt "4,3,2,5,1,6". Omdat de namen van maanden niet handig zijn voor het op volgorde leggen ("Apr" zou dan de eerste zijn) detecteert &kdiff3; in welke volgorde de namen van maanden zijn opgegeven en gebruikt in plaats daarvan dat nummer ("Apr"->"04"). En als een kaal nummer is gevonden dan zal dit worden omgezet naar een viercijferig getal met voorloopnullen voor het op volgorde leggen. Tenslotte zal de sorteersleutel voor de beginregel van de geschiedenis er als volgt uit zien: +2001 04 0002 10:45:41 integration_branch_12 tom + +Lees voor meer informatie ook de sectie Instellingen samenvoegen. + + + +Navigatie en bewerken +Veel navigatie doet u met de schuifbalken en de muis maar u kunt ook met de toetsen navigeren. Als u in een venster klikt, kunt u de sneltoetsen &Left;, &Right;, &Up;, &Down;, &PgUp;, &PgDn;, &Home;, &End;, &Ctrl;&Home; and &Ctrl;&End; gebruiken zoals in andere programma's. De overzichtskolom naast de verticale schuifbalk van de invoerbestanden kan ook voor navigatie gebruikt worden door erin te klikken. U kunt ook een muiswiel gebruiken om omhoog en omlaag te bladeren. In de uitvoereditor voor samenvoegen kunt u ook de andere toetsen gebruiken om de tekst te bewerken. U kunt tussen invoeg- en overschrijfmodus wisselen met de toets &Ins;. (Standaard is invoegmodus.) Een klik met de &LMB; in een samenvattingskolom synchroniseert alle vensters zodat ze het begin van dezelfde groep regels tonen (zoals uitgelegd in de sectie "De huidige groep instellen en zichtposities van samenvoegen en verschillen synchroniseren"). De knoppenbalk heeft ook negen navigatieknoppen waarmee u naar het huidige/eerste/laatste verschil kunt springen, naar het volgende/vorige verschil (&Ctrl;&Down;/&Ctrl;&Up;), naar het volgende/vorige conflict (&Ctrl;&PgDn;/&Ctrl;&PgUp;) of naar het volgende/vorige onopgeloste conflict. Merk op dat voor &kdiff3; een "conflict" dat niet automatisch werd opgelost bij het begin van het samenvoegen een "conflict" blijft, zelfs als het wordt opgelost. Vandaar de noodzaak om "onopgeloste conflicten" te onderscheiden. +Automatisch doorgaan +Er is ook een knop Automatisch naar het volgende onopgeloste conflict gaan (Automatisch doorgaan). Als u dit inschakelt, springt &kdiff3; automatisch naar het volgende onopgeloste conflict, zodra u een bron hebt geselecteerd. Dit kan helpen als u altijd slechts één bron wilt kiezen. Als u beide bronnen nodig hebt of als u na het kiezen nog wilt wijzigen, dan wilt u deze optie waarschijnlijk uitschakelen. Voordat u naar het volgende onopgeloste conflict gaat, toont &kdiff3; u korte tijd het effect van uw keuze. Deze vertraging is instelbaar in het item Samenvoegen in de instellingendialoog: u kunt Vertraging voor automatisch doorgaan (ms) instellen in milliseconden tussen 0 en 2000. Tip: Niet te veel klikken? Kies een korte vertragingstijd voor automatisch doorgaan en de sneltoetsen &Ctrl;1/2/3 om A/B/C voor conflicten te selecteren. + + + +Selecteren, kopiëren en plakken +De invoervensters tonen geen cursor, dus selecteren moet gedaan worden met de muis door met de &RMB; aan het begin te klikken, de muisknop ingedrukt te houden en naar het eind te bewegen, waar u de muisknop weer loslaat. U kunt ook een woord selecteren door erop te dubbelklikken. In de samenvoegeditor kunt u ook met het toetsenbord selecteren met &Shift; en de pijltoetsen. Als datgene wat u wilt selecteren niet in het venster past dan kunt u de muis naar buiten de randen van het venster verplaatsen zodat &kdiff3; in die richting schuift. Bij zeer grote selecties kunt u ook de navigatie-toetsen gebruiken terwijl u de muis ingedrukt houdt. Gebruik b.v &PgUp; en &PgDn; om snel naar een bepaalde positie te gaan en laat op de gewenste positie de muisknop los. Om alles in het huidige venster te selecteren gebruikt u het menu-item Bewerken Alles selecteren (&Ctrl;A). Om naar het klembord te kopiëren moet u de knop Kopiëren indrukken (&Ctrl;C of &Ctrl;&Ins;). Maar er bestaat een optie Selectie automatisch kopiëren. Als deze is ingeschakeld, wordt geselecteerde tekst direct naar het klembord gekopieerd. Let er hierbij wel op dat bestaande inhoud van uw klembord niet per ongeluk ongewenst verwijderd wordt. Knippen (&Ctrl;X of &Shift;∇) kopieert naar het klembord en verwijdert de geselecteerde tekst. Plakken (&Ctrl;V of &Shift;&Ins;) plakt de tekst uit het klembord naar de cursorpositie. Als u plakt naar een willekeurig invoervenster dan krijgt u de klembordinhoud in dat venster te zien en zal de vergelijking onmiddellijk starten. Dit is handig als u snel een stuk tekst ergens vandaan haalt en dit wilt vergelijken met iets anders zonder eerst bestanden te hoeven aan te maken. + + +Opslaan +Opslaan is alleen toegestaan als alle conflicten opgelost zijn. Als het bestand al bestaat en de optie Reservekopie ingeschakeld is op item Map in de instellingendialoog, wordt het bestaande bestand hernoemd met een extensie .orig, een bestaande reservekopie wordt hierbij overschreven. Als u afsluit of een andere verschillenanalyse start en de gegevens nog niet zijn opgeslagen, vraagt &kdiff3; u of u wilt opslaan, annuleren of doorgaan zonder opslaan. (&kdiff3; vangt geen signalen. Dus als u &kdiff3; "kill"t gaan uw gegevens verloren.) Regeleinden worden opgeslagen volgens de normale methode op het onderliggende besturingssysteem. Voor Unix-systemen eindigt elke regel met een 'linefeed' "\n", terwijl op Win32-systemen elke regel met een 'carriage-return' en een 'linefeed' eindigt "\r\n". &kdiff3; bewaart de regeleinden van de invoerbestanden niet, hetgeen ook betekent dat u &kdiff3; niet met binaire bestanden moet gebruiken. + + +Tekenreeksen zoeken +U kunt naar tekenreeksen zoeken in elk tekstvenster van &kdiff3;. Het menu-item BewerkenZoeken... (&Ctrl;F) opent een dialoog waarin u de te zoeken tekenreeks kunt opgeven. U kunt ook de vensters opgeven waarin gezocht moet worden. Zoeken begint altijd bovenaan. Gebruik het menu-item BewerkenVolgende zoeken... (F3) om naar het volgende voorkomen door te gaan. Als u meerdere vensters opgeeft om in te zoeken wordt het eerste venster van boven naar beneden doorzocht, voordat het volgende venster weer van bovenaf wordt doorzocht, &etc; + + +Bezig met afdrukken +&kdiff3; ondersteunt het printen van verschillen tussen tekstbestanden. Het menu-item BestandAfdrukken... (&Ctrl;P) opent een dialoog waarin u de printer kunt kiezen en diverse keuzemogelijkheden kunt instellen. Er zijn diverse mogelijkheden om de afdrukselectie in te stellen. Omdat de afdrukdialogen bij de diverse besturingssystemen verschillend zijn, is de methode voor het instellen van de afdrukselectie ook verschillend. + + Alles:Alles afdrukken. + Huidige:Drukt een pagina af die begint met de eerst in het venster zichtbare regel. (Bij systemen zonder deze mogelijkheid kunt u dit bereiken door het paginanummer 10000 op te geven voor het afdrukken.) + Selectie:Voordat u gaat printen selecteert u eerst de tekst met de muis (zoals voor kopiëren en plakken) in een van de diff-invoervensters om de beginregel en de eindregel te bepalen. Als geen tekst in een van invoervensters van diff is geselecteerd dan is deze keuze niet beschikbaar. (Bij systemen zonder deze mogelijkheid kunt u dit bereiken door het paginanummer 9999 op te geven voor het afdrukken.) + Bereik:Geef de beginpagina en de eindpagina op. + +Andere belangrijke keuzemogelijkheden voor het afdrukken zijn de normale keuzes: + Lettertype, lettergrootte + Regelnummering tonen + Regelafbreking + Kleuren + &etc; + +Liggend (landschap) afdrukken wordt aanbevolen. + + +Opties +Opties en de recente-bestandenlijst worden opgeslagen als u het programma afsluit, en opnieuw ingelezen als u het start. Menu-item (Instellingen &kdiff3; configuren...). +Lettertype +Kies een lettertype met vaste breedte. (Op sommige systemen toont dit dialoogvenster ook lettertypes met variabele breedte, maar die dient u liever niet te gebruiken.) + + +Kleuren + + Weergaven voor editor en vergelijkingen: + + Voorgrondkleur:Gewoonlijk zwart. + Achtergrondkleur:Gewoonlijk wit. + Achtergrondkleur bij verschillen:Gewoonlijk lichtgrijs. + Kleur voor A:Gewoonlijk donkerblauw. + Kleur voor B:Gewoonlijk donkergroen. + Kleur voor C:Gewoonlijk donkermagenta. + Kleur voor conflicten:Gewoonlijk rood. + Achtergrondkleur voor huidig bereik:Gewoonlijk lichtgeel. + Achtergrondkleur voor verschillen in huidig bereik:Gewoonlijk donkergeel. + Kleur voor handmatig uitgelijnde verschilbereiken:Gewoonlijk oranje. + + Weergave mappenvergelijking: + + Kleur nieuwste bestand:Gewoonlijk groen. + Kleur oudste bestand:Gewoonlijk rood. + Kleur bestand met gemiddelde leeftijd:Gewoonlijk helder geel. + Kleur voor ontbrekende bestanden:Gewoonlijk zwart. + + +De kleuren wijzigen voor vergelijken van mappen zal alleen effectief zijn na het starten van het volgende vergelijken van mappen. +Op systemen met slechts 16 of 256 kleuren zijn sommige kleuren niet beschikbaar in pure vorm. Op zulke systemen zorgt de knop Standaard voor een pure kleur. + + +Editor-instellingen + + Tab voegt spaties inAls dit uitgeschakeld is en u de toets indrukt, wordt een tab-teken ingevoegd, anders het aangegeven aantal spaties. + Tabgrootte:Kan ingesteld worden voor uw specifieke wensen. Standaard is 8. + Automatisch inspringenAls u op &Enter; of Return drukt wordt het inspringen van de vorige regel gebruikt voor de nieuwe. + Automatische kopieerselectieElke selectie wordt onmiddellijk naar het klembord gekopieerd, indien actief, u hoeft het niet expliciet te kopiëren. + Regeleinde:Bij het opslaan kunt u opgeven welk regeleinde u verkiest. De standaardinstelling is de gebruikelijke keuze voor het gebruikte besturingssysteem. + + + +Diff-instellingen +Bij het vergelijken van bestanden, probeert &kdiff3; eerst regels te vinden die gelijk zijn in alle invoerbestanden. Alleen gedurende deze stap wordt witruimte mogelijk genegeerd. De tweede stap vergelijkt elke regel. In deze stap wordt witruimte niet genegeerd. Ook gedurende het samenvoegen wordt witruimte niet genegeerd. + + + Getallen negeren (als witruimte behandelen)Standaard uit. Getaltekens ('0'-'9', '.', '-') worden genegeerd in het eerste deel van de analyse waarin regels worden vergeleken. In het resultaat worden de verschillen wel getoond, maar behandeld als witruimte. + C/C++ commentaar negeren (als witruimte behandelen)Standaard uit. Wijzigingen in commentaar worden behandeld als wijzigingen in witruimte. + Hoofd-/kleine letter negeren (als witruimte behandelen)Standaard uit. Wijzigingen in verschillen tussen hoofd en kleine letters (zoals 'A' vs. 'a') worden behandeld als wijzigingen in witruimte. + Preprocessorcommando:Zie de volgende sectie. + Preprocessor-commando alleen voor regelcontroles:Zie de volgende sectie. + Grondig zoeken (trager)Doe veel moeite om kleinere onderscheiden te vinden (standaard aan). Dit is waarschijnlijk effectief voor gecompliceerde, grote bestanden. En langzaam voor erg grote bestanden. + Lijn B en C uit voor 3 invoerbestandenProbeer B en C uit te lijnen bij het vergelijken of samenvoegen van drie invoerbestanden. Niet aanbevolen voor samenvoegen omdat dit veel gecompliceerder kan worden. (Standaard is uit). + + + +Instellingen samenvoegen + + Vertraging voor automatisch doorgaan (ms):Bij het automatisch doorgaan bepaalt deze instelling hoe lang het resultaat van de selectie getoond wordt voordat er naar het volgende onopgeloste conflict gesprongen wordt. + Toon informatievenstersToon een venster met informatie over het aantal conflicten. + Standaardsamenvoeging van witruimtes bij 2/3 bestanden:Automatisch alle witruimteconflicten oplossen door een gespecificeerd bestand te kiezen. (Standaard is handmatige keuze.) Nuttig als witruimte in veel bestanden niet belangrijk is. Als u dit alleen af en toe nodig hebt kunt u beter A/B/C voor alle onopgeloste conflicten kiezen in het menu Samenvoegen kiezen. Merk op dat als u Getallen negeren (als witruimte behandelen) of C/C++ commentaar negeren (als witruimte behandelen) hebt ingeschakeld, deze automatische keuze ook voor conflicten in getallen of commentaar geldt. + Reguliere expressie voor automatisch samenvoegen:Reguliere expressie voor regels waar &kdiff3; automatisch één bron moet kiezen. Zie ook Automatisch samenvoegen .... + Bij starten van samenvoegen automatisch reguliere expressie gebruikenIndien u automatisch samenvoegen inschakelt dan gebruikt &kdiff3; de optie Reguliere expressie voor automatisch samenvoegen bij het samenvoegen. + Reguliere expressie voor begin van geschiedenisitem:Reguliere expressie voor het begin van het item van de geschiedenis van het samenvoegen. Veel voorkomende waarde in deze regel is het trefwoord "$Log$". Standaardwaarde: ".*\$Log.*\$.*" + Reguliere expressie voor begin van geschiedenisitem:Een samenvoeg-geschiedenis-item bestaat uit verschillende regels. Geef de reguliere expressie op voor het detecteren van de eerste regel (zonder het voorafgaand commentaar). Gebruik haakjes ('(' of ')') om de sleutels te groeperen die u wilt gebruiken bij het sorteren of op volgorde leggen. indien leeg, dan neemt &kdiff3; aan dat lege regels geschiedenis-items scheiden. Lees ook Automatisch samenvoegen .... + Geschiedenis samenvoegend sorterenGeschiedenis van sorteren van versiebeheer inschakelen. + Sorteervolgorde van begin van geschiedenisitems:Elk paar haakjes gebruikt in de reguliere expressie groepeert een sleutel die gebruikt kan worden voor sorteren. Geef een lijst op met sleutels (die genummerd worden in volgorde van gebruik met de 1 als begin) met ',' als scheidingsteken (⪚ "4,5,6,1,2,3,7"). Indien leeg zal er niet worden gesorteerd. Lees ook Automatisch samenvoegen ... + Geschiedenis versiebeheer samenvoegen bij aanvang van samenvoegenIndien u automatisch samenvoegen inschakelt dan gebruikt &kdiff3; de bovengenoemde keuzes bij het samenvoegen van de geschiedenis. + Max. aantal items in geschiedenis:&kdiff3; verkort de geschiedenislijst na het gespecificeerde aantal items. Gebruik -1 om verkorting te voorkomen. (Standaard is -1). + Uw reguliere expressies testenDeze knop opent een dialoogvenster waarin u de hierboven beschreven reguliere expressies kunt testen en zo nodig verbeteren. Kopieer respectievelijke data uit uw bestanden naar de voorbeeld regels. In het Resultaat van overeenkomsten zal onmiddellijk te zien zijn of de resultaten wel of niet succesvol zijn. In het Resulterende sorteersleutel: is de voor het samenvoegen van de geschiedenis gebruikte sleutel te zien. + Irrelevant samenvoegcommando:Geef uw eigen commando op dat gebruikt moet worden wanneer &kdiff3; bemerkt dat bij het samenvoegen van een groep bestanden het bestand van B geen relevante data toevoegt die niet al door een bestand uit C is toegevoegd. Het commando wordt gestart met de drie bestandsnamen als parameters. Data die overeenkomt met Reguliere expressie voor automatisch samenvoegen of in de geschiedenis voorkomt is hierbij niet relevant. + Automatisch opslaan en afsluiten bij samenvoegingen zonder conflictenAls &kdiff3; vanaf de commandoregel is gestart om bestanden samen te voegen en alle conflicten waren oplosbaar zonder dat ingrijpen van de gebruiker nodig was, sla het resultaat dan automatisch op en sluit het programma af. (Vergelijkbaar met de commandoregeloptie ). + + + + +Samenvoegen van mappen +Deze opties gaan over het doorzoeken van de map en de afhandeling van het samenvoegen: zie Mapvergelijking/samenvoeging voor details. Er is hier echter één optie die ook relevant is voor het opslaan van enkele bestanden: + + Reservekopie aanmaken (.orig)Als een bestand wordt opgeslagen en er al een oudere versie bestaat, wordt het oude bestand hernoemd met een extensie .orig. Als een oud reservekopiebestand met de extensie .orig al bestaat, wordt deze zonder reservekopie verwijderd. + + + +Regio- en taalinstellingen + + Dezelfde codering gebruiken voor allesDe volgende coderingsopties kunnen apart aangepast worden voor elk item. Als deze optie is ingeschakeld nemen alle waarden deze over. + Opmerking: lokale codering is "..."Boven de coderings-selectors komt deze opmerking die u vertelt wat de lokale codering is. (Dit is niet aan te passen, maar wordt aangegeven als u uw lokale codering niet weet, maar wel wilt kiezen.) + Bestandscodering voor A/B/C:Pas de bestandscodering voor invoerbestanden aan. Dit heeft effect op hoe speciale tekens geïnterpreteerd worden. Aangezien u elke codering apart kunt instellen, kunt u zelfs bestanden vergelijken en samenvoegen die met verschillende coderingen zijn opgeslagen. + Bestandscodering voor samenvoeguitvoer en opslag:Als u een bestand hebt bewerkt, kunt op aanpassen met welke codering het weer op schijf wordt opgeslagen. + Bestandscodering voor preprocessorbestanden:Als u preprocessors opgeeft kunnen deze misschien niet met uw codering werken (⪚: uw bestanden zijn 16-bits unicode en uw preprocessor kan alleen met 8-bits &ASCII; overweg). Met deze optie kunt u de codering van preprocessor-uitvoer opgeven. + Rechts-naar-links-taalSommige talen worden van rechts naar links geschreven. Als ieze optie is ingeschakeld, tekent &kdiff3; de tekst van rechs naar links in de verschillenvensters en in het uitvoervenster. Merk op dat, als u &kdiff3; met de opdrachtregeloptie start, alle schermopmaak ook van rechts naar links gedaan wordt. (Dit is een optie die door Qt aangeboden wordt). Deze documentatie is geschreven onder de aanname dat deze optie of omgekeerde indeling uitgeschakeld zijn. Dus referenties naar "links" of "rechts" moeten vervangen worden door hun respectievelijke tegendeel als u deze opties gebruikt. + + + + +Diverse +(Deze opties en acties zijn in menu's of in de knoppenbalk beschikbaar.) + + Overzichtsopties:Deze keuzes zijn alleen beschikbaar als u drie bestanden vergelijkt. In normale modus worden alle verschillen getoond in één kleurgecodeerde overzichtskolom. Maar soms bent u speciaal geïnteresseerd in de verschillen tussen slechts twee van deze drie bestanden. Door "A vs B", "A vs C" of "B vs C" te kiezen wordt er een tweede overzichtskolom met de vereiste informatie getoond naast het normale overzicht. + Regels afbreken in vensters met verschillenRegels afbreken als hun lengte de breedte van een venster zou overschrijden. + Venster A/B/C tonen:Soms wilt u de ruimte op het scherm beter gebruiken voor lange regels. Verberg dan de vensters die niet belangrijk zijn. (In het menu Venster.) + Splitsen van vensters omschakelenWisselen tussen weergave van verschilvensters naast elkaar (A links van B links van C) of boven elkaar (A boven B boven C). Dit moet ook voor lange regels helpen. (In het menu Venster). + Huidig bestand samenvoegenWerkt ook als u slechts twee bestanden vergelijkt. Een enkele klik start het samenvoegen en gebruikt de bestandsnaam van het laatste invoerbestand als het standaard uitvoerbestand. (Als dit gebruikt wordt om een samenvoeging te herstarten, wordt de uitvoerbestandsnaam behouden.) + Witruimte tonenSchakel dit uit om accentuering van alleen-witruimte-veranderingen in de tekst of overzichtskolommen uit te schakelen. (Merk op dat dit ook van toepassing is op wijzigingen in getallen of commentaar als de opties Getallen negeren (als witruimte behandelen) of C/C++ commentaar negeren (als witruimte behandelen) actief zijn.) + Spatie && tabulator-tekens tonenSoms zijn de zichtbare spaties en tabs storend. U kunt dit uitschakelen. + Regelnummering tonenU kunt kiezen of regelnummers voor de invoerbestanden getoond moeten worden. + + + +Sneltoetsen instellen +Momenteel ondersteunt alleen de &frameworks;-versie gebruikergedefinieerde sneltoetsen. (Menu InstellingenSneltoetsen configureren...) + + + +Preprocessor-opdrachten +&kdiff3; ondersteunt twee preprocessor-opties. + + Preprocessorcommando:Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. De uitvoer van deze opdracht is dan zichtbaar in plaats van het originele bestand. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Gebruik dit om storende delen van het bestand weg te halen, of automatisch de insprong te verbeteren, &etc; + Preprocessor-commando alleen voor regelcontroles:Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. Als een preprocessor-opdracht (zie boven) ook opgegeven wordt, wordt de uitvoer van de preprocessor de invoer van de preprocessor voor regelovereenkomsten. De uitvoer wordt dan alleen gebruikt bij de regelvergelijkingsfase van de analyse. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Elke invoerregel moet een overeenkomende uitvoerregel hebben. + + +Het idee is om de gebruiker grotere flexibiliteit te geven bij het instellen van het resultaat. Maar dit vereist een extern programma, en veel gebruikers willen dat niet zelf schrijven. Het goede nieuws is dat sed of perl vaak voldoende is. +Voorbeeld: eenvoudig testgeval: bekijk bestand a.txt (6 regels): +aa + ba + ca + da + ea + fa + +En bestand b.txt (3 lines): +cg + dg + eg + +Zonder een preprocessor zouden de volgende regels naast elkaar geplaatstworden: +aa - cg + ba - dg + ca - eg + da + ea + fa + +Dit is waarschijnlijk niet gewenst omdat de eerste letter de werkelijk interessante informatie bevat. Om te helpen bij het algoritme voor overeenkomst om de tweede letter te negeren kunnen we een preprocessorcommando gebruiken voor overeenkomst in regels, die 'g' vervangt door 'a': +sed 's/g/a/' + +Met dit commando zal het resultaat van de vergelijking zijn: +aa + ba + ca - cg + da - dg + ea - eg + fa + +Intern ziet het algoritme voor overeenkomst de bestanden na uitvoeren van de preprocessor voor regelovereenkomst, maar op het scherm is het bestand ongewijzigd. (De normale preprocessor zou de gegevens ook op het scherm wijzigen). + +De basis van <command +>sed</command +> +Deze sectie geeft alleen een inleiding op een paar basismogelijkheden van sed. Zie voor meer informatie info:/sed of https://www.gnu.org/software/sed/manual/html_mono/sed.html. Een voorgecompileerde versie voor &Windows; kunt u vinden op http://unxutils.sourceforge.net. Merk op dat de volgende voorbeelden ervan uitgaan dat de opdracht sed in een map in uw omgevingsvariabele PATH staat. Als dit niet het geval is, dient u het volledige absolute pad voor de opdracht te gebruiken. +In deze context is alleen het substitutiecommando sed gebruikt: +sed 's/REGEXP/VERVANGING/VLAGGEN' + +Voordat u een nieuw commando in &kdiff3; gebruikt, zou u het eerst moeten testen in een console. Hierbij is het commando echo nuttig. Bijvoorbeeld: +echo abrakadabra | sed 's/a/o/' + -> obrakadabra + +Dit voorbeeld toont een erg eenvoudig sed-commando dat het eerste voorkomen van "a" vervangt door "o". Als u alle voorkomen wilt vervangen dan heeft u de vlag "g" nodig: +echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + +Het symbool "|" is het pipe-commando die de uitvoer van het vorige commando naar de invoer van het volgende commando stuurt. Als u met een langer bestand wilt testen dan kunt u cat op &UNIX;-achtige systemen gebruiken of type op &Windows;-achtige systemen. sed zal de substitutie doen voor elke regel. cat bestandsnaam | sed opties + + + +Voorbeelden van het gebruik van <command +>sed</command +> in &kdiff3; +Andere soorten commentaar negeren +&kdiff3; verstaat op dit moment alleen C/C++ commentaar. Met gebruik van de optie Commando voor preprocessing regels: kunt u ook andere soorten commentaar negeren, door ze te converteren in C/C++-commentaar. +Voorbeeld: om commentaar die begint met "#" te negeren, zou u ze willen converteren in "//". Merk op dat u ook de optie C/C++ commentaar negeren (behandelen als witruimte) moet inschakelen om een effect te krijgen. Een van toepassing zijnd Commando voor preprocessing regels: zou zijn: +sed 's/#/\/\//' + +Omdat in sed het teken "/" een aparte betekenis heeft, is het nodig om het teken "\" voor elke "/" in de vervangende tekenreeks te plaatsen. Soms is de "\" ook nodig om een teken een speciale betekenis te geven of deze juist weg te halen. De accenten (') zijn alleen belangrijk bij testen op de commandoshell omdat het anders sommige tekens probeert te verwerken. &kdiff3; doet dat niet behalve voor de escape-sequences '\"' en '\\'. + +Niet-hoofdlettergevoelige verschillen +Gebruik het volgende Commando voor Preprocessor voor regelovereenkomsten: om alle invoer naar hoofdletters te converteren: +sed 's/\(.*\)/\U\1/' + +Hier is de ".*" een reguliere expressie die met elke tekenreeks overeenkomt en in deze context met alle lettertekens op de regel overeenkomt. De "\1" in de vervangende tekenreeks verwijst naar de overeenkomende tekst binnen het eerste paar "\(" en "\)". De "\U" zet de ingevoegde tekst om in hoofdletters. + + +Versiebeheer-trefwoorden negeren +CVS en andere versiebeheersystemen gebruiken diverse trefwoorden om automatisch gegenereerde tekenreeksen in te voegen (info:/cvs/Trefwoordvervanging. Deze volgen allemaal het patroon "$TREFWOORD gegenereerde tekst$". We hebben nu een preprocessoropdracht voor regelovereenkomsten nodig die alleen de gegenereerde tekst verwijdert: +sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + +Het teken "\|" scheidt de mogelijke sleutelwoorden. U zou deze lijst willen wijzigen naar wat u nodig hebt. De tekens "\" voor het teken "$" is nodig omdat anders het teken "$" overeenkomst met het eind van de regel. +Terwijl u experimenteert met sed gaat u wellicht deze reguliere expressies begrijpen en op prijs stellen. Ze zijn nuttig omdat er veel andere programma's zijn die soortgelijke dingen ondersteunen. + + +Getallen negeren +Getallen negeren is in feite een ingebouwde optie. Maar als een ander voorbeeld is dit het commando voor Preprocessor voor regelovereenkomsten: +sed 's/[0123456789.-]//g' + +Elk teken binnen de tekens '[' en ']' is een overeenkomst en zal door niets vervangen worden. + + +Bepaalde kolommen negeren +Soms is een tekst erg strict opgebouwd, en bevat deze kolommen die u altijd wilt negeren, terwijl er andere kolommen zijn die u voor analyse wilt bewaren. In het volgende voorbeeld worden de eerste vijf kolommen (lettertekens) genegeerd, de volgende tien worden bewaard, dan worden er weer vijf genegeerd en de rest van de regel wordt bewaard. +sed 's/.....\(..........\).....\(.*\)/\1\2/' + +Elke punt '.' komt overeen met een enkel teken. De "\1" en "\2" in de vervangstekenreeks verwijst naar de overeenkomende tekst binnen het eerste en tweede paar haakjes "\(" en "\)" die aangeeft welke tekst bewaard moet worden. + + +Diverse vervangingen combineren +Soms wilt u diverse vervangingen tegelijk uitvoeren. U kunt dan de puntkomma ';' gebruiken om deze van elkaar te scheiden. Voorbeeld: +echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + +<command +>perl</command +> in plaats van <command +>sed</command +> gebruiken +In plaats van sed zou u perl kunnen gebruiken +perl -p -e 's/REGEXP/VERVANGING/VLAGGEN' + +Maar sommige details zijn anders in perl. Merk op waar sed "\(" en "\)" vereist, perl de eenvoudigere "(" en ")" zonder voorafgaande '\' vereist. Voorbeeld: +sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + +Uitvoervolgorde van preprocessors +De data wordt doorgesluisd door alle interne en externe preprocessors, in deze volgorde: + +Normale preprocessor. +Preprocessor voor regelovereenkomsten. +Hoofdletterongevoelig (behandelen als witruimte) (conversie naar hoofdletters). +Opsporen van C/C++ commentaar. +Getallen negeren (als witruimte behandelen), +Witruimte negeren. + +De gegevens zoals die na de normale preprocessor zijn worden bewaard voor weergave en samenvoeging. De andere handelingen wijzigen alleen de gegevens die het verschillenalgoritme voor regelovereenkomsten ziet. Merk op dat, in de zeldzame gevallen waar u een normale preprocessor gebruikt, de preprocessor voor regelovereenkomsten de uitvoer van de normale preprocessor als invoer ziet. + + +Waarschuwing +De preprocessor-opdrachten zijn vaak erg nuttig, maar net zoals elke andere optie die automatisch uw teksten wijzigt of bepaalde verschillen verbergt, kunt u per ongeluk bepaalde verschillen over het hoofd zien en in het ergste geval belangrijke gegevens vernietigen. Om deze reden vertelt &kdiff3; u het als er een normale preprocessor-opdracht wordt gebruikt bij het samenvoegen, en wordt u gevraagd of deze uitgeschakeld moet worden of niet. Maar u wordt niet gewaarschuwd als er een Commando voor Preprocessor voor regelovereenkomsten: actief is. Het samenvoegen is niet voltooid totdat alle conflicten opgelost zijn. Als u menu-item DiffweergaveWitruimte tonen uitgeschakeld hebt, zijn de verschillen die met de optie Preprocessoropdracht voor regelovereenkomsten verwijderd zijn, ook onzichtbaar. Als de knop Opslaan inactief blijft tijdens het samenvoegen (door overblijvende conflicten), schakel dan menu-item DiffweergaveWitruimte tonen in. Als u deze minder belangrijke verschillen niet handmatig wilt samenvoegen kunt u menu-item Samenvoegen[A|B|C] voor alle onopgeloste witruimteconflicten gebruiken kiezen. + + + + + +Mappen vergelijken en samenvoegen met &kdiff3; +Introductie tot mappen vergelijken en samenvoegen +Programmeurs moeten vaak veel bestanden in een map veranderen om hun doel te bereiken. Daarom laat &kdiff3; u ook hele mappen recursief vergelijken en samenvoegen! Hoewel het vergelijken en samenvoegen van mappen nogal duidelijk lijkt, zijn er aan paar details die u moet kennen. Het belangrijkste is natuurlijk het feit dat nu door elke handeling veel bestanden gewijzigd kunnen worden. Als u geen reservekopieën van uw originele gegevens hebt, kan het erg moeilijk of zelfs onmogelijk zijn om naar de originele staat terug te keren. Dus voordat u een samenvoeging start, zorg ervoor dat uw gegevens veilig zijn en dat u terug kunt keren. Of u een archief maakt of een versiebeheersysteem gebruikt is uw keuze, maar zelfs ervaren programmeurs en integrators hebben zo nu en dan de oude broncodes nodig. En merk op dat ik (de auteur van &kdiff3;) mijn best doe, maar ik kan niet garanderen dat er geen bugs zijn. Volgens de &GNU;-GPL is er GEEN WAARBORG op welke manier dan ook voor dit programma. Dus wees bescheiden en onthoud: +
+ Vergissen is menselijk, maar om dingen echt te verknoeien hebt u een computer nodig. +
+Dus dit kan dit programma voor u doen: &kdiff3; ... + + ... leest en vergelijkt twee of drie mappen recursief, + ... houdt speciaal rekening met symbolische koppelingen, + ... laat u door bestanden bladeren door te dubbelklikken, + ... stelt voor elk item een samenvoegingsoperatie voor, die u kunt wijzigen voordat het samenvoegen van de mappen begint, + ... laat u het samenvoegen simuleren en geeft de acties aan die plaats zouden vinden, zonder ze uit te voeren, + ... laat u het samenvoegen doen, en geeft u de mogelijkheid in te springen als er menselijke interactie nodig is, + ... laat u de geselecteerde handeling op alle items (toets F7) of alleen het geselecteerde item (toets F6) uitvoeren, + ... laat u het samenvoegen voortzetten na handmatige interactie met toets F7, + ... maakt optioneel reservekopieën met de extensie .orig, + ... + +
+ +Mappen vergelijken of samenvoegen +Dit lijkt erg op het vergelijken en samenvoegen van een enkel bestand. U hoeft slechts mappen op de opdrachtregel of in het venster "Openen" te kiezen. +Twee mappen vergelijken/samenvoegen: +kdiff3 map1 map2 + kdiff3 map1 map2 -o doelmap + +Als er geen doelmap wordt opgegeven, gebruikt &kdiff3; map2. + + +Drie mappen vergelijken/samenvoegen +kdiff3 map1 map2 map3 + kdiff3 map1 map2 map3 -o doelmap + +Bij het samenvoegen van drie mappen wordt map1 als basis voor het samenvoegen gebruikt. Als er geen doelmap wordt opgegeven, gebruikt &kdiff3; map3 als doelmap voor het samenvoegen. + +Merk op dat alleen het vergelijken automatisch start, niet het samenvoegen. Hiervoor dient u eerst een menu-item of de toets F7 te gebruiken. (Meer details later.) + + + +Mapsamenvoeging zichtbare informatie +Terwijl de mappen worden gelezen verschijnt een melding die u over de voortgang informeert. Als u het inlezen van de mappen annuleert, worden alleen bestanden getoond die tot dan toe zijn vergeleken. Als het inlezen van de mappen klaar is, toont &kdiff3; een lijst met de resultaten links ... + + + +... en details over het geselecteerde item rechts. + + + + + +De kolom "Naam" +Elk bestand en elke map die tijdens het inlezen gevonden is, wordt hier in een boomstructuur getoond. U kunt een item selecteren door er éénmaal met de muis op te klikken. Standaard zijn de mappen ingevouwen. U kunt ze uitvouwen en weer invouwen door op de "+"/"-" te klikken of door op het item te dubbelklikken, of door de toetsen &Left;/&Right; te gebruiken. Het menu Map bevat ook twee acties Alle submappen invouwen en Alle submappen uitvouwen waarmee u alle mappen in één keer kunt invouwen of uitvouwen. Als u op een bestand dubbelklikt wordt de bestandsvergelijking gestart en verschijnt het verschillenvenster. +De afbeelding in de naamkolom geeft het bestandstype in de eerste map (A) aan. Dit kan zijn: + + Normaal bestand + Normale map (map-afbeelding) + Koppeling naar een bestand (bestandsafbeelding met pijl) + Koppeling naar een bestand (bestandsafbeelding met pijl) + +Als het bestandstype anders is in de andere mappen, is dit zichtbaar in de kolommen A/B/C en in het venster dat de details over het geselecteerde item toont. Merk op dat het samenvoegen in zo'n geval niet automatisch gedaan kan worden. Als u het samenvoegen start, wordt u geïnformeerd over zulke problemen. + + +De kolommen A/B/C en het kleurenschema +Zoals in de afbeelding te zien is, worden de kleuren rood, groen, geel en zwart gebruikt in de kolommen A/B/C. + + Zwart: Dit item bestaat niet in deze map. + Groen: Nieuwste item. + Geel: Ouder dan groen, nieuwer dan rood. + Rood: Oudste item. + +Maar voor items die hetzelfde waren in de vergelijking, is ook de kleur hetzelfde, ook al zijn ze niet even oud. Mappen worden als gelijk beschouwd als alle items die ze bevatten hetzelfde zijn. Dan hebben ze ook dezelfde kleur. De leeftijd van een map wordt niet gebruikt bij het bepalen van de kleur. Het idee voor dit kleurenschema kreeg ik bij het commando dirdiff. De kleuren stellen een blad voor dat groen is als het nieuw is, later geel wordt, en rood wordt als het oud is. + +De kolom "Operatie" +Na het vergelijken van mappen maakt &kdiff3; ook een voorstel voor een samenvoegingsoperatie. Dit wordt getoond in de kolom Operatie. U kunt een operatie wijzigen door erop te klikken. Er verschijnt dan een klein menu waarmee u de operatie voor dat item kunt kiezen. (U kunt ook de meestgebruikte operaties met het toetsenbord kiezen. &Ctrl;1/2/3/4/∇ kiest respectievelijk A/B/C/Samenvoegen/Verwijderen.) Deze operatie wordt dan bij het samenvoegen uitgevoerd. Afhankelijk van het item en de samenvoegmodus zijn er andere operaties beschikbaar. De samenvoegmodus kan zijn: + + Samenvoegen van drie mappen (A wordt als oudere basis van beide beschouwd). + Samenvoegen van twee mappen + Synchroniseren van twee mappen (via de optie Mappen synchroniseren) + +Bij het samenvoegen van drie mappen is het voorstel voor de operatie: als voor een item ... + + ... alle drie de mappen gelijk zijn: kopiëren vanuit C + ... A en C gelijk zijn maar B niet: kopiëren vanuit B (of als B niet bestaat, de bestemming verwijderen als deze bestaat) + ... A en B gelijk zijn maar C niet: kopiëren vanuit C (of als C niet bestaat, de bestemming verwijderen als deze bestaat) + ... B en C gelijk zijn maar A niet: kopiëren vanuit C (of als C niet bestaat, de bestemming verwijderen als deze bestaat) + ... alleen A bestaat: de bestemming verwijderen (als deze bestaat) + ... alleen B bestaat: vanuit B kopiëren + ... alleen C bestaat: vanuit C kopiëren + ... A, B en C niet gelijk zijn: samenvoegen + ... A, B en C niet hetzelfde bestandstype hebben (⪚ A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen. + +Bij het samenvoegen van twee mappen is het voorstel voor de operatie: Als voor een item... + + ... beide mappen gelijk zijn: kopiëren vanaf B + ... A bestaat, maar B niet: kopiëren vanaf A + ... B bestaat, maar A niet: kopiëren vanaf B + ... A en B bestaan maar niet gelijk zijn: samenvoegen + ... A en B niet hetzelfde bestandstype hebben (⪚ A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen. + +Synchronisatiemodus is actief als er slechts twee mappen en geen expliciet doel zijn opgegeven, en als de optie Mappen synchroniseren actief is. &kdiff3; kiest dan een standaard operatie zodanig dat beide mappen naderhand hetzelfde zijn. Als voor een item ... + + ... beide mappen gelijk zijn: er zal niets worden gedaan. + ... A bestaat, maar B niet: A naar B kopiëren + ... B bestaat, maar A niet: B naar A kopiëren + ... A en B bestaan, maar niet gelijk zijn: samenvoegen en het resultaat in beide mappen opslaan. (Voor de gebruiker is de zichtbare opslag-bestandsnaam B, maar &kdiff3; kopieert dan B ook naar A.) + ... A en B niet hetzelfde bestandstype hebben (⪚ A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen. + +Als twee mappen samengevoegd worden en de optie Nieuwere kopiëren in plaats van samenvoegen (onveilig) geselecteerd is, kijkt &kdiff3; naar de datums en stelt dan voor om het nieuwere bestand te kiezen. Als de bestanden niet gelijk zijn maar wel gelijke datums hebben, bevat de operatie "Fout: Datums zijn gelijk maar bestanden niet." Zolang zulke items bestaan kan het samenvoegen niet beginnen. + + +De statuskolom +Gedurende het samenvoegen wordt het ene bestand na het andere verwerkt. De statuskolom toont Gereed bij items waar het samenvoegen is afgerond, en andere teksten als er iets onverwachts gebeurd is. Als het samenvoegen klaar is, dient u een laatste controle te doen om te zien of de status van alle items goed is. + + +Statistiekkolommen +Als de bestandsvergelijkingsmodus Volledige analyse ingeschakeld is in de opties, toont &kdiff3; extra kolommen met het aantal onopgeloste en opgeloste conflicten en het aantal (niet-)witruimteconflicten. (De kolom Opgelost wordt alleen getoond bij het vergelijken of samenvoegen van drie mappen.) + + +Getoonde bestanden selecteren +Verschillende opties beïnvloeden welke bestanden hier te zien zijn. Sommige van deze opties zijn instelbaar in de instellingendialoog. Het menu Map heeft de volgende items: + Identieke bestanden tonen: Bestanden die in alle invoermappen gelijk zijn. + Bestanden die verschillen tonen: Bestanden die in twee of meer mappen voor komen maar niet gelijk zijn. + Bestanden alleen in A tonen: Bestanden die uitsluitend in A voorkomen, maar niet in B of C. + Bestanden alleen in B tonen: Bestanden die uitsluitend in B voorkomen, maar niet in A of C. + Bestanden alleen in C tonen: Bestanden die uitsluitend in C voorkomen, maar niet in A of B. + +Schakel alleen de opties Tonen in voor de items die u wilt tonen. Als u bijvoorbeeld alleen items wilt tonen die uitsluitend in A of in B voorkomen, dan moet u Bestanden alleen in A tonen en Bestanden alleen in B tonen inschakelen en alle anderen uitschakelen (Identieke bestanden tonen, Bestanden die verschillen tonen, Bestanden alleen in C tonen). De lijst zal vervolgens onmiddellijk bijgewerkt worden naar de nieuwe instellingen. Deze keuzemogelijkheden zijn ook geldig voor mappen met een uitzondering: het uitschakelen van Bestanden die verschillen tonen zal niet complete mappen verbergen. Dit werkt alleen voor de bestanden in een map. Merk op dat alleen de optie Identieke bestanden tonen bewaard wordt. De anderen worden ingeschakeld bij het starten van &kdiff3;. + + + + + +Een mapsamenvoeging doen +U kunt het geselecteerde item (bestand of map) samenvoegen, of alle items. Als u alle keuzes voor de operaties hebt gemaakt (ook in alle submappen) kunt u het samenvoegen starten. Wees erop bedacht dat, als u niet expliciet een doelmap hebt opgegeven, de doelmap C is bij het behandelen van drie mappen, B bij het samenvoegen van twee mappen, en A en/of B in synchronisatiemodus. Controleer ook als u een doelmap hebt opgegeven of alle items die zich in de uitvoer zouden moeten bevinden, daadwerkelijk in de boomstructuur staan. Er zijn enkele opties die ervoor zorgen dat bepaalde items uit het vergelijken en samenvoegen van mappen worden weggelaten. Controleer deze opties om onplezierige verrassingen te voorkomen: + + Recursieve mappen: Als dit uitgeschakeld is, worden items in submappen niet gevonden. + Patroon/Anti-patroon: Overeenkomende items al dan niet invoegen + Verborgen bestanden uitsluiten + Opties voor tonen (Bestanden die identiek zijn/verschillen, Bestanden alleen in A/B/C) + +Als u instellingen heeft gewijzigd om de hoeveelheid zichtbare bestanden in de lijst te vergroten, dan is het daarna noodzakelijk om zelf een rescan uit te voeren via het menu MapRescan . (De reden hiervoor is dat voor snellere verwerking van de vergelijkingen, &kdiff3; de vergelijkingen niet uitvoert voor bestanden die al uitgesloten zijn.) Als u de bestand- en map-patronen heeft gewijzigd om meer bestanden uit te sluiten dan wordt de bestandenlijst onmiddellijk bijgewerkt bij het sluiten van de keuze-dialoog. Als u naar een compleet nieuwe map wilt schrijven, dan wilt u meestal ook de identieke bestanden kopiëren. Schakel in dat geval de keuzemogelijkheid Identieke bestanden tonen in. Als uw doelmap een van de invoermappen is, dan is dit niet noodzakelijk omdat de bestanden al aanwezig zijn. Als u tot hier tevreden bent, is de rest eenvoudig. Om alle items samen te voegen: kies Mapsamenvoeging starten/voortzetten in het menu Map of druk op F7 (de standaard sneltoets). Om alleen het huidige item samen te voegen: kies Operatie uitvoeren voor huidig item of druk op F6. Als er door conflicterende bestandstypes nog bestanden zijn met ongeldige operaties, verschijnt er een melding, worden die items aangewezen en kunt u een geldige operatie voor die items kiezen. Als u alle items samenvoegt, verschijnt er een dialoogvenster met de opties Starten, Simuleren en Annuleren. + + Kies Simuleren als u wilt zien wat er gedaan zou worden, zonder dit werkelijk te doen. Er wordt een uitgebreide lijst van alle bewerkingen getoond. + Kies anders Starten om het samenvoegen echt te starten. + +&kdiff3; voert dan de gekozen operatie uit op alle items. Als u handmatige actie moet ondernemen (samenvoegen van een enkel bestand) verschijnt er een samenvoegvenster (zie de grote schermafdruk). Als u klaar bent met een bestand, kiest u opnieuw Samenvoegen starten/voortzetten of drukt u op F7. Als u nog niet hebt opgeslagen, wordt er een dialoogvenster getoond dat u vraagt om dat te doen. &kdiff3; gaat dan verder met het volgende item. Als &kdiff3; een fout tegenkomt, meldt het dit en wordt de uitgebreide statusinformatie getoond. Onderaan deze lijst zullen er wat foutmeldingen staan die u zouden moeten helpen bij het begrijpen van de oorzaak van het probleem. Als u doorgaat met samenvoegen (F7) geeft &kdiff3; u de keuze tussen opnieuw proberen of het item overslaan dat het probleem veroorzaakte. Dit betekent dat u, voordat u doorgaat, een andere bewerking kunt kiezen of het probleem door andere middelen kunt oplossen. Als het samenvoegen voltooid is, informeert &kdiff3; u hierover via een berichtvenster. Als sommige items afzonderlijk samengevoegd zijn, onthoudt &kdiff3; dit (tijdens de samenvoegsessie) en worden deze niet opnieuw samengevoegd als later het samenvoegen voor alle items gestart wordt. Zelfs als het samenvoegen overgeslagen is of er niets is opgeslagen, tellen deze items als voltooid. Alleen als u de samenvoegoperatie wijzigt, wordt de status Gereed van het item verwijderd en kan het opnieuw samengevoegd worden. + + +Opties voor het vergelijken en samenvoegen van mappen +De voorkeuren van &kdiff3; (menu Instellingen &kdiff3; configureren...) bevatten nu een sectie "Mappen samenvoegen" met deze opties: + + + Recursieve mappenKies of mappen recursief doorzocht moeten worden. + Bestandspatroon(en):Alleen bestanden die hier met een patroon overeenkomen worden in de boom geplaatst. U kunt hier meer dan één patroon opgeven door een puntkomma ";" als scheidingsteken te gebruiken. Geldige jokertekens: '*' en '?' (⪚ "*.cpp;*.h"). Standaard is "*". Mappen hoeven niet aan dit patroon te voldoen. + Bestand antipatroon(en):Bestanden die met dit patroon overeenkomen worden niet in de boom geplaatst. U kunt hier meer dan één patroon opgeven door een puntkomma ";" als scheidingsteken te gebruiken. Geldige jokertekens: '*' en '?'. Standaard is "*.orig;*.o;*.obj". + Map-antipatroon(en):Mappen die met dit patroon overeenkomen worden niet in de boom geplaatst. U kunt hier meer dan één patroon opgeven door een puntkomma ";" als scheidingsteken te gebruiken. Geldige jokertekens: '*' en '?'. Standaard is "CVS;deps;.svn". + Bestand negeren gebruikenBestanden en mappen negeren die ook door uw beheer van broncode worden genegeerd. Veel automatisch gegenereerde bestanden worden genegeerd door lijsten met te negeren. Het grote voordeel hiervan is dat dit mapspecifiek kan zijn via een lokaal negeerbestand. (Zie documentatie over versiebeheer voor meer details). + Verborgen bestanden en mappen zoekenOp sommige bestandssystemen hebben bestanden een attribuut "verborgen". Op andere systemen zorgt een punt "." aan het begin van een bestandsnaam ervoor dat het bestand verborgen is. Met deze optie kunt u deze bestanden al dan niet in de boom laten opnemen. Standaard is aan. + Bestandskoppelingen volgenVoor koppelingen naar bestanden: Als dit uitgeschakeld is, worden de koppelingen vergeleken. Als dit ingeschakeld is, worden de bestanden achter de koppelingen vergeleken. Standaard is uit. + Mapkoppelingen volgenVoor koppelingen naar mappen: als dit uitgeschakeld is, worden de symbolische koppelingen vergeleken. Als dit ingeschakeld is, worden de koppelingen beschouwd als mappen en recursief ingelezen. (Merk op dat het programma niet controleert of de koppeling "recursief" is. Dus bijvoorbeeld een map die een koppeling naar zichzelf bevat, zorgt voor een oneindige lus, en na enige tijd, als de "stack" overloopt of al het geheugen op is, voor een crash van het programma.) Standaard is uit. + Hoofdlettergevoelige bestandsnaamvergelijkingStandaard uit onder &Windows;, aan onder andere besturingssystemen. + Bestandsvergelijkingsmodus: + + Binaire vergelijkingDit is de standaard vergelijkingsmodus. + Volledige analyseDoe een volledige analyse van elk bestand en toon de kolommen met statistische informatie. (Aantal conflicten opgelost en onopgelost, niet-witruimte en witruimte.) De volledige analyse is langzamer dan een eenvoudige binaire analyse, en veel langzamer bij bestanden die geen tekst bevatten. (Geef de van toepassing zijnde bestandsantipatronen op.) + Grootte en wijzigingsdatum vertrouwen (onveilig)Als u grote mappen over een langzaam netwerk vergelijkt, kan het sneller om alleen de wijzigingsdatums en bestandsgroottes te vergelijken. Deze snelheidsverbetering brengt echter wat onzekerheid met zich mee. Wees voorzichtig bij het gebruiken van deze optie. Standaard is uit. + Grootte vertrouwen (onveilig)Vergelijkbaar met het vertrouwen van de wijzigingsdatum. Er vindt geen echte vergelijking plaats. Twee bestanden worden als gelijk beschouwd als ze dezelfde grootte hebben. Dit is nuttig als de kopieeroperatie de wijzigingsdatum niet intact heeft gehouden. Wees voorzichtig bij het gebruiken van deze optie. Standaard is uit. + + + Mappen synchroniserenActiveert de synchronisatiemodus als twee mappen vergeleken worden en er geen expliciete doelmap is opgegeven. In deze modus worden de voorgestelde operaties dusdanig gekezen dat beide bronmappen na de synchronisatie gelijk zijn. Het resultaat van het samenvoegen wordt ook naar beide mappen geschreven. Standaard is uit. + Nieuwere bestanden kopiëren in plaats van samenvoegen (onveilig)In plaats van het uitvoeren van de voorgestelde operatie wordt het nieuwere bestand gekopieerd als er wijzigingen zijn opgetreden. (Dit wordt als onveilig beschouwd, want het veronderstelt dat u weet dat het andere bestand niet ook gewijzigd is. Controleer dit in elk geval.) Standaard is uit. + Reservekopie aanmaken (.orig)Als een bestand of gehele map door een andere wordt vervangen of verwijderd wordt, wordt de originele versie hernoemd met de extensie .orig. Als een oud reservekopiebestand met de extensie .orig al bestaat, wordt dit zonder reservekopie verwijderd. Dit beïnvloedt ook het normale samenvoegen van enkele bestanden, niet alleen bij het samenvoegen van mappen. Standaard is aan. + + + +Andere mogelijkheden in het mappen-samenvoegenvenster +Splitsen / Volledig-scherm-modus +Normaal gesproken blijft de lijstweergave voor het samenvoegen van mappen zichtbaar als er een enkel bestand wordt vergeleken of samengevoegd. Met de muis kunt u de splitsbalk verplaatsen die de bestandenlijst van de verschillenvensters scheidt. Als u dat niet wilt, kunt u met menu-item MapMap && Gesplist scherm tekstweergave uitschakelen. U kunt dan MapWeergave omschakelen kiezen om tussen de bestandenlijst en de tekstverschillenweergave over te schakelen, die dan het volledige scherm in beslag nemen. + +Een enkel bestand vergelijken of samenvoegen +U dubbelklikt waarschijnlijk het liefst op een bestand om het te vergelijken. Desalniettemin is er hiervoor ook een item in het menu Map. U kunt ook direct een enkel bestand samenvoegen, door menu-item Samenvoegen Huidig bestand samenvoegen te kiezen. Als u het resultaat opslaat, wordt de status op "voltooid" gezet en wordt het bestand niet opnieuw samengevoegd als er een mapsamenvoeging wordt gestart. Merk op dat deze statusinformatie verloren gaat als u de map opnieuw scant: MapOpnieuw scannen + +Bestanden net verschillende namen vergelijken of samenvoegen +Soms wilt u bestanden met verschillende namen vergelijken of samenvoegen (⪚ het huidige bestand en de reservekopie in dezelfde map). Selecteer het juiste bestand door op het pictogram in de kolom A, B of C te klikken. Het eerste geselecteerde bestand zal gemarkeerd worden met een A, het tweede en derde met B en C onafhankelijk van de kolom waarin ze zijn. Er kunnen maximaal drie bestanden op deze manier gekozen worden. Ga verder door menu-item MapExpliciet geselecteerde bestanden vergelijken of MapExpliciet geselecteerde bestanden samenvoegen te selecteren. Om het u makkelijker te maken verschijnt dit menu-item ook als contextmenu wanneer u met de &RMB; op het laatst geselecteerde bestand klikt. Het vergelijken of samenvoegen gebeurt in hetzelfde venster. Als u deze methode gebruikt bij mappen dan wordt een nieuw venster geopend. + +
+ + +Diverse onderwerpen + +Netwerktransparantie via KIO +KIO-slaves +De KIO-bibliotheek van &frameworks; biedt netwerktransparantie via KIO-slaves. &kdiff3; gebruikt dit om invoerbestanden en mappen te lezen. Dit betekent dat u bestanden en mappen op lokale en externe bronnen kunt opgeven via &URL;'s. Voorbeeld: +kdiff3 test.cpp ftp://ftp.verweg.org/test.cpp + kdiff3 tar:/home/hacker/archief.tar.gz/map ./map + + +De eerste regel vergelijkt een lokaal bestand met een bestand op een &FTP;-server. De tweede regel vergelijkt een map binnen een gecomprimeerd archief met een lokale map. Andere interessante KIO-slaves zijn: + +Bestanden op het www (http:), +Bestanden uit de &FTP; (ftp:), +Versleutelde bestandsoverdracht (fish:, sftp:), +&Windows;-hulpbronnen (smb:), +Lokale bestanden (file:). + +Andere (waarschijnlijk minder nuttige) mogelijkheden zijn: + +Man-pagina's (man:), +info-pagina's (info:). + + + +Hoe &URL;-adressen te schrijven +Een &URL; heeft een andere syntaxis vergeleken met paden naar lokale bestanden en mappen. U dient met een aantal zaken rekening te houden: + +Een pad kan relatief zijn en "." of ".." bevatten. Dit is niet mogelijk met &URL;-adressen, die altijd absoluut zijn. Speciale tekens dienen omgezet te worden. ("#" -> "%23", spatie ->"%20", &etc;) Een bestand met de naam "#foo#" wordt bijvoorbeeld het &URL;-adres "file:/%23foo%23". Als &URL;-adressen niet werken zoals u verwacht, probeer ze dan eerst in &konqueror; te openen. + + + + +Mogelijkheden van KIO-slaves +Netwerktransparantie heeft één nadeel: niet alle bronnen hebben dezelfde mogelijkheden. Soms ligt dit aan het bestandssysteem van de server, soms aan het protocol. Een korte lijst van beperkingen: + +Er is soms geen ondersteuning voor koppelingen. Of er is geen manier om te onderscheiden of een koppeling naar een map of een bestand verwijst, er wordt dan altijd van bestanden uitgegaan (ftp:, sftp:). De bestandsgrootte kan niet altijd bepaald worden. Beperkte ondersteuning voor permissies. Geen mogelijkheden om permissies of wijzigingsdatums te veranderen, zodat de permissies of tijd van een kopie verschillen van het origineel. (Zie de optie Grootte vertrouwen (onveilig)). (Rechten of wijzigingsdatum veranderen is alleen mogelijk bij lokale bestanden). + + + + + +&kdiff3; als een KPart gebruiken +&kdiff3; is een KPart. Het implementeert momenteel de interface KParts::ReadOnlyPart. Het belangrijkste gebruik is als een weergever van verschillen in &kdevelop;. &kdevelop; start altijd eerst de interne weergever van verschillen. Om &kdiff3; op te starten klikt u met de &RMB; op het verschilvenster en kiest u In KDiff3Part tonen uit het contextmenu. &kdiff3; vereist normaal gesproken twee complete bestanden als invoer. Als het als een KPart gebruikt wordt, neemt &kdiff3; aan dat het invoerbestand een patch-bestand in het standaard formaat is. &kdiff3; haalt dan de twee bestandsnamen op uit het patch-bestand. Minstens één van de twee bestanden moet beschikbaar zijn. &kdiff3; roept dan patch aan om het andere bestand opnieuw te maken. In &dolphin; kunt u een patch-bestand selecteren en item Tonen inKDiff3Part uit het contextmenu kiezen. Merk op dat dit niet werkt als geen van de originele bestanden beschikbaar is en dat het niet betrouwbaar is als een origineel bestand gewijzigd is sinds het patch-bestand gegenereerd is. Als het als een KPart gestart wordt, biedt &kdiff3; alleen een verschillenmodus voor twee bestanden, een kleine werkbalk en een menu. Samenvoegen of mappen vergelijken worden dan niet ondersteund. + + + +&kdiff3; gebruiken als een &git; Diff en hulpmiddel voor samenvoegen +&kdiff3; kan gebruikt worden als een hulpmiddel &git;-diff en merge. +Voeg eenvoudig de volgende regels toe in uw bestand gitconfig. +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <pad naar kdiff3 programma in uw systeem> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <pad naar kdiff3 programma in uw systeem +> + +Om dan de verschillen te zien tussen twee commits, gebruik git difftool eerste_hash tweede_hash --tool=kdiff3 --cc een_bestand_in_de_git_boomstructuur +Om een branch samen te voegen met &kdiff3;, gebruik git merge branch_naam && git mergetool --tool=kdiff3 +Na het oplossen van conflicten bij het samenvoegen op de gebruikelijke manier is het genoeg een commit te doen voor de wijzigingen. + + + + +Vraag en antwoord&reporting.bugs; &updating.documentation; + +Waarom heet het "&kdiff3;"? Hulpmiddelen met de naam KDiff en KDiff2 (nu genaamd &kompare;) bestaan al. &kdiff3; moet ook suggereren dat het kan samenvoegen, net als het hulpmiddel diff3 in de Diff-Tool-verzameling. + +Waarom heb ik het onder GPL uitgegeven? Ik gebruik al heel lang GPL-programma's en heb veel geleerd door de vele broncodes te bekijken. Dit is daarom mijn dankbetuiging aan alle programmeurs die hetzelfde hebben gedaan of zullen doen. + +Sommige knoppen en functies ontbreken. Wat is er mis? U hebt waarschijnlijk vanuit de broncode gecompileerd zonder het juiste prefix voor de installatie op te geven. Standaard wil cmake installeren in de /usr/local, maar het bronbestand voor de gebruikersinterface (&ie; kdiff3ui.rc) is dan niet te vinden. Het bestand README bevat meer informatie over de juiste prefix. + +Regels die op elkaar lijken maar niet hetzelfde zijn, verschijnen vaak naast elkaar, maar soms niet. Waarom? Regels waar alleen de hoeveelheid witruimte verschillend is worden in eerste instantie als "gelijk" beschouwd, terwijl slechts één verschillend niet-witruimte-teken ervoor zorgt dat de regels "verschillend" zijn. Als op elkaar lijkende regels naast elkaar verschijnen is dit slechts toeval, maar dit is gelukkig vaak het geval. Zie ook Handboek Diff-hulp. + +Waarom moeten alle conflicten opgelost worden voordat het resultaat opgeslagen kan worden? Voor elke gelijke of verschillende sectie onthoudt de editor in het resultaatvenster waar deze begint en eindigt. Dit is nodig omdat dan conflicten handmatig opgelost kunnen worden door op de knop van de broncode (A, B of C) te drukken. Deze informatie is opgelost bij het opslaan als tekst en het is te veel werk om een speciaal bestandsformaat te maken waarmee alle benodigde informatie opgeslagen en ingelezen kan worden. + +Hoe kan ik het verschillenvenster en het samenvoegvenster synchroniseren zodat alle vensters dezelfde tekstpositie tonen? Klik in de kolom samenvatting links van de tekst. (Zie ook hier.) + +Waarom heeft de editor in het resultaatvenster geen functie "ongedaan maken"? Dit was tot nu toe te veel werk. U kunt altijd een versie vanuit ene bron (A, B of C) herstellen daar op de overeenkomstige knop te klikken. Voor grote wijzigingen wordt het gebruik van een andere editor sowieso aanbevolen. + +Toen ik wat tekst verwijderde, verscheen plotseling "<Geen regel in de bron>" en ik kon dit niet verwijderen. Wat betekent dit en hoe kan ik dit verwijderen? Voor elke gelijke of verschillende sectie onthoudt de editor in het resultaatvenster waar deze begint en eindigt. "<Geen regel in de bron>" betekent dat er niets over is in de sectie (zelfs geen regeleinde). Dit kan tijdens automatisch samenvoegen of tijdens bewerken gebeuren. Dit is geen probleem, want de aanwijzing verschijnt niet in het opgeslagen bestand. Als u de originele bron terug wilt, selecteert u de sectie (klik op de linker overzichtkolom) en klikt u op de knop van de bron met de gewenste inhoud (A, B of C). + +Waarom ondersteunt &kdiff3; geen syntaxis-accentuering? &kdiff3; gebruikt al veel kleuren voor het accentueren van verschillen. Meer accentuering zou verwarrend worden, gebruik daar een andere editor voor. + +Kan ik &kdiff3; gebruiken om OpenOffice.org, &Microsoft; Word, &Microsoft; Excel, &PDF;, &etc; bestanden gebruik? Hoewel &kdiff3; elk soort bestand zal analyseren zal het resultaat waarschijnlijk niet erg bevredigend voor u zijn. &kdiff3; is ontworpen om pure tekstbestanden te vergelijken. OpenOffice.org, &Microsoft; Word, &Microsoft; Excel &etc; slaan in de bestanden veel meer informatie op (over lettertypes, afbeeldingen, pagina's, kleuren &etc;) waarover &kdiff3; niets weet. Daarom zal &kdiff3; de inhoud van het bestand u als pure tekst tonen, maar dit kan onleesbaar zijn of er minstens zeer vreemd uitzien. Omdat meer en meer programma's hun data opslaan in het &XML;-formaat, is er een kans dat u het als pure tekst kunt lezen. Hoewel de kans dus klein is, kan &kdiff3; u misschien nog steeds helpen. Als u alleen de tekst wilt vergelijken (zonder ingebedde objecten zoals afbeeldingen), dan is het gebruikt van menu-items BewerkenAlles selecteren en BewerkenKopiëren in uw programma de interessante tekst te kopiëren naar het klembord en vervolgens in &kdiff3; de tekst in een verschillenvenster te plakken. (Lees ook Selecteren, kopiëren en plakken.) + +Waar is de mapoptie Alleen delta's tonen heen gegaan? Er zijn nu verschillende Opties "Tonen" in het menu Map. Het uitschakelen van Identieke bestanden tonen zal hetzelfde resultaat hebben als het inschakelen van Alleen delta's tonen vroeger had. + +Hoe kan ik een grote selectie maken in het verschillenvenster als het scrollen zo langzaam gaat? Begin zoals gewoonlijk met de selectie (klik en houdt de &LMB; ingedrukt). Gebruik vervolgens de navigatieknoppen (⪚ &PgUp;, &PgDn;) terwijl u de &LMB; ingedrukt houd. (Lees ook Selecteren, kopiëren en plakken). + +Er staat hier zo veel informatie, maar uw vraag is nog niet beantwoord? Stuur me uw vraag. Ik stel alle opmerkingen op prijs. + + + + + + +Dankbetuigingen en licentie + +&kdiff3; - Hulpmiddel voor vergelijken en samenvoegen van bestanden en mappen +Programma copyright 2002-2007 Joachim Eibl joachim.eibl at gmx.de +Diverse gave ideeën en bugrapporten van collega's en veel mensen op het Wilde Wilde Web. Bedankt! + +Documentatie copyright © 2002-2007 Joachim Eibl joachim.eibl at gmx.de + +Documentatie Copyright © 2017-2019 Michael Reeves reeves.87 at gmail.com + +&meld.fouten;&vertaling.sander;&vertaling.freek; &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/nl/docs/kdiff3/man-kdiff3.1.docbook b/po/nl/docs/kdiff3/man-kdiff3.1.docbook new file mode 100644 index 0000000..b667b69 --- /dev/null +++ b/po/nl/docs/kdiff3/man-kdiff3.1.docbook @@ -0,0 +1,447 @@ + + +]> + + + +KDiff3-gebruikershandleiding +BurkhardLueck KDiff3 man-pagina. &Burkhard.Lueck.mail; +2019-02-22 +kdiff3 1.9 + + + +kdiff3 +1 + + + +kdiff3 +Hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen + + + +kdiff3 bestand bestand bestand alias1 alias2 alias3 alias tekenreeks bestand + + + +Beschrijving +Vergelijkt twee of drie invoerbestanden of mappen. + + + + +Opties + + + +Genegeerd. (Gebruiker gedefinieerd). + + + + +Genegeerd. (Gebruiker gedefinieerd). + + + + +Genegeerd. (Gebruiker gedefinieerd). + + + + +Genegeerd. (Gebruiker gedefinieerd). + + + + +Invoer samenvoegen. + + + + bestand +Expliciet basisbestand. Voor compatibiliteit met sommige hulpprogramma's. + + + + bestand +Uitvoerbestand. Houd in -m. ⪚: -o nieuwbestand.txt + + + + bestand +Uitvoerbestand, opnieuw (voor compatibiliteit met sommige hulpprogramma's). + + + + +Geen grafisch venster als alle conflicten automatisch oplosbaar zijn. (Heeft '-o bestand' nodig). + + + + +--auto negeren en altijd GUI tonen. + + + + alias1 +Zichtbare naamvervanging voor invoerbestand 1 (basis). + + + + alias2 +Zichtbare naamvervanging voor invoerbestand 2. + + + + alias3 +Zichtbare naamvervanging voor invoerbestand 3. + + + + alias +Alternatieve zichtbare naamvervanging. Ditmaal voor elke invoer opgeven. + + + + tekenreeks +Omzeil een instelling in de configuratie. Gebruik dit eenmalig voor elke instelling. ⪚ AutoAdvance=1. + + + + +Een lijst tonen met instellingen en huidige waarden. + + + + bestand +Een ander configuratiebestand gebruiken. + + + + +bestand1 om te openen (basis, indien niet gespecificeerd via --) + + + + +Tweede bestand om te openen + + + + +Derde bestand om te openen + + + + + + + +Zie ook + +Meer uitgebreide informatie vindt u in help:/kdiff3 (voer deze &URL; in in &konqueror; of voer khelpcenter help:/kdiff3 uit) +kf5options(7) +qt5options(7) + + + + +Auteurs +Deze handleidingpagina is geschreven door &Burkhard.Lueck; &Burkhard.Lueck.mail;. + + + diff --git a/po/nl/kdiff3.po b/po/nl/kdiff3.po new file mode 100644 index 0000000..49696e4 --- /dev/null +++ b/po/nl/kdiff3.po @@ -0,0 +1,3613 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Freek de Kruijf , 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-16 10:22+0100\n" +"Last-Translator: Freek de Kruijf \n" +"Language-Team: Dutch \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" +"X-Generator: Lokalize 20.12.2\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Freek de Kruijf - t/m 2021" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "freekdekruijf@kde.nl" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Bestandstatus opvragen: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Bestand lezen: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Bestand schrijven: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Onvoldoende geheugen" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Map aanmaken: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Map wordt verwijderd: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Bestand verwijderen: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Symbolische koppeling aanmaken: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Bestand hernoemen: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Bestand kopiëren: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Map wordt gelezen: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Directory inlezen: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Fout met dataverlies:\n" +"Als dit reproduceerbaar is, neem dan contact op met de auteur.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Ernstige interne fout" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Ernstige interne fout." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Ernstige interne fout.:" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Bestand %1: regel %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Bestand %1: regel niet beschikbaar" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codering:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Regeleinde:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (basis)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codering: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Stijl regeleinde: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Bovenste regel" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Einde" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Bestand openen" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Overig" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A naar B kopiëren" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B naar A kopiëren" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A verwijderen" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B verwijderen" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A & B verwijderen" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Samenvoegen met A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Samenvoegen met B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Samenvoegen met A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Verwijderen (indien voorhanden)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Samenvoegen" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Samenvoegen (handmatig)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Fout: botsende bestandstypen" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Fout: gewijzigd en verwijderd" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Fout: de datums zijn hetzelfde, maar de bestanden niet." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Gereed" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Fout" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Overgeslagen." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Niet opgeslagen." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "In uitvoering..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Onvoltooid." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Naam" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Bewerking" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Niet opgelost" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Opgelost" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Niet-wit" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Wit" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"U bent momenteel bezig met het samenvoegen van een map. Wilt u dat, of wilt " +"u het samenvoegen afbreken en de map opnieuw inlezen?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Waarschuwing" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Opnieuw scannen" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Doorgaan met samenvoegen" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Het openen van mappen is mislukt:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Map A \"%1\" bestaat niet of is geen map.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Map B \"%1\" bestaat niet of is geen map.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Map C \"%1\" bestaat niet of is geen map.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Fout bij map openen" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"De doelmap kan niet hetzelfde zijn als A of B als er drie mappen worden " +"samengevoegd.\n" +"Controleer dit opnieuw voordat u doorgaat." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parameter-waarschuwing" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Scannen van mappen..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Map A wordt gelezen" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Map B wordt gelezen" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Map C wordt gelezen" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Sommige submappen zijn niet ingelezen" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Controleer de toegangsrechten van de submappen." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Gereed." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Status vergelijken van map\n" +"\n" +"Aantal submappen: %1\n" +"Aantal gelijke bestanden: %2\n" +"Aantal verschillende bestanden: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Aantal handmatige samenvoegingen: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Dit heeft effect op alle samenvoegingen." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Verandering van alle samenvoegingen" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Bezig met verwerken %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Enkele bestanden konden niet verwerkt worden." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Afbreken vanwege te veel fouten." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Deze handeling is momenteel niet beschikbaar." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Handeling niet mogelijk" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Er deed zich een fout voor tijdens het kopiëren." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Fout bij samenvoegen" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Onbekende samenvoeging. (Dit mag niet voorkomen!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Onbekende samenvoeging." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"De samenvoeging kan nu beginnen.\n" +"\n" +"Kies \"Starten\" als u de instructies hebt gelezen een weet waar u mee bezig " +"bent.\n" +"Door \"Simulatie\" te kiezen ziet u wat er zou kunnen gebeuren.\n" +"\n" +"Waarschuwing: dit programma bevindt zich in een ontwikkelstadium. Er is dus " +"GEEN ENKELE GARANTIE dat het programma naar behoren zal werken. Maak " +"reservekopieën van uw vitale gegevens!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Samenvoeging starten" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Doe het" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuleren" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Het gemarkeerde item is van een verschillend type in de verschillende " +"mappen. Kies wat er moet gebeuren." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"De wijzigingsdatums van het bestanden zijn gelijk, maar de bestanden niet. " +"Kies wat er moet gebeuren." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Het gemarkeerde item is gewijzigd in één map en verwijderd in de andere. " +"Kies wat er moet gebeuren." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Deze handeling is niet mogelijk omdat er momenteel een map wordt " +"samengevoegd." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Er deed zich een fout voor tijdens de laatste stap.\n" +"Wilt u doorgaan met het item dat de fout veroorzaakte of wilt u dit item " +"overslaan?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Samenvoegen voortzetten na een foutmelding" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Verdergaan met het laatste item" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Item overslaan" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "De samenvoeging is voltooid." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Samenvoeging voltooid" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Samenvoegsimulatie is voltooid. Controleer of u akkoord kunt gaan met de " +"voorgestelde handelingen." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Er deed zich een fout voor. Klik op OK voor meer details." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Fout tijdens het wissen van %1: reservekopie aanmaken is mislukt." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "map ( %1 ) recursief wissen" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "verwijderen( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Fout: het wissen van de map is mislukt omdat de map niet kon worden geopend." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Fout: handeling voor map verwijderen( %1 ) is mislukt." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Fout: wissen is mislukt." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "handmatig samenvoegen ( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Opmerking: na een handmatige samenvoeging dient de gebruiker verder te " +"gaan via F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Fout: kopiëren( %1 -> %2 ) is mislukt. De bestaande bestemming kon niet " +"gewist worden." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Koppeling kopiëren ( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Fout: koppeling kopiëren is mislukt: externe koppelingen worden vooralsnog " +"niet ondersteund." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Fout: koppeling kopiëren is mislukt." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopiëren( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Fout tijdens het hernoemen ( %1 -> %2 ): de bestaande bestemming kan niet " +"worden gewist." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "hernoemen( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Fout: hernoemen is mislukt." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Fout tijdens het aanmaken van de map %1. Bestaand bestand kan niet worden " +"gewist." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Directory aanmaken( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Fout bij het aanmaken van de map." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Doel" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Map" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Type" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Grootte" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Laatste wijziging" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Koppelingsbestemming" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Bestand" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Link" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "niet beschikbaar" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (doel): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (basis): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (doel): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (doel): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Doel: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Staat van mappen samenvoegen opslaan als..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Map samenvoeging starten/voortzetten" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Handeling uitvoeren voor huidig item" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Geselecteerde bestand vergelijken" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Huidig bestand samenvoegen" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Samenvoegen\n" +"Bestand" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Alle submappen invouwen" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Alle submappen uitvouwen" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Voor alle items A kiezen" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Voor alle items B kiezen" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Voor alle items C kiezen" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Handeling voor alle items automatisch kiezen" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Geen handeling voor alle items" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Identieke bestanden tonen" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identieke\n" +"Bestanden" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Verschillende bestanden tonen" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Bestanden alleen in A tonen" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Bestanden\n" +"alleen in A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Bestanden alleen in B tonen" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Bestanden\n" +"alleen in B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Bestanden alleen in C tonen" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Bestanden\n" +"alleen in C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Expliciet geselecteerde bestand vergelijken" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Expliciet geselecteerde bestanden samenvoegen" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Niets doen" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A && B verwijderen" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Samenvoegen met A && B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Kan volledige url niet bepalen. Geen ouder gespecificeerd." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Bestand lezen is mislukt: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Het aanmaken van de tijdelijke kopie van %1 is mislukt." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Het openen van %1 is mislukt. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Fout bij het lezen van %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Het wissen van een oudere reservekopie is mislukt tijdens het aanmaken van " +"de nieuwe reservekopie.\n" +"Bestandsnaam: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Tijdens het aanmaken van een reservekopie is het hernoemen mislukt.\n" +"Bestandsnamen: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Huidige configuratie:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Fout bij configuratie-optie:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Optie '--auto' is gebruikt, maar er is geen uitvoerbestand opgegeven." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Optie --auto is genegeerd voor mappenvergelijking." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Opslag is mislukt." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Het openen van deze bestanden is mislukt:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fout bij openen van bestand" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Opent documenten voor vergelijking..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Herladen" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Slaat het samenvoegresultaat op. Alle conflicten dienen te worden opgelost!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Slaat het huidige document op als..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Verschillen afdrukken" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Sluit de toepassing af" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Knipt de geselecteerde sectie en plaatst deze op het klembord" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopieert de geselecteerde sectie naar het klembord" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Plakt de inhoud van het klembord op de huidige positie" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Alles in huidig venster selecteren" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Tekst opzoeken" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Opnieuw zoeken" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Activeert/deactiveert de statusbalk" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 instellen..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ga naar huidig verschil" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Huidig\n" +"Verschil" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ga naar eerste verschil" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "Ga naar eerste verschil" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ga naar laatste verschil" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Laatste\n" +"Verschil" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Slaat witruimteverschillen over als \"Witruimte tonen\" is uitgeschakeld.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Slaat witruimteverschillen niet over, zelfs als \"Witruimte tonen\" is " +"uitgeschakeld.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ga naar vorig verschil" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Voorgaand\n" +"Verschil" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ga naar volgend verschil" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Volgende\n" +"Verschil" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ga naar vorig conflict" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Vorig\n" +"Conflict" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ga naar volgend conflict" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Volgend\n" +"Conflict" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ga naar vorig onopgelost conflict" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Voorgaand\n" +"Niet opgelost" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ga naar volgend onopgelost conflict" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Volgend\n" +"Niet opgelost" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Regel(s) van A selecteren" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Kies\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Regel(s) van B selecteren" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Kies\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Regel(s) van C selecteren" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Kies\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Automatisch naar het volgende onopgeloste conflict gaan na bronselectie" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automatisch\n" +"Volgende" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Spaties && tabulator-tekens tonen" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Witruimte\n" +"Tekens" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Witruimte tonen" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Witruimte\n" +"Verschil" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Regelnummering tonen" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Regel\n" +"nummers" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automatisch eenvoudige conflicten oplossen" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Elk onderscheid maken bij conflicten" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Automatisch samenvoegen d.m.v. reguliere expressie uitvoeren" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automatisch geschiedenisconflicten oplossen" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Vergelijking bij selectie splitsen" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Geselecteerde verschillen samenvoegen" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Venster A tonen" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Venster B tonen" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Venster C tonen" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normaal overzicht" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A vs B overzicht" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A vs C overzicht" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B vs C overzicht" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Regels afbreken in vensters met verschillen" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Handmatige uitlijning van vergelijking toevoegen" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Alle handmatige uitlijningen van vergelijkingen wissen" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Focus op volgend venster zetten" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Focus op vorig venster zetten" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Splitsen van vensters omschakelen" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Map- en tekstweergave splitsen in hoofdvenster" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Tussen map- && tekstweergave wisselen" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Het resultaat van de samenvoeging is niet opgeslagen." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Opslaan && afsluiten" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Afsluiten zonder opslag" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "De opslag van het resultaat van de samenvoeging is mislukt." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"U bent momenteel bezig met het samenvoegen van mappen. Wilt u toch afbreken?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Bestand wordt opgeslagen..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Bestand wordt opgeslagen onder een nieuwe naam..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Opslaan als..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Afdrukken niet geïmplementeerd." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Bezig met afdrukken..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Pagina %1 van %2 wordt afgedrukt" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selectie)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Afdrukken is voltooid." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Afdrukken is afgebroken." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Bezig met beëindigen..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Werkbalk omschakelen..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "De statusbalk aan- of uitzetten..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Een KPart-component voor het weergeven van SVG-afbeeldingen" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 instellen" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Kon het Kdiff3-deel niet initialiseren.\n" +"Dit doet zich meestal voor door een installatieprobleem. Lees a.u.b. het " +"README-bestand van het broncodepakket voor meer details." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Bestand" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "&Map" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Samenvoeging van huidig item" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Synchronisatie van huidig item" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "Ver&plaatsing" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Versch&ilweergave" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Sam&envoegen" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Venster" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Hoofdwerkbalk" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Genegeerd. (Gebruiker gedefinieerd)." + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves naar KF5/Qt5 overgezet" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Invoer samenvoegen." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" +"Expliciet basisbestand. Voor compatibiliteit met sommige hulpprogramma's." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Uitvoerbestand. -m is inbegrepen. Bijv.: -o nieuwbestand.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Uitvoerbestand, opnieuw (voor compatibiliteit met sommige hulpprogramma's)." + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Geen grafisch venster als alle conflicten automatisch oplosbaar zijn ('-o " +"bestand' is nodig)." + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "--auto negeren en altijd GUI tonen." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Genegeerd." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Zichtbare naamvervanging voor invoerbestand 1 (basis)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Zichtbare naamvervanging voor invoerbestand 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Zichtbare naamvervanging voor invoerbestand 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Alternatieve zichtbare naamvervanging. Ditmaal voor elke invoer opgeven." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Omzeil een instelling. Gebruik dit eenmalig voor elke instelling. Bijv. --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Een lijst tonen met instellingen en huidige waarden." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Een ander configuratiebestand gebruiken." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" +"Eerste bestand om te openen (basis, indien niet opgegeven met '--base')." + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Tweede bestand om te openen" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Derde bestand om te openen" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Zie kdiff3 --help voor ondersteunde opties." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Kan niet-normaal bestand niet vergelijken met normaal bestand." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mix van koppelingen en bestanden." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Koppeling: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Grootte: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Datum en grootte: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Bestand wordt vergeleken..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "A overal kiezen" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "B overal kiezen" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "C overal kiezen" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "A voor alle onopgeloste conflicten kiezen" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "B voor alle onopgeloste conflicten kiezen" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "C voor alle onopgeloste conflicten kiezen" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "A voor alle onopgeloste witruimteconflicten kiezen" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "B voor alle onopgeloste witruimteconflicten kiezen" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "C voor alle onopgeloste witruimteconflicten kiezen" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Aantal overgebleven onopgeloste conflicten: %1 (waarvan %2 witruimtes zijn)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"De uitvoer is gewijzigd.\n" +"Als u verder gaat zullen uw wijzigingen verloren gaan." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Alle invoerbestanden zijn binair gelijk." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Alle invoerbestanden bevatten dezelfde tekst." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Bestanden %1 en %2 zijn binair gelijk.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Bestanden %1 en %2 hebben dezelfde tekst.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Totaal aantal conflicten: %1\n" +"Aantal automatisch opgeloste conflicten: %2\n" +"Aantal niet opgeloste conflicten: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflicten" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Nog niet alle conflicten zijn opgelost.\n" +"Bestand is niet opgeslagen." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Er zijn nog onopgeloste conflicten" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Er is een conflict met de stijl aan het regeleinde. Kies deze stijl " +"handmatig.\n" +"Bestand is niet opgeslagen." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Het aanmaken van de reservekopie is mislukt. Het bestand is niet opgeslagen." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Fout bij opslaan van het bestand" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Fout bij het opslaan." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Uitvoer:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Gewijzigd]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codering voor opslaan:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflict" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Codec van A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Codec van B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Codec van C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialoog" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (basis):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Uitvoer (optioneel):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Bestand..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Namen kopiëren/omwisselen..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (optioneel):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Map..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Een geschiedenisitem van het versiebeheer bevat enkele regels.\n" +"Geef de reguliere expressie op om de eerste regel te detecteren (zonder het " +"voorafgaande commentaar).\n" +"Maak gebruik van haakjes om de sleutels te groeperen die u voor het sorteren " +"wilt gebruiken.\n" +"Wanneer dit wordt leeggelaten zal KDiff3 er van uitgaan dat lege regels de " +"geschiedenisitems scheidt.\n" +"Raadpleeg de documentatie voor meer details." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Ieder koppel haakjes in de reguliere expressie groepeert een sleutel die " +"gebruikt kan\n" +"worden voor sorteren.\n" +"Geef de lijst met sleutels op (genummerd in volgorde van hun voorkomen\n" +"beginnend bij 1) met een komma als scheidingsteken (bijv." +"\"4,5,6,1,2,3,7\").\n" +"Wanneer dit wordt leeg gelaten zal er niet gesorteerd worden.\n" +"Raadpleeg de documentatie voor meer details." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Reguliere expressies voor regels waar KDiff3 automatisch voor een bepaalde " +"bron moet kiezen.\n" +"Als een regel met een conflict overeenkomt met de reguliere expressie, dan\n" +" - indien beschikbaar - C, anders wordt B gekozen." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Reguliere expressie voor begin van de geschiedenis van het versiebeheer.\n" +"Normaal gesproken bevat deze regel het trefwoord \"$Log$\".\n" +"Standaard waarde: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Lettertype wijzigen" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Lettertype: %1, %2, %3\n" +"\n" +"Voorbeeld:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Verander dit indien niet-ascii tekens niet juist weergegeven worden." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configureren" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Lettertype" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Lettertype voor editor & vergelijkingsvenster" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Lettertype van toepassing" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Lettertype van bestandsweergave" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Kleur" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Kleurinstellingen" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Weergaven voor editor en vergelijkingen:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Voorgrondkleur:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Achtergrondkleur:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Achtergrondkleur bij verschillen:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Kleur voor A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Kleur voor B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Kleur voor C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Kleur voor conflicten:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Achtergrondkleur voor huidig bereik:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Achtergrondkleur voor verschillen in huidig bereik:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Kleur voor handmatig uitgelijnde verschilbereiken:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Weergave mappenvergelijking:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Kleur nieuwste bestand:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Het wijzigen van deze kleur is pas van kracht als u de volgende " +"mappenvergelijking start." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Kleur oudste bestand:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Kleur bestand met gemiddelde leeftijd:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Kleur voor ontbrekende bestanden:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Bewerker" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Editorgedrag" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab voegt spaties in" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Aan: de Tab-toets voegt het passende aantal spaties in.\n" +"Uit: een tabulatorteken zal ingevoegd worden." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tabgrootte:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automatisch inspringen" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Aan: de insprong van de vorige regel wordt gebruikt voor een nieuwe regel.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Automatische kopieerselectie" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Aan: elke selectie zal onmiddellijk op het klembord geplaatst worden.\n" +"Uit: kopiëren gebeurt expliciet, bijvoorbeeld via Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Automatisch detecteren" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Stelt de regeleinden in voor als een bewerkt bestand wordt opgeslagen.\n" +"DOS/Windows: CR+LF' UNIX: LF; met CR=0, LF=A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff-instellingen" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Getallen negeren (als witruimte behandelen)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Numerieke tekens negeren tijdens de vergelijkingfase. (Gelijk aan witruimtes " +"negeren.)\n" +"Kan helpen bij het vergelijken van bestanden met numerieke gegevens." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ commentaar negeren (als witruimte behandelen)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ commentaar als witruimtes behandelen." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Hoofd-/kleine letter negeren (als witruimte behandelen)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Verschil in hoofd-/kleine letters behandelen als witruimteverschillen ('a' " +"<=> 'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Preprocessorcommando:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Gebruikergedefinieerde voorbehandeling (zie documentatie voor meer details.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Preprocessor-commando alleen voor regelcontroles:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Deze preprocessor wordt alleen gebruikt bij regelcontroles.\n" +"(Zie documentatie voor meer details)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Grondig zoeken (trager)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Activeert de optie '--minimal' voor een externe vergelijking.\n" +"De analyse van grote bestanden zal veel trager zijn." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Lijn B en C uit voor 3 invoerbestanden" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Probeer B en C uit te lijnen bij het vergelijken of samenvoegen van drie " +"invoerbestanden.\n" +"Niet aanbevolen voor samenvoegen omdat dit veel gecompliceerder kan worden.\n" +"(Standaard is uit.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Samenvoegen" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Instellingen samenvoegen" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Vertraging voor automatisch doorgaan (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"In de modus \"Automatisch doorgaan\" wordt het resultaat van de huidige " +"selectie getoond gedurende de ingestelde tijd, voordat men naar het volgende " +"conflict springt.\n" +"Bereik: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Toon informatievensters" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Toon een venster met informatie over het aantal conflicten." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Standaardsamenvoeging van witruimtes bij 2 bestanden:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Handmatige keuze" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Bij het samenvoegen van bestanden toestaan dat er automatisch een oplossing " +"gekozen wordt voor witruimteconflicten." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Standaardsamenvoeging van witruimtes bij 3 bestanden:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Reguliere expressie voor automatisch samenvoegen" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Reguliere expressie voor automatisch samenvoegen:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Bij starten van samenvoegen automatisch reguliere expressie gebruiken" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Onmiddellijk het automatisch samenvoegen beginnen aan de hand\n" +"van reguliere expressies als een samenvoeging wordt gestart.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "amenvoegen aan de hand van versiebeheergeschiedenis" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Reguliere expressie voor begin van geschiedenis:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Reguliere expressie voor begin van geschiedenisitem:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Geschiedenis samenvoegend sorteren" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Geschiedenis versiebeheer sorteren met een sleutel." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Sorteervolgorde van begin van geschiedenisitems:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Geschiedenis versiebeheer samenvoegen bij aanvang van samenvoegen" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Automatisch samenvoegen van geschiedenis versiebeheer bij aanvang " +"samenvoegen." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Max. aantal items in geschiedenis:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Afknippen vanaf het opgegeven getal. Gebruik -1 voor een onbeperkt aantal " +"items." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Uw reguliere expressies testen" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Irrelevant samenvoegcommando:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Indien gespecificeerd zal dit script uitgevoerd worden na autosamenvoegen\n" +"wanneer geen andere relevante wijzigingen zijn gedetecteerd.\n" +"Aangeroepen met de parameters: bestandsnaam1 bestandsnaam2 bestandsnaam3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automatisch opslaan en afsluiten bij samenvoegingen zonder conflicten" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Als Kdiff3 vanaf de commandoregel is gestart om bestanden samen te voegen\n" +"en alle conflicten waren oplosbaar zonder dat ingrijpen van de gebruiker " +"nodig was, sla het resultaat dan op en sluit het programma af.\n" +"(Vergelijkbaar met de commandoregeloptie \"--auto\")." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Recursieve mappen" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Of submappen wel of niet worden geanalyseerd." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Bestandspatroon(en):" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Patroon(en) van bestanden om in te lezen. \n" +"Jokers: '*' en '?'\n" +"Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Bestand antipatroon(en):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Patroon(en) van bestanden die niet zullen worden ingelezen. \n" +"Jokers: '*' en '?'\n" +"Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Map-antipatroon(en):" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Patroon(en) van mappen die niet zullen worden geanalyseerd. \n" +"Jokers: '*' en '?'\n" +"Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Bestand negeren gebruiken" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Breidt het antipatroon uit met alles dat genegeerd zou worden door beheer " +"van broncode.\n" +"Via lokale negeerbestanden kan dit specifiek per map zijn." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Verborgen bestanden en mappen zoeken" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Vindt verborgen bestanden en mappen" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Bestandskoppelingen volgen" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Aan: vergelijk het bestand naarwaar de koppeling verwijst.\n" +"Uit: vergelijk de koppelingen." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Mapkoppelingen volgen" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Aan: vergelijk de map waar de koppeling naar verwijst.\n" +"Uit: vergelijk de koppelingen." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Hoofdlettergevoelige bestandsnaamvergelijking" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"De mappenvergelijking zal bestanden en mappen vergelijken als de namen ervan " +"overeenkomen.\n" +"Schakel deze optie in als ook het gebruik van hoofd-/kleine letters overeen " +"moet komen. (Standaard voor Windows is uit, anders aan.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Alle submappen uitvouwen bij laden" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Aan: alle submappen uitvouwen bij starten van een mappen-diff.\n" +"Uit: submappen ingevouwen laten." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Rapport mappenstatus overslaan" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Aan: status van vergelijking van mappen niet tonen.\n" +"Uit: de statusdialoog bij starten tonen." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Bestandsvergelijkingsmodus" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binaire vergelijking" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binaire vergelijking van elk bestand (standaard)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Volledige analyse" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Doe een volledige analyse en toon de statistieken in extra kolommen.\n" +"(Trager dan een binaire vergelijking, veel trager bij binaire bestanden.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Grootte en wijzigingsdatum vertrouwen (onveilig)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Gaat er van uit dat de bestanden gelijk zijn als de wijzigingsdatum en de " +"bestandsgroottes gelijk zijn.\n" +"Bestanden met gelijke inhoud maar verschillende wijzigingsdatums zullen als " +"verschillend worden aangemerkt.\n" +"Nuttig voor grote mappen en trage netwerken." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Vertrouw de grootte en de datum, maar gebruik binaire vergelijking als de " +"datums niet overeen komen (onveilig)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Gaat er van uit dat de bestanden gelijk zijn als de wijzigingsdatum en de " +"bestandsgroottes gelijk zijn.\n" +"Als de datums niet gelijk zijn maar de groottes wel, dan wordt een binaire " +"vergelijking toegepast.\n" +"Nuttig voor grote mappen of trage netwerken." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Grootte vertrouwen (onveilig)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Gaat er van uit dat bestanden gelijk zijn als de bestandsgroottes gelijk " +"zijn.\n" +"Nuttig voor grote mappen en trage netwerken wanneer de datum verandert " +"tijdens een download." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Mappen synchroniseren" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Bestanden worden in beide mappen opgeslagen zodat beide achteraf hetzelfde " +"zijn.\n" +"Werkt alleen wanneer twee mappen vergeleken worden zonder dat er een " +"bestemming is opgegeven." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Witruimteverschillen worden als gelijk beschouwd" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Als bestanden alleen qua witruimtes van elkaar verschillen worden ze als " +"gelijk beschouwd.\n" +"Dit is alleen actief als volledige analyse is gekozen." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Nieuwere bestanden kopiëren in plaats van samenvoegen (onveilig)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"De inhoud niet controleren, enkel het nieuwe bestand nemen.\n" +"(Gebruik dit enkel als u weet wat u doet!)\n" +"Alleen effectief wanneer men twee mappen met elkaar vergelijkt." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Reservekopie aanmaken (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Wanneer een bestand bewaard moet worden over een oud bestand, dan zal het " +"oude bestand worden hernoemd met als extensie '.orig', i.p.v. gewist te " +"worden." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regionale instellingen" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Dezelfde codering gebruiken voor alles:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Schakel dit in dit om alle coderingen te wijzigen door alleen de eerste aan " +"te passen.\n" +"Schakel dit uit als er verschillende individuele instellingen nodig zijn." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Opmerking: lokale codering is \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Bestandscodering voor A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Indien ingeschakeld zal Unicode-codering (UTF-16 of UTF-8 worden " +"gedetecteerd.\n" +"Als de bestandscodering niet gedetecteerd wordt zal de geselecteerde " +"codering worden gebruikt om op terug te vallen.\n" +"(Unicode-detectie is afhankelijk van de eerste bytes in een bestand.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Unicode autodetecteren" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Bestandscodering voor B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Bestandscodering voor C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Bestandscodering voor samenvoeguitvoer en opslag:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Autoselect" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Indien ingeschakeld zal de codering van de invoerbestanden worden gebruikt.\n" +"Bij twijfelgevallen zult u gevraagd worden welke codering er voor het " +"opslaan gebruikt moet worden." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Bestandscodering voor preprocessorbestanden:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Rechts-naar-links-taal" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Sommige talen worden van rechts naar links gelezen.\n" +"Deze instelling zal de viewer en editor hierop aanpassen." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integratie" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integratie-instellingen" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Te negeren commandoregelopties:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Lijst van commandoregelopties die zullen worden genegeerd als KDiff3 door " +"andere programma's wordt gebruikt.\n" +"Meerdere waarden kunnen worden opgegeven door ze van elkaar te scheiden met " +"';'\n" +"Dit onderdrukt de foutmelding \"Onbekende optie\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Stoppen kan ook via de Escape-toets" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Snelle methode om te eindigen.\n" +"Voor hen die het gewoon zijn om de Escape-toets te gebruiken." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Dit zet alle opties terug, niet alleen die van het huidige onderwerp." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Preprocessorcommando: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "De volgende optie(s) die hebt gekozen kunnen data wijzigen:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Dit is meestal niet gewenst bij een samenvoeging.\n" +"Wilt u deze instellingen uitschakelen of doorgaan met deze instellingen " +"actief?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Optie onveilig voor samenvoeging" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Deze opties gebruiken tijdens samenvoegen" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Onveilige opties uitschakelen" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A laden" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "A wordt geladen: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B laden" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "B wordt geladen: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Vergelijking: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Regelvergelijking: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C laden" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "C wordt geladen: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Vergelijking: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Vergelijking: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Regelvergelijking: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Regelvergelijking: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Alle invoerbestanden bevatten dezelfde tekst, maar zijn binair gezien niet " +"gelijk." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Bestanden %1 en %2 hebben dezelfde tekst, maar zijn binair gezien ongelijk.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Sommige invoerbestanden blijken geen pure tekstbestanden te zijn.\n" +"Merk op dat KDiff3 is niet bedoeld voor binaire gegevens.\n" +"U kunt verder gaan op eigen risico." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Enkele invoertekens konden niet worden geconverteerd naar geldige unicode.\n" +"Misschien gebruikt u de verkeerde codec. (bijv. UTF-8 voor niet UTF-8 " +"bestanden).\n" +"Sla het resultaat niet op als u niet zeker bent. Doorgaan op eigen risico.\n" +"Betrokken invoerbestanden zitten in %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Afbreken" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Bestanden openen..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Selectie wordt geknipt..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Selectie wordt naar het klembord gekopieerd..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Inhoud klembord wordt ingevoegd..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Regelafbreking (Annuleren schakelt regelafbreking uit)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Maximale breedte voor horizontale schuifbalk wordt berekend" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Opslaan && doorgaan" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Doorgaan zonder opslaan" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Zoeken voltooid." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Zoeken voltooid" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Er is niets geselecteerd in beide invoervensters voor de vergelijking." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Fout bij het toevoegen van handmatig vergelijkingsbereik" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Annuleren" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "%1<->%2 omwisselen" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "%1->uitvoer kopiëren" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "%1<->uitvoer omwisselen" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configureren..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Map openen" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Uitvoerbestand selecteren" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "alles/allebestanden (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Zoektekst:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Hoofdlettergevoelig" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Zoeken in A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Zoeken in B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Zoeken in C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Zoeken in uitvoer" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Zoeken" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Reguliere expressies testen" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Voorbeeld autosamenvoegregel:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Voor het testen van automatisch samenvoegen, kopieer een regel die in uw " +"bestanden wordt gebruikt." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultaat van overeenkomsten:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Voorbeeld geschiedenisbeginregel (met bijhorend commentaar):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopieer een geschiedenisbeginregel die u in uw bestanden gebruikt,\n" +"inclusief een voorafgaand commentaar." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Sorteervolgorde geschiedenis:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Voorbeeld van beginregel van geschiedenisitem (zonder voorafgaand " +"commentaar):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopieer een beginregel van een geschiedenisitem zoals die in uw bestanden " +"wordt gebruikt.\n" +"Voeg echter geen voorafgaand commentaar bij." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resulterende sorteersleutel:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Overeenkomst succesvol" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Overeenkomst mislukt." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Er zijn niet evenveel openings- als sluitingshaakjes in de reguliere " +"expressie." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Het opslaan van de klembordinhoud in een tijdelijk bestand is mislukt." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Van klembord" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 is geen normaal bestand." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Tijdelijk bestand is: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"De voorverwerking is waarschijnlijk mislukt. Controleer dit commando:\n" +"\n" +" %1\n" +"\n" +"Dit commando zal nu worden uitgeschakeld." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Bestand %1 is te groot om te verwerken. Wordt overgeslagen." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"De voorverwerking van regelovereenkomsten is mogelijk mislukt. Controleer " +"dit commando:\n" +"\n" +" %1\n" +"\n" +"Dit commando zal nu worden uitgeschakeld." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Spatie verwacht na afsluitend aanhalingsteken." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Geen overeenkomend aanhalingsteken." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Onverwacht aanhalingsteken in een argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Geen programma gespecificeerd." \ No newline at end of file diff --git a/po/nl/kdiff3fileitemactionplugin.po b/po/nl/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..ef06357 --- /dev/null +++ b/po/nl/kdiff3fileitemactionplugin.po @@ -0,0 +1,104 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Freek de Kruijf , 2018, 2019, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-16 10:22+0100\n" +"Last-Translator: Freek de Kruijf \n" +"Language-Team: Dutch \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" +"X-Generator: Lokalize 20.12.2\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Vergelijken met %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Samenvoegen met %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "'%1' voor later gebruik opslaan" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-weg samenvoeging met basis" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Vergelijken met..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Lijst wissen" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Vergelijken" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3-weg vergelijking" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Info over KDiff3-menuplugin..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"De contextmenu-extensie gebruiken:\n" +"Voor eenvoudige vergelijking van twee geselecteerde bestanden, kies " +"\"Vergelijken\".\n" +"Als het andere bestand ergens anders staat, gebruik \"Opslaan\" voor het " +"eerste bestand voor later gebruik. Het zal verschijnen in het submenu " +"\"Vergelijken met...\". Gebruik daarna \"Vergelijken met\" op het tweede " +"bestand.\n" +"Voor een 3-weg samenvoeging, gebruik eerst \"Opslaan\" voor het " +"basisbestand, daarna de tak om mee samen te voegen en kies daarna \"3-weg " +"samenvoeging met basis\" op de tak die gebruikt zal worden als bestemming.\n" +"Bovenstaande is ook van toepassing op het vergelijken en samenvoegen van " +"mappen." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Info over Plugin voor KDiff3 File Item Action" \ No newline at end of file diff --git a/po/nn/kdiff3.po b/po/nn/kdiff3.po new file mode 100644 index 0000000..8953d3b --- /dev/null +++ b/po/nn/kdiff3.po @@ -0,0 +1,3315 @@ +# Translation of kdiff3 to Norwegian Nynorsk +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: KDE 4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2020-05-10 12:21+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\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-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Generator: Lokalize 20.04.0\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Karl Ove Hufthammer" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "karl@huftis.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Les fil: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Lagrar fil: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Ikkje nok minne" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Lagar ny mappe: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Fjernar mappe: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Slettar fil: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Lagar symbolsk lenkje: %1 → %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Endrar namn pÃ¥ fil: %1 → %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopierer fil: %1 → %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Les mappe: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Hentar mappeinnhald: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Kritisk intern feil" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Kritisk intern feil." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Kritisk intern feil: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Fil %1: Linje %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Fil %1: Linja er ikkje tilgjengeleg" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Teiknkoding:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Linjeskift-stil:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Teiknkoding: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Linjeskift-stil: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Øvste linje" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Opna fil" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8-bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Anna" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopier A til B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopier B til A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Slett A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Slett B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Slett A og B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Flett til A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Flett til B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Flett til A og B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Slett (viss det finst)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Flett" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Flett (manuelt)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Fullført" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Feil" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Hoppa over." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Ikkje lagra." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "I gang …" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Namn" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Handling" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Ikkje løyst" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Løyst" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Ikkje-blankteikn" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Blankteikn" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Åtvaring" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Skann pÃ¥ nytt" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Hald fram fletting" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "" + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "" + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "MÃ¥l" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Mappe" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Type" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Storleik" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Attributt" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Sist endra" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "LenkjemÃ¥l" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fil" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-lenkje" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ikkje tilgjengeleg" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (mÃ¥l): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (mÃ¥l): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (mÃ¥l): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "MÃ¥l: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Samanlikna vald fil" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Flett gjeldande fil" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Flett\n" +"Fil" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ikkje gjer noko" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Slett A og B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Flett til A og B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Gjeldande oppsett:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Last om att" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Avsluttar programmet" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Sett opp KDiff3 …" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "GÃ¥ til gjeldande delta" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Gjeldande\n" +"delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "GÃ¥ til første delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Første\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "GÃ¥ til siste delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Siste\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr "" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Ein KPart for vising av SVG-bilete" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "© 2007 Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "" + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/nn/kdiff3fileitemactionplugin.po b/po/nn/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..73c6342 --- /dev/null +++ b/po/nn/kdiff3fileitemactionplugin.po @@ -0,0 +1,94 @@ +# Translation of kdiff3fileitemactionplugin to Norwegian Nynorsk +# +# Karl Ove Hufthammer , 2020. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2020-04-30 23:10+0200\n" +"Last-Translator: Karl Ove Hufthammer \n" +"Language-Team: Norwegian Nynorsk \n" +"Language: nn\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 19.12.3\n" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3 …" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Samanlikna med %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Flett med %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Lagra «%1» til seinare" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-vegsfletting med grunnfil" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Samanlikna med …" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Tøm lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Samanlikna" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3-vegssamanlikning" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Om KDiff3-menytillegg …" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "KDiff3-filhandlingstillegg: © 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Om Kdiff3-filhandlingstillegget" \ No newline at end of file diff --git a/po/pl/diff_ext.po b/po/pl/diff_ext.po new file mode 100644 index 0000000..2eeeaf7 --- /dev/null +++ b/po/pl/diff_ext.po @@ -0,0 +1,130 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Łukasz Wojniłowicz , 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-05-01 06:23+0200\n" +"Last-Translator: Łukasz Wojniłowicz \n" +"Language-Team: Polish \n" +"Language: 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-Generator: Lokalize 20.12.1\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Porównaj z %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Scal z %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Trójstronne scalenie z podstawą" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Zapisz '%1' na później" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Porównaj z ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Wyczyść listę" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Porównaj" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Trójstronne porównanie" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "O Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "To oprogramowanie jest rozpowszechniane na licencji BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "" +"Niektóre z rozszerzeń dla KDiff3 (c) 2006-2013 autorstwa Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Przenosiny na Qt5/Kf5 dzięki Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Strona domowa dla Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "O Diff-Ext dla KDiff3 (64 bity)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Porównaj zaznaczone pliki" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Porównaj '%1' z '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Zapisz '%1' do późniejszego działania" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Nie można uruchomić KDiff3. Wgraj KDiff3 ponownie." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Polecenie" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Wiersz poleceń" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext dla KDiff3" \ No newline at end of file diff --git a/po/pl/kdiff3.po b/po/pl/kdiff3.po new file mode 100644 index 0000000..119f194 --- /dev/null +++ b/po/pl/kdiff3.po @@ -0,0 +1,3608 @@ +# translation of kdiff3.po to Polish +# translation of pl.po to +# Copyright (C) 2003, 2004, 2005, 2009, 2010, 2011 Free Software Foundation, Inc. +# +# Tomasz Waleµczak , 2004. +# Tomasz Waleńczak , 2004. +# Michal Rudolf , 2004. +# Marcin Bokszczanin , 2005. +# Krzysztof Lichota , 2005. +# Robert Gomulka , 2005. +# Michał Smoczyk , 2009, 2010, 2011. +# Łukasz Wojniłowicz , 2011, 2014, 2016, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-21 08:11+0100\n" +"Last-Translator: Łukasz Wojniłowicz <>\n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.1\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" +"Tomasz Waleńczak, Michał Rudolf, Marcin Bokszczanin, Krzysztof Lichota, " +"Robert Gomułka, Michał Smoczyk, Łukasz Wojniłowicz" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"tom@w.pl, mrudolf@kdewebdev.org, mboksz@bcig.pl, lichota@mimuw.edu.pl, " +"rgom@o2.pl, msmoczyk@wp.pl, lukasz.wojnilowicz@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Pobranie stanu pliku: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Czytanie pliku: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Zapisywanie pliku: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Brak pamięci" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Tworzenie katalogu: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Usuwanie katalogu: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Usuwanie pliku: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Tworzenie dowiązania symbolicznego:%1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Zmiana nazwy pliku: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopiowanie pliku: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Czytanie katalogu: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Wyświetlenie zawartości katalogu: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Błąd utraty danych:\n" +"Jeśli jest powtarzalny, to skontaktuj się z autorem programu.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Poważny błąd wewnętrzny" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Poważny błąd wewnętrzny." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Poważny błąd wewnętrzny.: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Plik %1: Wiersz %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Plik %1: Wiersz jest niedostępny" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodowanie:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Wygląd końca wiersza:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (podstawa)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kodowanie: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Wygląd końca wiersza: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Szczytowy wiersz" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Koniec" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Otwórz plik" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unikod, 8-bitowy" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Inne" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Skopiuj A do B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Skopiuj B do A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Usuń A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Usuń B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Usuń A i B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Scal z A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Scal z B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Scal z A i B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Usuń (jeśli istnieje)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Scal" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Scal (ręcznie)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Błąd: Sprzeczne rodzaje plików" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Błąd: Zmieniony i usunięty" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Błąd: Daty są takie same, ale pliki nie." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Gotowe" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Błąd" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Pominięto." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Niezapisane." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "W trakcie..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Do zrobienia." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nazwa" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Działanie" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stan" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Nierozwiązane" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Rozwiązane" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Niebiały" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Biały" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Obecnie wykonywane jest scalanie katalogów. Jesteś pewny że chcesz przerwać " +"to działanie i ponownie przeszukać katalog?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Ostrzeżenie" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Przeszukaj ponownie" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Wznów scalanie" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Nie udało się otworzyć katalogów:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Katalog A \"%1\" nie istnieje lub nie jest katalogiem.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Katalog B \"%1\" nie istnieje lub nie jest katalogiem.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Katalog C \"%1\" nie istnieje lub nie jest katalogiem.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Błąd otwierania katalogu" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Docelowy katalog nie może być taki sam jak A lub B jeśli scalane są trzy " +"katalogi.\n" +"Sprawdź ponownie zanim będziesz kontynuować." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Ostrzeżenie co do parametru" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Przeszukiwanie katalogów..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Czytanie katalogu A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Czytanie katalogu B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Czytanie katalogu C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Niektóre podkatalogi są nie do odczytu w" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Sprawdź uprawnienia do podkatalogów." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Gotowe." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Wynik porównywania katalogów\n" +"\n" +"Liczba podkatalogów: %1\n" +"Liczba równych plików: %2\n" +"Liczba różnych plików: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Liczba ręcznych scaleń: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "To wpłynie na wszystkie działania scalania." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Zmiana wszystkich działań scalania" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Przetwarzanie %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Niektórych plików nie można było przetworzyć." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Przerwano ze względu na dużą liczbę błędów." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "To działanie jest w tej chwili niemożliwe." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Działanie jest niemożliwe" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Wystąpił błąd podczas kopiowania." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Błąd scalania" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Nieznane działanie scalania. (To się nigdy nie powinno wydarzyć!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Nieznane działanie scalania." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Rozpoczęcie działania scalania.\n" +"\n" +"Wybierz \"Zrób to\" jeśli czytałeś instrukcję i wiesz co robisz.\n" +"Wybierz \"Symuluj\" otrzymasz informacje co otrzymasz\n" +"\n" +"Miej na uwadze że program nadal jest wersji beta i BRAK GWARANCJI co do " +"wyników działania! Wykonaj kopie zapasowe swoich istotnych danych!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Rozpoczynanie scalania" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Wykonaj" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Symuluj" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Podświetlony element jest innego rodzaju w innym katalogu. Wybierz co zrobić." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "Data zmiany plików jest taka sama ale pliki nie. Wybierz co zrobić." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Podświetlony element uległ zmianie w jednym katalogu, a usunięty w innym. " +"Wybierz co zrobić." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"To działanie jest obecnie niemożliwe do wykonania, bo trwa scalanie " +"katalogów." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"W ostatnim kroku wystąpił błąd.\n" +"Chcesz kontynuować z elementem, który powoduje błąd, czy go pominąć?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Kontynuuj scalanie po błędzie" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Kontynuuj z ostatnim elementem" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Pomiń element" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Działanie scalania zakończone." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Scalanie zakończone" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Symulacja scalania zakończona. Sprawdź czy zgadzasz się na zaproponowane " +"działania." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Wystąpił błąd. Naciśnij OK, aby zobaczyć szczegóły." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Błąd: Podczas usuwania %1: Tworzenie kopii zapasowej nie powiodło się." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "usuń katalog rekursywnie( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "usuń( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Błąd: nie udało się usunąć katalogu podczas próby jego odczytu." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Błąd: rmdir( %1 ) działanie nieudane." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Błąd: Nieudane działanie usuwania." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ręczne scalanie( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Uwaga: Po ręcznym scalaniu użytkownik powinien kontynuować wciskając F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Błąd: Nieudane kopiowanie( %1 -> %2 ) .Nieudane kasowanie katalogu " +"docelowego." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Błąd: Nie udane copyLink, zdalne dowiązania nie są jeszcze obsługiwane." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Błąd: Nieudane copyLink." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopiowanie( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Błąd w czasie zmiany nazwy( %1 -> %2 ): Nie można usunąć istniejącego " +"miejsca docelowego." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "zmiana nazwy( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Błąd: Nieudana zmiana nazwy." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Błąd podczas makeDir %1. Nie można usunąć istniejącego pliku." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Błąd tworzenia katalogu." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Docelowy" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Katalog" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Rodzaj" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Rozmiar" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrybuty" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Ostatnia zmiana" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Dowiązanie do pliku" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Plik" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Odsyłacz" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "niedostępny" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (docelowy): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (podstawa): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (docelowy): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (docelowy): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Docelowy: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Zapisz stan scalania katalogów jako..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Rozpocznij/Kontynuuj scalanie katalogów" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Wykonaj działanie na bieżącym elemencie" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Porównaj zaznaczone pliki" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Scal bieżący plik" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Scal\n" +"plik" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Zwiń wszystkie podkatalogi" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Rozwiń wszystkie podkatalogi" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Wybierz A dla wszystkich elementów" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Wybierz B dla wszystkich elementów" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Wybierz C dla wszystkich elementów" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Sam wybierz działanie dla wszystkich elementów" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Brak działania dla wszystkich elementów" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Pokaż takie same pliki" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Takie same\n" +"pliki" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Pokaż różniące się pliki" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Pokaż pliki tylko w A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Pliki\n" +"tylko w A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Pokaż pliki tylko w B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Pliki\n" +"tylko w B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Pokaż pliki tylko w C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Pliki\n" +"tylko w C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Porównaj bezpośrednio zaznaczone pliki" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Scal bezpośrednio zaznaczone pliki" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nic nie rób" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Usuń A i B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Scal z A i B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" +"Nie można określić pełnego adresu URL. Nie podano elementu nadrzędnego." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Nie udało się odczytać pliku: %1 " + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Tworzenie tymczasowej kopii %1 nieudane." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Nie udało się otworzyć %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Błąd czytania z %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Podczas tworzenia kopii zapasowej, nie udało się usunąć poprzedniej kopii " +"zapasowej. \n" +"Nazwa pliku: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Podczas tworzenia kopii zapasowej, nie udało się zmienić nazwy. \n" +"Nazwy plików: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Bieżące ustawienia:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Błąd parametru ustawień:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Użyta została opcja --auto, ale nie określono pliku wyjściowego." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Pominięto opcję --auto przy porównywaniu katalogów." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Nieudany zapis." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Nieudane otwarcie następujących plików:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Błąd otwarcia pliku" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Otwieranie dokumentów do porównania..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Wczytaj ponownie" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Zapisuje wynik scalania. Należy rozwiązać wszystkie sprzeczności!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Zapisywanie bieżącego dokumentu jako..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Drukowanie różnic" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Wyjście z programu" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Wycina zaznaczony fragment i umieszcza go w schowku" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopiuje zaznaczony fragment do schowka" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Wkleja zawartość schowka w bieżącym miejscu" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Zaznacza wszystko w bieżącym oknie" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Znajdź tekst" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Szukaj ponownie tekstu" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Włącza/wyłącza pasek stanu" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Ustawienia KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Przejdź do bieżącej różnicy" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Bieżąca\n" +"różnica" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Przejdź do pierwszej różnicy" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Pierwsza\n" +"różnica" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Przejdź do ostatniej różnicy" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Ostatnia\n" +"różnica" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Pomija różnice w znakach odstępu gdy opcja \"Pokaż znaki odstępu\" jest " +"wyłączona.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Nie pomija różnic w znakach odstępu gdy opcja \"Pokaż znaki odstępu\" jest " +"wyłączona)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Przejdź do poprzedniej różnicy" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Poprzednia\n" +"różnica" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Przejdź do następnej różnicy" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Następna\n" +"różnica" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Przejdź do poprzedniej sprzeczności" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Poprzedni\n" +"sprzeczność" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Przejdź do następnej sprzeczności" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Następny\n" +"sprzeczność" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Przejdź do poprzedniej nierozwiązanej sprzeczności" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Poprzedni\n" +"nierozwiązany" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Przejdź do następnej nierozwiązanej sprzeczności" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Następny\n" +"nierozwiązany" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Wybierz wiersz(e) z A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Wybierz\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Wybierz wiersz(e) z B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Wybierz\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Wybierz wiersz(e) z C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Wybierz\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Sam przejdź do następnej nierozwiązanej sprzeczności po wybraniu źródła" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automat.\n" +"następny" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Pokaż znaki odstępów i tabulację" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Białe\n" +"znaki" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Pokaż białe znaki" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Białe\n" +"różnice" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Pokaż numery wierszy" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Numery\n" +"wierszy" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Sam rozwiąż proste sprzeczności" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Ustaw różnice na sprzecznościach" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Rozpocznij scalanie wyrażeniem regularnym" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Sam rozwiąż sprzeczności historii" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Podziel różnice w zaznaczeniu" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Scal zaznaczone różnice" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Pokaż okno A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Pokaż okno B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Pokaz okno C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normalne przeglądanie" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Przeglądanie różnic między A i B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Przeglądanie różnic między A i C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Przeglądanie różnic między B i C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Zawijaj słowa w oknach różnic" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Dodawaj ręczne wyrównanie różnic" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Wyczyść wszystkie ręczne wyrównania różnic" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Uaktywnij następne okno" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Uaktywnij poprzednie okno" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Przełącz kierunek podziału okien" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Widok dzielony katalogu i tekstu" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Przełącz pomiędzy widokiem katalogu i tekstu" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Wynik scalania nie został zapisany." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Zapisz i wyjdź" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Zakończ bez zapisywania" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Nieudany zapis wyniku scalania." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Trwa scalanie katalogów. Czy na pewno je przerwać?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Zapisywanie pliku..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Zapisywanie pliku pod nową nazwą..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Zapisz jako..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Drukowanie niezaimplementowane." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Drukowanie..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Drukowanie strony %1 z %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Zaznaczenie)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Drukowanie zakończone." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Drukowanie przerwane." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Kończenie..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Przełączanie paska narzędzi..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Przełącz pasek stanu..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Moduł KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Moduł do wyświetlania obrazów SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "K&Diff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Ustawienia KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Nie można zainicjować modułu KDiff3.\n" +"Dzieje się tak zazwyczaj ze względu na problem instalacji. Proszę przeczytać " +"plik README w pakiecie źródłowym po szczegóły." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Plik" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Katal&og" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Działanie scalania dla bieżącego elementu" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Synchronizacja dla bieżącego elementu" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "&Ruch" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Widok różn&icy" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "&Scalanie" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Okno" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Główny pasek narzędzi" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Pomijane. (Określone przez użytkownika.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bity)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bity)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Narzędzie do porównywania, a także scalania plików i katalogów" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Scal pliki wejściowe." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" +"Bezpośrednio podany plik odniesienia - w celu zgodności z niektórymi " +"narzędziami." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Plik wyjściowy. Implikuje opcję -m. Przykład: -o nowyplik.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Plik wyjściowy, ponownie (w celu zapewnienia zgodności z niektórymi " +"narzędziami)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Brak GUI jeśli wszystkie sprzeczności mogą być rozwiązane. (Wymaga pliku -o)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Pomiń --auto i zawsze pokazuj graficzny interfejs użytkownika." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Pominięte." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Widoczna nazwa dla pliku 1 (podstawowego)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Widoczna nazwa dla pliku 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Widoczna nazwa dla pliku 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Alternatywna widoczna nazwa zastępcza. Proszę podać jedną dla każdego pliku " +"wejściowego." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Nadpisz ustawienia. Użyj raz dla każdego ustawienia, np. --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Pokaż listę ustawień i bieżące wartości." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Użyj innego pliku ustawień." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Otwórz plik 1 (podstawowy, jeśli nie określono poprzez --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Otwórz plik 2 " + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Otwórz plik 3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Zobacz kdiff3 --help po obsługiwane opcje." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Nie można porównać niezwyczajnego pliku ze zwyczajnym." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Pomieszane dowiązania i normalne pliki." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Dowiązanie: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Rozmiar. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data & Rozmiar: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Porównywanie pliku..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Wybierz wszędzie A" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Wybierz wszędzie B" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Wybierz wszędzie C" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Wybierz A dla wszystkich nierozwiązanych sprzeczności" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Wybierz B dla wszystkich nierozwiązanych sprzeczności" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Wybierz C dla wszystkich nierozwiązanych sprzeczności" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Wybierz A dla wszystkich nierozwiązanych sprzeczności białych znaków" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Wybierz B dla wszystkich nierozwiązanych sprzeczności białych znaków" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Wybierz C dla wszystkich nierozwiązanych sprzeczności białych znaków" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Liczba pozostałych nierozwiązanych sprzeczności: %1 (z których %2 dotyczy " +"znaków odstępu)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Plik wyjściowy został zmieniony.\n" +"Jeśli będziesz kontynuować zmiany zostaną utracone." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Wszystkie pliki wejściowe są dwójkowo takie same." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Wszystkie wejściowe pliki zawierając ten sam tekst." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Pliki %1 i %2 są dwójkowo takie same.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Pliki %1 i %2 mają ten sam tekst.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Liczba sprzeczności: %1\n" +"Liczba rozwiązanych sprzeczności: %2\n" +"Liczba nierozwiązanych sprzeczności: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Sprzeczności" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Nie rozwiązano wszystkich sprzeczności.\n" +"Plik nie został zapisany." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Pozostałe sprzeczności" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Wystąpiła sprzeczność wyglądu końca wiersza. Wybierz wygląd końca wiersza " +"ręcznie.\n" +"Plik nie został zapisany." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Tworzenie pliku zapasowego nie powiodło się. Plik nie został zapisany." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Błąd zapisu pliku" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Błąd w czasie zapisu." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Wyjście:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[zmieniony]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Kodowanie dla zapisu:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Sprzeczność" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Kodek z A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Kodek z B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Kodek z C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Okno dialogowe" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (podstawa):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Wynik (opcjonalnie):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Plik..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Zamiana/Kopiowanie nazw..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (opcjonalnie):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Katalog..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Wpis zarządzania historią wersji składa się z kilku wierszy.\n" +"Podaj wyrażenie regularne w celu wykrycia pierwszego wiersza (bez " +"poprzedzającego komentarza).\n" +"Użyj nawiasów aby pogrupować klucze które chcesz użyć do sortowania.\n" +"Jeśli pole zostanie puste, KDiff3 uzna że puste wiersze oddzielają wpisy " +"historii.\n" +"Zajrzyj do dokumentacji aby uzyskać szczegółowe informacje." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Każdy nawias użyty w wyrażeniu regularnym dla wpisu początkowego historii\n" +"grupuje klucz który może zostać użyty do sortowania wpisów.\n" +"Podaj listę kluczy (które są numerowane w kolejności wystąpienia\n" +"zaczynając od 1) oddzielając je przecinkiem ',' (np. \"4,5,6,1,2,3,7\").\n" +"Jeśli pole pozostanie puste, nie zostanie wykonane żadne sortowanie.\n" +"Zajrzyj do dokumentacji, aby uzyskać szczegółowe informacje." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Wyrażenie regularne dla wierszy, w których KDiff powinien samwybrać jedno ze " +"źródeł.\n" +"Kiedy wiersz ze sprzecznością pasuje do wyrażenia regularnego, wtedy\n" +"(jeśli dostępne) zostanie wybrane C, w innym przypadku zostanie wybrane B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Wyrażenie regularne dla wpisu początkowego historii zarządzania wersją.\n" +"Zwykle wiersz taki zawiera słowo kluczowe \"$Log$\".\n" +"Domyślna wartość: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Szybki brązowy lis przeskakuje rzekę\n" +"lecz mały czerwony kogut ucieka cały się trzęsąc.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Zmień czcionkę" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Czcionka: %1, %2, %3\n" +"\n" +"Przykład:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unikod" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Zmień to jeśli znaki nie-ascii są wyświetlane niepoprawnie." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Ustawienia" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Czcionka" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Czcionka edytora i różnicy" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Czcionka aplikacji" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Czcionka widoku pliku" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Kolor" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Ustawienia kolorów" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Widoki edytora i różnic:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Kolor pierwszoplanowy:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Kolor tła:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Kolor tła dla różnic:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Kolor A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Kolor B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Kolor C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Kolor dla sprzeczności:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Kolor tła zaznaczonego bloku:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Kolor tła różnic w bloku:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Kolor dla ręcznie wyrównanych zakresów różnic:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Widok porównania katalogów:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Kolor najnowszego pliku:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Zmiana tego koloru będzie nastąpi po rozpoczęciu następnego porównania " +"katalogów." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Kolor najstarszego pliku:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Kolor dla plików w średnim wieku:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Kolor brakujących plików:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Edytor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Zachowanie edytora" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab wstawia odstępy" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Wł: Wciśnięcie tabulacji wstawi określoną liczbę odstępów.\n" +"Wył: Zostanie wprowadzony znak tabulacji." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Szerokość tabulacji:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Wcinaj tekst" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Wł: Wcięcie poprzedniego wiersza będzie użyte w nowym wierszu.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Skopiuj zaznaczenie do schowka" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Wł: Jakiekolwiek zaznaczenie powoduje natychmiastowy zapis do schowka.\n" +"Wył: Musisz jawnie skopiować np. poprzez Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Wykryj samoczynnie" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Ustawia wygląd końca wiersza, jaki będzie używany podczas zapisywania pliku\n" +"DOS/Windows: CR+LF; Unix: LF; gdzie CR=0x0D; LF=0x0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Różnica" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Ustawienia różnic" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Pomijaj liczby (postępuj jak z białymi znakami)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Pomijaj liczby podczas sprawdzania (podobne do Pomijaj białe znaki)\n" +"Może być pomocne przy porównywania plików z danymi liczbowymi." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Pomijaj komentarze C/C++ (postępuj jak z białymi znakami)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Traktuj komentarze C/C++ jako białe znaki." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Nie rozróżniaj wielkości liter (postępuj jak z białymi znakami)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Różnice wielkości liter traktuj jak zmiany znaków odstępu (\"a\"<=>\"A\")" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Polecenie preprocesora:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Zdefiniowany przez użytkownika pre-proces. (Zobacz szczegóły w dokumentacji.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Polecenie preprocesora do dopasowywania wierszy:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Tego polecenia można użyć tylko z wiersza poleceń.\n" +"(Aby uzyskać szczegóły zobacz dokumentację.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Próbuj bardziej (wolniejsze)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Udostępnia opcję --minimal dla zewnętrznego porównania.\n" +"Analizowanie dużych plików będzie znacznie wolniejsze." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Wyrównaj B i C dla 3 plików wejściowych" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Próbuje wyrównać B i C kiedy porównywane są trzy pliki wejściowe.\n" +"Nie jest to polecane dla scalania plików, ponieważ może to być skomplikowane " +"działanie.\n" +"Domyślnie ta opcja jest wyłączona." + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Scal" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Ustawienia scaleń" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Okres przechodzenia dalej (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"W trybie okresowego przechodzenia wynik bieżącego zaznaczenia \n" +"jest pokazywany przez podany czas zanim nastąpi przejście do następnej \n" +"sprzeczności. Zakres: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Pokaż okno informacyjne" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Pokaż okno z liczbą sprzeczności." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Domyślne scalanie białych znaków przy 2 plikach:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Wybieraj ręcznie" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Pozwól algorytmowi scalania samemu dokonać wyboru przy zmianach wynikających " +"tylko z białych znaków." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Domyślne scalanie białych znaków przy 3 plikach:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Wyrażenie regularne samoczynnego scalania" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Wyrażenie regularne samoczynnego scalania:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Rozpocznij scalanie wyrażeniem regularnym po rozpoczęciu scalania" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Uruchom scalanie dla wyrażenia regularnego samoczynnego scalania\n" +"zaraz po rozpoczęciu scalania.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Łączenie historii kontroli wersji" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Wyrażenie regularne dla początku historii:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Wyrażenie regularne dla początku wpisu historii:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Sortowanie historii scalania" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Sortowanie historii kontroli wersji za pomocą podanego klucza." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Porządek sortowania wpisów historii:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Scal historię zarządzania wersji po rozpoczęciu scalania" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Rozpocznij scalanie historii zarządzania wersjami po rozpoczęciu scalania." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Maksymalna liczba wpisów historii:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Obcina po podanej liczbie wpisów. Użyj -1 dla nieskończonej liczy wpisów." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Sprawdzanie wyrażeń regularnych" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Niezwiązane polecenie scalania:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Polecenie, które zostanie wykonane po samoczynnym scaleniu,\n" +"jeśli nie wykryto żadnych innych istotnych zmian.\n" +"Wywoływany z parametrami: nazwapliku1 nazwapliku2 nazwapliku3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Sam zapisz i zakończ po scaleniu bez sprzeczności" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Kiedy KDiff3 został uruchomiony dla scalenia plików z wiersza poleceń i " +"wszystkie\n" +"sprzeczności są rozwiązywalne bez potrzeby zadziałania użytkownika, wtedy " +"sam\n" +"zapisuje i kończy działanie programu.\n" +"Działanie jest podobne do opcji wiersza poleceń \"--auto\"." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Katalogi rekursywne" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Określa czy analizować podkatalogi, czy nie." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Wzorzec plików:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Wzorzec(rce) plików do analizy. \n" +"Symbole wieloznaczne: \"*\" i \"?\"\n" +"Można określić kilka wzorców poprzez użycie separatora: \";\"" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Anty-wzorzec plików:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Wzorzec(rce) plików jakie mają być wyłączone z analizy. \n" +"Znaki szablonowe (wildcards): \"*\" i \"?\"\n" +"Możesz określić kilka wzorców używając separatora: \";\"" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Anty-wzorzec katalogów:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Wzorzec(rce) plików jakie mają być wyłączone z analizy. \n" +"Znaki szablonowe (wildcards): \"*\" i \"?\"\n" +"Możesz określić kilka wzorców używając separatora: \";\"" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Użyj pliku pomijanych" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Rozszerza anty-wzorzec na wszystko, co byłoby pominięte przez system " +"zarządzania wersjami. \n" +"Poprze lokalne pliki pomijanych elementów, można to określić na każdy " +"katalog osobno." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Szukaj ukrytych plików i katalogów" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Znajduje ukryte pliki i katalogi." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Podążaj za dowiązaniami" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Wł: Porównuj pliki na które wskazuje dowiązanie.\n" +"Wył: Porównuj dowiązania." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Podążaj za dowiązaniami" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Wł: Porównuj pliki, na które wskazuje dowiązanie.\n" +"Wył: Porównuj dowiązania." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Rozróżniaj wielkość liter przy porównaniu nazw plików" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Porównanie katalogów porówna pliki lub katalogi kiedy ich nazwy się " +"zgadzają.\n" +"Włącz tą opcję jeśli wielkość liter w nazwach musi się zgadzać.\n" +"Dla systemu Windows opcja ta jest domyślne wyłączona, w innych przypadkach " +"włączona." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Rozwiń wszystkie podkatalogi po wczytaniu" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Wł: Rozwiń wszystkie podkatalogi rozpoczynając sprawdzanie różnicy między " +"katalogami.\n" +"Wył: Pozostaw podkatalogi zwinięte." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Pomiń zgłaszanie stanu katalogu" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Wł: Nie pokazuj wyniku porównywania katalogów.\n" +"Wył: Pokaż okno dialogowe wyniku na początku." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Tryb porównywania plików" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Porównywanie dwójkowe" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Dwójkowe porównanie dla każdego pliku (domyślne)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Pełne porównywanie" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Wykonaj pełną analizę i pokaż statystyki w dodatkowych kolumnach.\n" +"(Wolniejsze niż porównanie dwójkowe i znacznie wolniejsze dla plików " +"dwójkowych.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Ufaj rozmiarowi i dacie zmiany (niebezpieczne)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Zakłada że pliki są takie same, jeśli ich data zmiany i rozmiar są takie " +"same.\n" +"Pliki z jednakową zawartością ale inną datą zmiany zostaną uznane za różne.\n" +"Jest to użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Ufaj rozmiarowi i dacie, ale użyj porównania dwójkowego jeśli data się nie " +"zgadza (niebezpieczne)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Zakłada że pliki są identyczne, jeśli ich data zmiany i rozmiar są " +"identyczne.\n" +"Jeśli data zmiany nie jest identyczna (przy czym rozmiary są), używa " +"porównania dwójkowego.\n" +"Jest to użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Ufaj rozmiarowi (niebezpieczne)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Zakłada ze pliki są takie same jeśli ich rozmiar jest taki sam.\n" +"Użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych, gdzie " +"data jest zmieniana w trakcie pobierania." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Synchronizuj katalogi" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Oferuje zapisanie plików obu katalogach tak,\n" +"że potem oba katalogi będą takie same.\n" +"Działa tylko przy porównywaniu dwóch katalogów \n" +"bez określonego miejsca docelowego." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Nie zgłaszaj różnic w białych znakach" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Jeśli pliki różnią się tylko białymi znakami, to uznaj je za takie same.\n" +"Opcja możliwa tylko w przypadku pełnego porównywania." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Skopiuj nowsze zamiast scalać (niebezpieczne)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Nie sprawdza zawartości tylko bierze nowszy plik. \n" +"(Użyj tego tylko jeśli wiesz co robisz!)\n" +"Jest to efektywne tylko przy porównywaniu dwóch katalogów." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Twórz kopie zapasowe (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Gdy plik będzie zapisywany w miejsce starego, to stary plik\n" +"zmieni nazwę (dodane zostanie rozszerzenie \".orig\"), zamiast zostać " +"usuniętym." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Ustawienia regionalne" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Używanie tego samego kodowania dla wszystkiego:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Włączenie tej opcji pozwala na zmianę wszystkich kodowań zmieniając tylko " +"pierwsze.\n" +"Wyłącz, jeśli potrzebne są różne osobne ustawienia." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Uwaga: Lokalne kodowanie to \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Kodowanie pliku A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Jeśli włączone, będzie wykrywane kodowanie Unikod (UTF-16 lub UTF-8).\n" +"Jeśli plik nie jest zakodowany Unikodem, wtedy wybrane kodowanie zostanie " +"użyte z powrotem.\n" +"(Wykrywanie Unikodu odbywa się na podstawie pierwszych bajtów pliku.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Wykryj Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Kodowanie pliku B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Kodowanie pliku C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kodowanie pliku wynikowego i przy zapisywaniu:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Wybieraj sam" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Jeśli włączone, użyte zostanie kodowanie dla plików wejściowych.\n" +"W przypadkach wątpliwych pojawi się okno, gdzie użytkownik będzie mógł " +"wybrać kodowanie dla zapisu." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Kodowanie plików preprocesora:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Język od-prawej-do-lewej" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Niektóre języki są czytane od prawej strony do lewej.\n" +"Ustawienie to zmieni odpowiednio zarówno przeglądarkę jak i edytor." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integracja" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Ustawienia integracji" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Pomijane opcje wiersza poleceń:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Lista opcji wiersza poleceń, które powinny być pomijane podczas gdy KDiff " +"jest używany przez inne narzędzia.\n" +"Można podać kilka opcji oddzielając je za pomocą \";\"\n" +"Użycie tej opcji zablokuje błąd \"Nieznana opcja\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Klawisz Escape także powoduje wyjście" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Szybka metoda zakończenia.\n" +"Użyteczne dla tych którzy są przyzwyczajenia do używania klawisza Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Kasuje wszystkie ustawienia. Działa nie tylko na bieżącej zakładce." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Polecenie preprocesora: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Następująca opcja(e) które wybrano mogą zmienić dane:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Najprawdopodobniej jest to niepożądane podczas scalania.\n" +"Czy chcesz wyłączyć te ustawienia, czy kontynuować bez ich wyłączania?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opcja niebezpieczna podczas scalania" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Użyj tych opcji podczas scalania" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Wyłącz niebezpieczne opcje" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Wczytywanie A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Wczytywanie A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Wczytywanie B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Wczytywanie B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Różnica: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Różnica: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Wczytywanie C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Wczytywanie C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Różnica: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Różnica: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Różnica: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Różnica: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Wszystkie pliki wejściowe zawierają ten sam tekst, ale nie są dwójkowo takie " +"same." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Pliki %1 i %2 zawierają ten sam tekst, ale nie są dwójkowo takie same.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Niektóre pliki wejściowe nie wyglądają na pliki czysto tekstowe.\n" +"Zauważ że KDiff3 nie nadaje się do danych dwójkowych.\n" +"Kontynuuj na własne ryzyko." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Pewne znaki wejściowe nie mogły zostać przekształcone do prawidłowego " +"unikodu.\n" +"Możesz używać złego kodeku. (np. UTF-8 dla plików nie-UTF-8).\n" +"Nie zapisuj wyników, jeśli jesteś niepewny(a). Kontynuuj na własne ryzyko.\n" +"Pliki wejściowe, których to dotyczy to %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "O programie" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Otwieranie plików..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Wytnij zaznaczenie..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Skopiuj zaznaczony fragment do schowka..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Wkleja zawartość schowka..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Zawijanie słów (Anulowanie wyłącza zawijanie słów)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Obliczanie największej szerokości dla poziomego paska przewijania" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Zapisz i Kontynuuj" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Zakończ bez zapisywania" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Wynik szukania." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Wyszukiwanie zakończone" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Nic nie wybrano w żadnym oknie wejściowym różnicy." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Błąd podczas dodawania ręcznego zakresu różnic" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Anuluj" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Zamiana %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Skopiuj %1->Wyjście" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Zamiana %1 <-> Wynik" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Ustawienia..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Otwórz katalog" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Wybierz plik wyjściowy" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "wszystkie/wszystkie pliki (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Szukaj tekstu:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Rozróżniaj wielkość liter" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Przeszukaj A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Przeszukaj B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Przeszukaj C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Przeszukaj wynik" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Szukaj" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Test wyrażeń regularnych" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Przykładowy wiersz samoczynnego scalania:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Aby sprawdzić samoczynne scalanie, skopiuj wiersz używany w twoich plikach." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Pasujący wynik:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Przykładowy wiersz początkowy historii (z poprzedzającym komentarzem):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Skopiuj tutaj wiersz początkowy wpisu historii tak jak go używasz w swoich " +"plikach,\n" +"włącznie z poprzedzającym go komentarzem." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Porządek sortowania historii:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Przykładowy wiersz początkowy historii (bez poprzedzającego komentarza):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Skopiuj tutaj wiersz początkowy wpisu historii tak jak go używasz w swoich " +"plikach,\n" +"ale bez poprzedzającego go komentarza." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Wynik sortowania kluczy:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Znaleziono pasujące wyrażenie." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Nie znaleziono pasującego wyrażenia." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Nawiasy otwierające i zamykające nie zgadzają się w wyrażeniu regularnym." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Błąd zapisu zawartości schowka do pliku tymczasowego." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "ze schowka" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 nie jest zwyczajnym plikiem." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Plik tymczasowy to: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Przetwarzanie wstępne prawdopodobnie nie powiodło się. Proszę sprawdzić " +"polecenie:\n" +"\n" +" %1\n" +"\n" +"Polecenie przetwarzania wstępnego zostanie wyłączone." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Plik %1 jest zbyt duży do przetworzenia. Pominięto go." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Przetwarzanie wstępne dopasowywania wierszy prawdopodobnie nie powiodło się. " +"Proszę sprawdzić polecenie:\n" +"\n" +" %1\n" +"\n" +"Polecenie przetwarzania wstępnego dopasowywania wierszy zostanie wyłączone." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Oczekiwano odstępu po zamykającym znaku cytowania." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Cudzysłów nie w parze." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Nieoczekiwany znak cytowania wewnątrz argumentu." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Nie określono programu." \ No newline at end of file diff --git a/po/pl/kdiff3fileitemactionplugin.po b/po/pl/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..e6fdb49 --- /dev/null +++ b/po/pl/kdiff3fileitemactionplugin.po @@ -0,0 +1,103 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Łukasz Wojniłowicz , 2011, 2018, 2019, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-21 08:11+0100\n" +"Last-Translator: Łukasz Wojniłowicz <>\n" +"Language-Team: Polish \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.12.1\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Porównaj z %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Scal z %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Zapisz '%1' na później" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Trójstronne scalenie z bazą" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Porównaj z..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Wyczyść listę" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Porównaj" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Trójstronne porównanie " + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "O wtyczce menu KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Wtyczka działania na pliku KDiff3: Prawa autorskie (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Sposób użycia rozszerzenia menu kontekstowego:\n" +"Dla prostego porównania dwóch wybranych plików wybierz \"Porównaj\".\n" +"Jeśli drugi plik znajduje się w innym miejscu \"Zachowaj na później\" " +"pierwszy plik, a pojawi się on w podmenu \"Porównaj z...\". Następnie użyj " +"\"Porównaj z..\" z drugim plikiem.\n" +"Dla trójstronnego scalenia najpierw \"Zachowaj\" plik bazowy, a następnie " +"gałąź do scalenia i wybierz \"Trójstronne scalenie z elementem podstawowym\" " +"na innej gałęzi, która będzie użyta jako docelowa.\n" +"To samo tyczy się porównywania i scalania katalogów." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "O wtyczce działanie elementu pliku KDiff3" \ No newline at end of file diff --git a/po/pt/diff_ext.po b/po/pt/diff_ext.po new file mode 100644 index 0000000..ce229dc --- /dev/null +++ b/po/pt/diff_ext.po @@ -0,0 +1,135 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: diff_ext\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2018-08-06 11:25+0100\n" +"Last-Translator: José Nuno Coelho Pires \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POFile-SpellExtra: Zorin Joachim Sergey Ext Eibl Diff KDiff\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar com %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Reunir com %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Reunião a 3-níveis com a base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Gravar '%1' para a posteridade" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Comparar com ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Limpar a lista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparação a 3 níveis" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Acerca do Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Todos os direitos " +"reservados.\n" + +#: diff_ext.cpp:325 +#, fuzzy, kde-format +#| msgid "This software is distributable under the BSD license.\n" +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Este 'software' pode ser distribuído de acordo com a licença BSD.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Algumas extensões para o KDiff3 (c) 2006-2013 de Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Página Web do Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, fuzzy, kde-format +#| msgid "About Diff-Ext for KDiff3 " +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Acerca da Diff-Ext para o KDiff3 " + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Comparar os ficheiros seleccionados" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Comparar o '%1' com o '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Gravar o '%1' para a posteridade" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" +"Não foi possível iniciar o KDiff3. Execute por favor a instalação do KDiff3 " +"de novo." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Comando" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Linha de Comandos" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext para o KDiff3" \ No newline at end of file diff --git a/po/pt/kdiff3.po b/po/pt/kdiff3.po new file mode 100644 index 0000000..058d54b --- /dev/null +++ b/po/pt/kdiff3.po @@ -0,0 +1,3740 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2020-06-30 11:35+0100\n" +"Last-Translator: Pedro Morais \n" +"Language-Team: pt \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POFile-IgnoreConsistency: White\n" +"X-POFile-IgnoreConsistency: Diff Settings\n" +"X-POFile-SpellExtra: LF return Dif carriage ms diff CR KDiff cvsignore\n" +"X-POFile-SpellExtra: orig Log bin map lib mgrs Rational ClearCase rename\n" +"X-POFile-IgnoreConsistency: End\n" +"X-POFile-SpellExtra: copyLink Part Latin Dest Atrib AutoAdvance Tab\n" +"X-POFile-SpellExtra: mergeResultSaved vs rmdir mpMFI cs Diff txt makeDir\n" +"X-POFile-SpellExtra: novoficheiro Dir delete Sauer Faure Gehrmann Joachim\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-POFile-SpellExtra: Eibl Woebbeking Stephan Manfred Schmidt Bernd Mee\n" +"X-POFile-SpellExtra: Mike Binner Zorin Sergey Eike Stefan Len Fricker Mac\n" +"X-POFile-SpellExtra: Valentin StringMatcher kdiff Boellsterling Diffutils\n" +"X-POFile-SpellExtra: Stallman Cervisia Hayes CvsIgnoreList Sebastien Tower\n" +"X-POFile-SpellExtra: Rusu Help Koehler Denio Andre Eggert Partheymueller\n" +"X-POFile-SpellExtra: Haertel Astals Scherrer Silvan minimal Aurélien\n" +"X-POFile-IgnoreConsistency: Diff\n" +"X-POFile-IgnoreConsistency: Status\n" +"X-POFile-SpellExtra: Gâteau KF Reeve Reeves help Pocinhas\n" +"X-POFile-IgnoreConsistency: Type\n" +"X-POFile-IgnoreConsistency: Name\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "José Nuno Pires" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "zepires@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "A obter o estado do ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "A ler o ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "A escrever o ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Sem memória" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "A criar a pasta: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "A remover o ficheiro. %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "A remover o ficheiro. %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "A criar a ligação simbólica: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "A mudar o nome do ficheiro: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "A copiar o ficheiro: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "A ler o ficheiro: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "A analisar a pasta: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Erro de perda de dados:\n" +"Se for reprodutível, contacte por favor o autor.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Erro Interno Grave" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Erro Interno Grave" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Erro Interno Grave" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Ficheiro %1: Linha %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Ficheiro %1: Linha não disponível" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codificação:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Estilo de fim de linha:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codificação: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Estilo de fim de linha: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Linha de topo" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fim" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Abrir um Ficheiro" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Outro" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copiar A para B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copiar B para A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Apagar A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Apagar B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Apagar A e B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Juntar a A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Juntar a B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Juntar a A e B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Apagar (se existir)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Reunir" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Juntar (manual)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Erro: Tipos de Ficheiros em Conflito" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Erro: Alterado e Apagado" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Erro: As datas são iguais mas os ficheiros não." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Concluído" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Erro" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Ignorado." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Não gravado." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Em progresso..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "A fazer." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nome" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operação" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Estado" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Não resolvido" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Resolvido" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Não vazio" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Vazio" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Você está neste momento a fazer uma junção de pastas. Tem a certeza que " +"deseja interromper a junção e analisar a pasta de novo?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Aviso" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Pesquisar de Novo" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continuar a Junção" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "O acesso às pastas foi mal-sucedido:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "A pasta A \"%1\" não existe ou não é uma pasta.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "A pasta B \"%1\" não existe ou não é uma pasta.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "A pasta C \"%1\" não existe ou não é uma pasta.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File open error" +msgid "Folder Opening Error" +msgstr "Erro ao abrir o ficheiro" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"A pasta de destino não pode ser a mesma que a A ou a B quando são reunidas " +"três pastas.\n" +"Verifique de novo antes de continuar." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Aviso do Parâmetro" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "A pesquisar as pastas..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "A ler o ficheiro: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "A ler o ficheiro: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "A ler o ficheiro: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Algumas das sub-pastas não eram legíveis" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Verifique as permissões das sub-pastas." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Pronto." + +#: directorymergewindow.cpp:993 +#, fuzzy, kde-format +#| msgid "" +#| "Directory Comparison Status\n" +#| "\n" +#| "Number of subdirectories: %1\n" +#| "Number of equal files: %2\n" +#| "Number of different files: %3" +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Estado da Comparação das Pastas\n" +"\n" +"Número de sub-pastas: %1\n" +"Número de ficheiros iguais: %2\n" +"Número de ficheiros diferentes: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Número de junções manuais: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Isto afecta todas as operações de junção." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "A Mudar Todas as Operações de Junção" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"A processar o %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Não foi possível processar alguns ficheiros." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Esta operação não é possível de momento." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operação Não Possível" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Ocorreu um erro ao copiar." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Erro na Junção" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Operação de junção desconhecida. (Isto nunca deve acontecer!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Operação de junção desconhecida." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"A junção está prestes a começar.\n" +"\n" +"Escolha \"Fazê-lo\" se leu as instruções e sabe o que está a fazer.\n" +"Se escolher \"Simulá-lo\" irá saber o que iria acontecer.\n" +"\n" +"Tenha em atenção que este programa está ainda em estado Beta e NÃO EXISTE " +"NENHUMA GARANTIA! Faça cópias de segurança dos seus dados vitais!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "A Iniciar a Junção" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Fazê-lo" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulá-lo" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"O item realçado tem um tipo diferente nas várias pastas. Seleccione o que " +"fazer." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"As datas de modificação dos ficheiros são iguais mas estes não o são. " +"Seleccione o que fazer." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"O item realçado foi alterado numa pasta e modificado na outra. Seleccione o " +"que fazer." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Esta operação não é possível de momento que a junção da pasta está a " +"decorrer." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Ocorreu um erro no último passo.\n" +"Deseja continuar com o item que causou o erro ou deseja saltar este item?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continuar a junção após um erro" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continuar com o Último Item" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Saltar o Item" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "A operação de junção terminou." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Junção Completa" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"A simulação da junção terminou: Verifique se concorda com as operações " +"propostas." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Ocorreu um erro. Carregue em OK para ver a informação detalhada." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Erro: Ao tentar apagar o %1: a criação da cópia de segurança falhou." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "apagar recursivamente as pastas( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "delete( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Erro: a operação de remoção da pasta falhou ao tentar ler a pasta." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Erro: a operação rmdir( %1 ) falhou." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Erro: a operação de remoção falhou." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "junção manual( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Nota: Após uma junção manual o utilizador deve continuar com o F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Erro: a cópia( %1 -> %2 ) falhou. A remoção do destino existente falhou." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Erro: o copyLink falhou: As ligações remotas ainda não são suportadas." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Erro: o copyLink falhou." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "cópia( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Erro durante o rename( %1 -> %2 ): Não é possível remover o destino " +"existente." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rename( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Erro: A mudança de nome falhou." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Erro durante o makeDir do %1. Não é possível remover o ficheiro existente." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Erro ao criar a pasta." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipo" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Tamanho" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrib" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Última Modificação" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Ligação-Destino" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Ficheiro" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Ligação" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "não disponível" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Gravar o Estado da Junção de Pastas Como..." + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Iniciar/Continuar a Junção da Pasta" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Executar a Operação no Item Actual" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Comparar o Ficheiro Seleccionado" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Juntar o Ficheiro Actual" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Reunir o\n" +"Ficheiro" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Fechar Todas as Sub-Pasta" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Expandir Todas as Sub-Pastas" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Seleccionar Todos os Itens do A" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Seleccionar Todos os Itens do B" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Seleccionar Todos os Itens do C" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Escolher Automaticamente a Operação para Todos os Itens" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Nenhuma Operação para Todos os Itens" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Mostrar os Ficheiros Idênticos" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Ficheiros\n" +"Idênticos" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Mostrar os Ficheiros Diferentes" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Mostrar os Ficheiros Apenas no A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Ficheiros \n" +"Apenas no A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Mostrar os Ficheiros Apenas no B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Ficheiros\n" +"Apenas no B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Mostrar os Ficheiros Apenas no C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Ficheiros\n" +"Apenas no C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Comparar os Ficheiros Seleccionados Explicitamente" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Juntar os Ficheiros Seleccionados Explicitamente" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Não Fazer Nada" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Apagar A e B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Juntar a A e B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" +"Não foi possível determinar o URL completo. Não foi indicado o URL-pai." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Não foi possível ler o ficheiro: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "A criação da cópia temporária do %1 falhou." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "O acesso ao %1 foi mal-sucedido. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Erro ao ler de %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Ao tentar fazer uma cópia de segurança, a remoção de uma cópia anterior " +"falhou.\n" +"Ficheiro: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Ao tentar fazer uma cópia de segurança, a mudança de nome falhou.\n" +"Ficheiros: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configuração Actual:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Erro da Opção de Configuração:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"A opção --auto foi indicada, mas não foi especificado nenhum ficheiro de " +"saída." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "A opção --auto é ignorada para a comparação de pastas." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "A gravação falhou." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "O acesso a estes ficheiros falhou:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Erro ao abrir o ficheiro" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Abre os documentos para os comparar..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Actualizar" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Grava o resultado da gravação. Todos os conflitos devem ficar resolvidos!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Grava o documento actual como..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Imprimir as diferenças" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Sai da aplicação" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Corta a secção seleccionada e coloca-a na área de transferência" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia a secção seleccionada para a área de transferência" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Cola o conteúdo da área de transferência na posição actual" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Selecciona tudo na janela actual" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Procura por um texto" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Procura de novo pelo texto" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Activa/desactiva a barra de estado" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configurar o KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ir para o Delta Actual" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Delta\n" +"Actual" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ir para o Primeiro Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Primeiro\n" +"Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ir para o Último Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Último\n" +"Delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Ignora as diferenças de espaço em branco quando \"Mostrar os Espaços em " +"Branco\" está desactivado.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Não ignora as diferenças de espaço em branco mesmo quando \"Mostrar os " +"Espaços em Branco\" está desactivado.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ir para o Delta Anterior" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Delta\n" +"Anterior" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ir para o Próximo Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Delta\n" +"Seguinte" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ir para o Conflito Anterior" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflito\n" +"Anterior" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ir para o Próximo Conflito" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Conflito\n" +"Seguinte" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ir para o Conflito por Resolver Anterior" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Não Resolvido\n" +"Anterior" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ir para o Conflito por Resolver Seguinte" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Não Resolvido\n" +"Seguinte" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Seleccionar as Linhas do A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Escolher\n" +"o A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Seleccionar as Linhas do B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Escolher\n" +"o B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Seleccionar as Linhas do C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Escolher\n" +"o C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Ir Automaticamente para o Próximo Conflito por Resolver Após a Selecção do " +"Código" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Seguinte\n" +"Automático" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Mostrar as Diferenças de Espaços && Tabulações" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Espaços\n" +"em Branco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Mostrar os Espaços em Branco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Diferenças\n" +"em Branco" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Mostrar os Números de Linha" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Números\n" +"de Linha" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Resolver Automaticamente os Conflitos Simples" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Passar os Deltas para Conflitos" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Executar a Junção Automática de Expressões Regulares" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Resolver Automaticamente os Conflitos do Histórico" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Dividir a Diferença na Selecção" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Juntar as Diferenças Seleccionadas" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Mostrar a Janela A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Mostrar a Janela B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Mostrar a Janela C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Vista Normal" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Vista A vs. B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Vista A vs. C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Vista B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Quebrar Linha nas Janelas de Diferenças" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Adicionar o Alinhamento Manual das Diferenças" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Limpar Todos os Alinhamentos de Diferenças Manuais" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Foco na Próxima Janela" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Foco na Janela Anterior" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Comutar a Orientação da Repartição" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Janela Repartida de Pastas e Texto" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Mudar Entre a Janela de Pastas e de Texto" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "O resultado da junção não foi ainda gravado." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Gravar e Sair" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Sair sem Gravar" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "A gravação do resultado da junção falhou." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Você está a fazer uma junção de pastas de momento. Tem a certeza que quer " +"interromper?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "A gravar o ficheiro..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "A gravar o ficheiro com um novo nome..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Gravar Como..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "A impressão não está implementada." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "A imprimir..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "A imprimir a página %1 de %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Selecção)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "A impressão terminou." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "A impressão foi interrompida." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "A sair..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "A comutar a barra de ferramentas..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Comutar a barra de estado..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Componente do KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Uma KPart para mostrar imagens SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007 de Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configurar o KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Não foi possível obter a componente do KDiff3.\n" +"Isto acontece normalmente devido a um problema de instalação. Leia por favor " +"o ficheiro README no pacote de código para mais detalhes." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Ficheiro" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operação de Junção do Item Actual" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operação de Sincronização do Item Actual" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&ovimento" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iferenças" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "R&eunir" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Janela" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra Principal" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorado. (Definido pelo utilizador.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bits)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bits)" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Ferramenta para Comparação e Junção de Ficheiros e Pastas" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves - Migração para o KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Juntar a entrada." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" +"Ficheiro de base explícito. Para a compatibilidade com certas ferramentas." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Ficheiro de saída. Implica o -m. P.ex.: -o novoficheiro.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Ficheiro de saída, de novo. (para a compatibilidade com certas ferramentas)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Sem interface se todos os conflitos são resolvidos automaticamente (precisa " +"do -o ficheiro)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorado." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Substituição do nome visível para o ficheiro de entrada 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Substituição do nome visível para o ficheiro de entrada 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Substituição do nome visível para o ficheiro de entrada 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Substituição alternativa do nome visível. Indique isto para cada entrada." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Substitui uma opção de configuração. Use uma vez para todas as opções. P." +"ex.: --cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Mostra uma lista das opções de configuração e os valores actuais." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Usar um ficheiro de configuração diferente." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "o ficheiro 1 a abrir (base, se não for indicado através do --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "o ficheiro 2 a abrir" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "o ficheiro 3 a abrir" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Veja as opções suportadas em 'kdiff3 --help'." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Não é possível comparar um ficheiro não-normal com um normal." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mistura de ligações e ficheiros normais." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Ligação: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Tamanho. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data e Tamanho: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "A comparar o ficheiro..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Escolher o A em Todo o Lado" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Escolher o B em Todo o Lado" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Escolher o C em Todo o Lado" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Escolher A em Todos os Conflitos por Resolver" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Escolher B em Todos os Conflitos por Resolver" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Escolher C em Todos os Conflitos por Resolver" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Escolher A em Todos os Conflitos de Espaço em Branco por Resolver" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Escolher B em Todos os Conflitos de Espaço em Branco por Resolver" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Escolher C em Todos os Conflitos de Espaço em Branco por Resolver" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Número de conflitos por resolver: %1 (dos quais %2 são espaço em branco)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"O resultado foi modificado.\n" +"Se você continuar as suas alterações serão perdidas." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Todos os ficheiros de entrada são iguais a nível binário." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Todos os ficheiros de entrada contêm o mesmo texto." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Os ficheiros %1 e %2 são iguais a nível binário.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Os ficheiros %1 e %2 têm texto igual.\n" + +#: mergeresultwindow.cpp:1042 +#, fuzzy, kde-format +#| msgid "" +#| "Total number of conflicts: %1\n" +#| "Nr of automatically solved conflicts: %2\n" +#| "Nr of unsolved conflicts: %3\n" +#| "%4" +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Número total de conflitos: %1\n" +"Nº de conflitos resolvidos automaticamente: %2\n" +"Nº de conflitos não resolvidos: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflitos" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Nem todos os conflitos estão ainda resolvidos.\n" +"O ficheiro não foi gravado." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflitos Restantes" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Existe um conflito de fins de linha. Escolha por favor o estilo " +"manualmente.\n" +"O ficheiro não foi gravado." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"A criação de salvaguarda falhou. Ficheiro não gravado." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Erro na Gravação do Ficheiro" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Erro ao gravar." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Resultado:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Modificado]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codificação da gravação:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflito" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Codificação de A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Codificação de B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Codificação de C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Resultado (opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Ficheiro..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Trocar/Copiar os Nomes..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (Opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Um item de histórico da junção consiste em várias linhas.\n" +"Indique a expressão regular usada para detectar a primeira linha (sem o " +"comentário inicial).\n" +"Use os parêntesis para agrupar as chaves que deseja usar na ordenação.\n" +"Se for deixado em branco, o KDiff3 assume que as linhas em branco separar os " +"itens de histórico.\n" +"Veja a documentação para saber mais detalhes." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Cada um dos parêntesis usados na expressão regular no item inicial do " +"histórico\n" +"agrupa uma chave que poderá ser usada na ordenação.\n" +"Indique a lista de chaves (que são numeradas por ordem de ocorrência,\n" +"a começar no 1), usando o ',' como separador (p.ex., \"4,5,6,1,2,3,7\").\n" +"Se for deixado em branco, não será feita nenhuma ordenação.\n" +"Veja a documentação para saber mais detalhes." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"A expressão regular das linhas em que o KDiff3 deverá escolher " +"automaticamente uma origem.\n" +"Quando uma linha com um conflito corresponder à expressão regular então será " +"-\n" +"se disponível - o C, caso contrário será escolhido o B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"A expressão regular para o início do item de histórico da junção.\n" +"Normalmente, este valor contém a palavra-chave \"$Log$\".\n" +"Valor por omissão: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Vejam a bruxa da raposa Salta-Pocinhas\n" +"e o cão feliz que dorme regalado.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Modificar o Tipo de Letra" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Tipo de Letra: %1, %2, %3\n" +"\n" +"Exemplo:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Altere isto se os caracteres não-ASCII não são mostrados correctamente." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configurar" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Tipo de Letra" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Tipo de Letra do Resultado do Diff e do Editor" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Tipo de letra da aplicação" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Tipo de letra da área de ficheiros" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Cor" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Configuração das Cores" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Áreas do Editor e das Diferenças:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Cor principal:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Cor de fundo:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Cor de fundo das diferenças:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Cor A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Cor B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Cor C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Cor do conflito:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Cor de fundo do intervalo actual:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Cor de fundo da diferença do intervalo actual:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Cor dos intervalos de diferenças alinhados manualmente:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "Área de Comparação das Pastas:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Cor do ficheiro mais recente:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Se mudar esta cor, só fará efeito ao iniciar a próxima comparação de pastas." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Cor do ficheiro mais antigo:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Cor dos ficheiros intermédios:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Cor dos ficheiros em falta:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportamento do Editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "O Tab insere espaços" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Ligado: se carregar no Tab gera o número apropriado de espaços.\n" +"Desligado: será introduzido um carácter Tab." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tamanho das tabulações:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Indentação automática" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Ligado: A indentação da linha anterior é usada para uma nova linha.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Copiar automaticamente a selecção" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Ligado: Qualquer selecção é posta automaticamente na área de transferência.\n" +"Desligado: Você tem de copiar explicitamente, p.ex., com o Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Detecção Automática" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Escolhe os fins de linha para quando um ficheiro editado é gravado.\n" +"DOS/Windows: CR+LF; UNIX: LF; com CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diferenças" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Configuração das Diferenças" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignorar os números (tratar como espaços em branco)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignora os caracteres numéricos durante a fase de correspondência das linhas " +"(Semelhante ao Ignorar os Espaços).\n" +"Pode ajudar a comparar os ficheiros com dados numéricos." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignorar os comentários de C/C++ (tratar como espaços em branco)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tratar os comentários de C/C++ como espaço em branco." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignorar a capitalização (tratar como espaços em branco)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Tratar diferenças de capitalização como mudanças de espaço em branco. " +"('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Comando do pré-processador:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Pré-processamento definido pelo utilizador. (Veja a documentação para mais " +"detalhes)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Comando do pré-processador para a correspondência de linhas:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Este pré-processador só é usado na correspondência das linhas.\n" +"(Veja a documentação para mais detalhes)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Tentar com persistência (lento)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Activa a opção --minimal do 'diff' externo.\n" +"A análise dos ficheiros grandes será muito mais lenta." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Alinhar o B e o C para 3 ficheiros de entrada" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Tentar alinhar o B e o C ao comparar ou reunir três ficheiros de entrada.\n" +"Não é recomendado para a reunião, dado que esta se poderá tornar mais " +"complicada.\n" +"(Por omissão está desligada.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Junção" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Configuração da Junção" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Atraso no avanço automático (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Quando estiver no modo de Avanço Automático, o resultado da selecção actual " +"é mostrado durante o período indicado, antes de saltar para o próximo " +"conflito. Intervalo: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Mostrar as janelas informativas" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Mostrar uma janela com informações sobre o número de conflitos." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Junção de espaço em branco com 2 ficheiros:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Escolha Manual" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Permite ao algoritmo de junção escolher automaticamente o ficheiro a " +"utilizar para as alterações de apenas espaço em branco." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Junção de espaço em branco com 3 ficheiros:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Expressão Regular de Junção Automática" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Expressão regular de junção automática:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Executar a junção automática da expressão regular ao iniciar a junção" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Executa a junção para as expressões regulares de junção automática\n" +"imediatamente após o início de uma junção.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Junção do Histórico do Controlo de Versões" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Expressão regular do início do histórico:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Expressão regular do início do item de histórico:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ordenação da junção do histórico" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ordenar o histórico do controlo de versões por uma chave." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Ordem da chave de ordenação do início do item de histórico:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Juntar o histórico do controlo de versões ao iniciar a junção" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Executar a junção automática do histórico do controlo de versões ao iniciar " +"a junção." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Número máximo de itens do histórico:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Cortar ao fim do número indicado. Usar o -1 para um número infinito de " +"elementos." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Testar as suas expressões regulares" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Comando de junção irrelevante:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Se for indicado, este programa é executado após a junção automática,\n" +"quando não forem detectadas mais alterações relevantes.\n" +"É invocado com os parâmetros: ficheiro1 ficheiro2 ficheiro3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Gravar automaticamente e sair na junção sem conflitos" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Quando o KDiff3 foi iniciado para uma junção de ficheiros na linha de " +"comandos e todos os conflitos podem ser resolvidos sem interacção do " +"utilizador, então grava e sair automaticamente.\n" +"(Semelhante à opção da linha de comandos \"--auto\".)" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Pastas recursivas" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "Se se analisam as sub-pastas ou não." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Padrões de ficheiros:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Os padrões dos ficheiros a analisar.\n" +"Caracteres especiais: '*' e '?'\n" +"Podem ser indicados vários padrões usando o separador: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Anti-padrões de ficheiros:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Os padrões dos ficheiros a excluir da análise.\n" +"Caracteres especiais: '*' e '?'\n" +"Podem ser indicados vários padrões usando o separador: ';'" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Anti-padrões de ficheiros:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Os padrões dos ficheiros a excluir da análise.\n" +"Caracteres especiais: '*' e '?'\n" +"Podem ser indicados vários padrões usando o separador: ';'" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "Usar o .cvsignore" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Estende o anti-padrão para tudo o que seria ignorado pelo CVS.\n" +"Isto pode ser específico para cada pasta, através dos ficheiros '.cvsignore' " +"locais." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "Procurar os ficheiros e pastas escondidos" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Finds hidden files and directories." +msgid "Finds hidden files and folders." +msgstr "Procura os ficheiros e pastas escondidos." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Seguir as ligações de ficheiros" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Ligado: Compara o ficheiro para o qual a ligação aponta.\n" +"Desligado: Compara as ligações." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Seguir as ligações de ficheiros" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Ligado: Compara o ficheiro para o qual a ligação aponta.\n" +"Desligado: Compara as ligações." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Comparação de nomes de ficheiros com distinção de maiúsculas" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"A comparação de pastas irá comparar os ficheiros ou pastas quando os seus " +"nomes corresponderem.\n" +"Configure esta opção, no caso de os nomes terem mesmo de corresponder. (Por " +"omissão, no Windows, está desligada; caso contrário, está ligada.)" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold all subdirectories on load" +msgid "Unfold all subfolders on load" +msgstr "Expandir todas as sub-pastas ao carregar" + +#: optiondialog.cpp:1230 +#, fuzzy, kde-format +#| msgid "" +#| "On: Unfold all subdirectories when starting a directory diff.\n" +#| "Off: Leave subdirectories folded." +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Ligado: Expandir todas as sub-pastas ao iniciar uma diferença de pastas.\n" +"Desligado: Deixar as sub-pastas fechadas." + +#: optiondialog.cpp:1234 +#, fuzzy, kde-format +#| msgid "Skip directory status report" +msgid "Skip folder status report" +msgstr "Ignorar o relatório de estado da pasta" + +#: optiondialog.cpp:1238 +#, fuzzy, kde-format +#| msgid "" +#| "On: Do not show the Directory Comparison Status.\n" +#| "Off: Show the status dialog on start." +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Ligado: Não mostrar o Estado da Comparação de Pastas.\n" +"Desligado: Mostrar a janela de estado no início." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Modo de Comparação de Ficheiros" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Comparação binária" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Comparação binária de cada ficheiro. (Por omissão)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Análise completa" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Fazer uma análise completa e mostrar informações estatísticas em colunas " +"extra.\n" +"(Mais lento que a comparação binária, muito mais lento para ficheiros " +"binários.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Confiar no tamanho e data de modificação (inseguro)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumir que os ficheiros são iguais se a data de modificação e o tamanho do " +"ficheiro são iguais.\n" +"Os ficheiros com conteúdo igual mas datas de modificação diferentes irão " +"aparecer como diferentes.\n" +"Útil para as pastas grandes ou para redes lentas." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Confiar na data e tamanho, mas usar uma comparação binária se a data não " +"corresponder (inseguro)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumir que os ficheiros são iguais se a data de modificação e o tamanho do " +"ficheiro são iguais.\n" +"Se a data não for igual, mas os tamanhos forem, usar uma comparação " +"binária.\n" +"Útil para as pastas grandes ou para redes lentas." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Confiar no tamanho (inseguro)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Assumir que os ficheiros são iguais se o seu tamanho é igual.\n" +"Útil para as pastas grandes ou para redes lentas." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Sincronizar as pastas" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Oferece-se para armazenar os ficheiros em ambas as pastas\n" +"de modo a que ambas as pastas fiquem iguais no fim.\n" +"Funciona apenas ao comparar duas pastas sem indicar um destino." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Diferenças de espaço em branco consideradas iguais" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Se os ficheiros apenas diferem em espaço em branco considerá-los iguais.\n" +"Isto está activo apenas quando é escolhida a análise completa." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copiar o mais recente em vez de juntar (inseguro)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Do not look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Não analisa os ficheiros, selecciona apenas o ficheiro mais recente.\n" +"(Use isto apenas se souber o que está a fazer!)\n" +"Só faz efeito ao comparar duas pastas." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Salvaguarda dos ficheiros (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Quando um ficheiro for gravado por cima de um anterior, então o ficheiro\n" +"antigo será renomeado para uma extensão '.orig' em vez de ser removido." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Configuração Regional" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Utilizar a mesma codificação para tudo:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Active isto para permitir modificar todas as codificações alterando apenas a " +"primeira.\n" +"Torne inactivo se forem necessárias opções individuais." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Nota: A Codificação Local é \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Codificação do Ficheiro A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Se estiver activo, então será detectada a codificação Unicode (UTF-16 ou " +"UTF-8).\n" +"Se a codificação do ficheiro não for detectada, então será usada a " +"codificação seleccionada como alternativa.\n" +"(A detecção de Unicode depende dos primeiros 'bytes' de um ficheiro.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Auto-Detectar o Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Codificação do Ficheiro B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Codificação do Ficheiro C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Codificação do Ficheiro para Junção de Resultado e Gravação:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Selecção Automática" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Se estiver activada a opção, será usada a codificação dos ficheiros de " +"entrada.\n" +"Nos casos ambíguos, irá aparecer uma janela a perguntar ao utilizador qual a " +"codificação com que deseja gravar." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Codificação do Ficheiro dos Ficheiros de Pré-processador:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Língua da Direita para a Esquerda" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Algumas línguas são lidas da direita para esquerda.\n" +"Esta opção muda o visualizador e editor de acordo com elas." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integração" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Configuração da Integração" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opções da linha de comandos a ignorar:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Uma lista das opções da linha de comandos que deverão ser ignoradas, quando " +"o KDiff3 for usado por outras ferramentas.\n" +"Se desejar indicar vários valores, separe-os por ';'\n" +"Isto irá eliminar o erro de \"Opção desconhecida\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Sair também com a tecla Escape" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Um método rápido para sair.\n" +"Para os que estão habituados a usar a tecla Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Isto repõe todas as opções, não só as do tópico actual." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Comando do pré-processador: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "As seguintes opções que seleccionou podem alterar os dados:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"\n" +"Muito provavelmente isto não é desejável durante uma junção.\n" +"Quer desactivar estas configurações ou continuar com elas activas?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opção Insegura para Junção" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Usar Estas Opções Durante a Junção" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Desactivar Opções Inseguras" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A Carregar o A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "A Carregar o A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "A Carregar o B" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A: %1" +msgid "Loading B: %1" +msgstr "A Carregar o A: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diferenças: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Dif. Linhas: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "A Carregar o C" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A: %1" +msgid "Loading C: %1" +msgstr "A Carregar o A: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diferenças: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diferenças: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Dif. Linhas: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Dif. Linhas: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Todos os ficheiros de entrada contêm o mesmo texto, mas não são iguais a " +"nível binário." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Os ficheiros %1 e %2 têm texto igual, mas não são iguais a nível binário.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Alguns dos ficheiros de entrada não parecem ser ficheiros de texto puros.\n" +"Lembre-se que a junção do KDiff3 não foi pensada para os dados binários.\n" +"Continue por sua conta e risco." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Não foi possível converter alguns caracteres de entrada para Unicode " +"válido.\n" +"Poderá estar a usar a codificação errada (p.ex. UTF-8 para ficheiros não-" +"UTF-8).\n" +"Não grave o resultado se não tiver a certeza. Prossiga por sua conta e " +"risco.\n" +"Os ficheiros de entrada afectados estão em %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Interromper" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "A abrir os ficheiros..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "A cortar a selecção..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "A copiar a selecção para a área de transferência..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "A inserir o conteúdo da área de transferência..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Mudança de linha (o Cancelar desactiva a mudança de linha)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "A calcular a largura máxima para a barra de deslocamento horizontal" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Gravar e Continuar" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continuar sem Gravar" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Procura terminada." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Procura Terminada" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" +"Não está nada seleccionado em nenhuma janela de entrada das diferenças." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Erro ao adicionar o intervalo manual de diferenças" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancelar" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Trocar o %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copiar o %1->Resultado" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Trocar o %1<->Resultado" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configurar..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Open File" +msgid "Open Folder" +msgstr "Abrir um Ficheiro" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Seleccionar o Ficheiro de Resultado" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Texto da procura:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Distinguir capitalização" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Procurar A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Procurar B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Procurar C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Resultado da procura" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Procurar" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Teste de Expressões Regulares" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Linha de junção automática do exemplo:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Para um teste da junção automática, copie uma linha usada nos seus ficheiros." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultado correspondente:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Linha inicial do histórico do exemplo (com o comentário inicial):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copie uma linha inicial do histórico, como a usada nos seus ficheiros,\n" +"incluindo o comentário inicial." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Ordem da chave do histórico:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Linha inicial do item do histórico do exemplo (sem o comentário inicial):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copie uma linha inicial do item de histórico, como a usada nos seus " +"ficheiros,\n" +"mas omita o comentário inicial." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resultado da chave de ordenação:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Sucesso da correspondência." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "A correspondência falhou." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Os parêntesis de abertura e fecho não correspondem na expressão regular." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" +"A escrita de dados da área de transferência para o ficheiro temporário " +"falhou." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Da Área de Transferência" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "O %1 não é um ficheiro normal." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " O ficheiro temporário é: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"O pré-processamento possivelmente falhou. Verifique este comando:\n" +" %1\n" +"O comando de pré-processamento vai ser desactivado." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "O ficheiro %1 é demasiado grande para ser processado. Será ignorado." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"O pré-processamento com procura de linhas possivelmente falhou. Verifique " +"este comando:\n" +" %1\n" +"O comando de pré-processamento com procura de linhas vai ser desactivado." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Era esperado um espaço após as aspas de fecho." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Aspas não correspondidas." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Detectaram-se aspas inesperadas dentro do argumento." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Não foi indicado nenhum programa." \ No newline at end of file diff --git a/po/pt/kdiff3fileitemactionplugin.po b/po/pt/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..a99f3a5 --- /dev/null +++ b/po/pt/kdiff3fileitemactionplugin.po @@ -0,0 +1,109 @@ +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2018-06-10 18:56+0100\n" +"Last-Translator: José Nuno Coelho Pires \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POFile-SpellExtra: Eibl Joachim KDiff\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar com %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Reunir com %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Gravar '%1' para a posteridade" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Reunião a 3-níveis com a base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Comparar com..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Limpar a lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparação a 3 níveis" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Acerca do 'plugin' de menu do KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"'Plugin' de Acção sobre Itens de Ficheiros: Copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the context menu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare with...\" submenu. Then use \"Compare With\" " +#| "on the second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Usar a extensão do menu de contexto:\n" +"Para uma comparação simples entre dois ficheiros seleccionados, escolha " +"\"Comparar\".\n" +"Se o outro ficheiro estiver noutro lado qualquer, pode \"Gravar\" o primeiro " +"ficheiro para a posteridade. Irá depois aparecer no submenu \"Comparar Com..." +"\". Depois use o \"Comparar Com\" no segundo ficheiro.\n" +"Para uma junção a 3-níveis, pode \"Gravar\" o ficheiro de base, depois a " +"ramificação a reunir e escolher \"Junção 3-níveis com a base\" na outra " +"ramificação que será usada como destino.\n" +"O mesmo também se aplica à comparação e junção de pastas." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Acerca do 'Plugin' de Acção sobre Itens de Ficheiros do KDiff3" \ No newline at end of file diff --git a/po/pt_BR/diff_ext.po b/po/pt_BR/diff_ext.po new file mode 100644 index 0000000..a898b14 --- /dev/null +++ b/po/pt_BR/diff_ext.po @@ -0,0 +1,130 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Luiz Fernando Ranghetti , 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-05-06 13:53-0300\n" +"Last-Translator: Luiz Fernando Ranghetti \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_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-Generator: Lokalize 20.04.2\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar com %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Mesclar com %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Mesclar 3 níveis com a base" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Salvar '%1' para mais tarde" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Comparar com..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Limpar lista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Comparação em 3 níveis" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Sobre o Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Todos os direitos " +"reservados.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Este software é distribuído sob a licença BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Algumas extensões para o KDiff3 (c) 2006-2013 por Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Migrado para Qt5/Kf5 por Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Site do Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Sobre o Diff-Ext para KDiff3 (64 bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Comparar arquivos selecionados" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Comparar '%1' com '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Salvar '%1' para operação futura" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Não foi possível iniciar o KDiff3. Reinstale o KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Comando" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Linha de comando" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext para KDiff3" \ No newline at end of file diff --git a/po/pt_BR/kdiff3.po b/po/pt_BR/kdiff3.po new file mode 100644 index 0000000..3f57f45 --- /dev/null +++ b/po/pt_BR/kdiff3.po @@ -0,0 +1,3619 @@ +# Translation of kdiff3.po to Brazilian Portuguese +# Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2015 Free Software Foundation, Inc. +# +# Paulo Henrique Alkmin da Costa , 2003. +# Lisiane Sztoltz , 2003. +# Lisiane Sztoltz Teixeira , 2004. +# Diniz Fernando Bortolotto Ferreira , 2006. +# Diniz Bortolotto , 2006, 2007, 2008. +# André Marcelo Alvarenga , 2008, 2009, 2010, 2011, 2012, 2013, 2015, 2019. +# Luiz Fernando Ranghetti , 2009, 2018, 2019, 2020, 2021. +# Marcus Gama , 2011. +# Frederico Gonçalves Guimarães , 2019. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-16 16:07-0300\n" +"Last-Translator: Luiz Fernando Ranghetti \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_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-Generator: Lokalize 20.04.2\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" +"Diniz Bortolotto, Frederico Gonçalves Guimarães, André Marcelo Alvarenga, " +"Luiz Fernando Ranghetti" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" +"diniz.bortolotto@gmail.com, frederico@teia.bio.br, alvarenga@kde.org, " +"elchevive@opensuse.org" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Obtendo o status do arquivo: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Lendo o arquivo: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Gravando o arquivo: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Memória insuficiente" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Criando pasta: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Removendo pasta: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Removendo o arquivo: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Criando o link simbólico: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Renomeando o arquivo: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Copiando o arquivo: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Lendo pasta: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listando o diretório: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Erro de perda de dados:\n" +"Se for reproduzível, por favor, contate o autor.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Erro interno grave" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Erro interno grave." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Erro interno grave:" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Arquivo %1: Linha %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Arquivo %1: Linha não disponível" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codificação:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Estilo de fim de linha:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (base)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Codificação: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Estilo de fim de linha: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Linha superior" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Fim" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Abrir arquivo" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Outro" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copiar A para B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copiar B para A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Excluir A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Excluir B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Excluir A e B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Mesclar com A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Mesclar com B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Mesclar com A e B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Excluir (se existir)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Mesclar" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Mesclar (manual)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Erro: Tipos de arquivos conflitantes" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Erro: Alterado e excluído" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Erro: As datas são iguais, mas os arquivos não." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Concluído" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Erro" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Ignorado." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Não salvo." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Em progresso..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "A fazer." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Nome" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operação" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Não resolvido" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Resolvido" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Não em branco" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Em branco" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Você está neste momento fazendo uma mesclagem de pastas. Tem certeza que " +"deseja interromper a mesclagem e analisar a pasta novamente?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Aviso" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Reexaminar" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Continuar mesclando" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Falha ao abrir as pastas:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "A pasta A \"%1\" não existe ou não é uma pasta.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "A pasta B \"%1\" não existe ou não é uma pasta.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "A pasta C \"%1\" não existe ou não é uma pasta.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Erro ao abrir pasta" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"A pasta de destino não pode ser a mesma que A ou B quando são mesclados três " +"pastas.\n" +"Verifique novamente antes de continuar." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Aviso de parâmetro" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Pesquisando pastas..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Lendo pasta A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Lendo pasta B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Lendo pasta C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Algumas subpastas não eram legíveis" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Verifique as permissões das subpastas." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Pronto." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Status da comparação de pastas\n" +"\n" +"Número de subpastas: %1\n" +"Número de arquivos iguais: %2\n" +"Número de arquivos diferentes: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Número de mesclagens manuais: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Isto afeta todas as operações de mesclagem." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Alterando todas as operações de mesclagem" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Processando %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Não foi possível processar alguns arquivos." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Cancelando devido a muitos erros." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Esta operação não é possível no momento." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operação impossível" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Ocorreu um erro durante a cópia." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Erro na mesclagem" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Operação de mesclagem desconhecida. (Isto nunca deveria acontecer!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Operação de mesclagem desconhecida." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"A mesclagem está prestes a começar.\n" +"\n" +"Escolha \"Fazer\" caso tenha lido as instruções e saiba o que está fazendo.\n" +"Escolha \"Simular\" para saber o que será feito.\n" +"\n" +"Saiba que esse programa ainda está em fase beta, e NÃO HÁ GARANTIA alguma! " +"Faça backups dos seus dados!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Iniciando mesclagem" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Fazer" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simular" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"O item selecionado tem um tipo diferente nas diferentes pastas. Selecione o " +"que fazer." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"As datas de modificação do arquivo são iguais, mas os arquivos não. " +"Selecione o que fazer." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"O item selecionado foi alterado em uma pasta e removido em outra. Selecione " +"o que fazer." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Esta operação não é possível no momento porque uma mesclagem de pastas está " +"em execução." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Ocorreu um erro no último passo.\n" +"Você quer continuar com o item que causou o erro ou prefere ignorá-lo?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Continuar mesclagem após um erro" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Continuar com o último item" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Ignorar item" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operação de mesclagem completa." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Mesclagem completa" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"A simulação de mesclagem está completa: Verifique se concorda com as " +"operações propostas." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Ocorreu um erro. Pressione OK para ver informações detalhadas." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Erro ao tentar excluir %1: Não foi possível criar o backup." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "apagar pasta recursivamente( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "excluir( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Erro: A operação de remoção de pasta falhou quando tentava ler a pasta." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Erro: Não foi possível efetuar a operação rmdir( %1 )." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Erro: Não foi possível efetuar a exclusão." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "mesclagem manual( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Nota: Após uma mesclagem manual o usuário deve continuar, pressionando " +"F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Erro: Não foi possível copiar( %1 -> %2 ). Não foi possível excluir o " +"destino existente." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Erro: Não foi possível efetuar o copyLink: Links remotas ainda não são " +"suportadas." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Erro: Não foi possível efetuar o copyLink." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copiar( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Erro durante a renomeação( %1 -> %2 ): Não foi possível excluir o destino " +"existente." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "renomear( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Erro: Não foi possível renomear." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Erro durante makeDir de %1. Não foi possível excluir o arquivo existente." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Erro ao criar pasta." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Pasta" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tipo" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Tam." + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrib." + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Última modificação" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destino-Link" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Arquivo" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Link" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "não disponível" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest.): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (base): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest.): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest.): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest.: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Salvar o estado da mesclagem de pasta como..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Iniciar/continuar mesclagem de pastas" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Executar operação para o item atual" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Comparar arquivo selecionado" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Mesclar arquivo atual" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Mesclar\n" +"arquivo" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Fechar todas as subpastas" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Expandir todas as subpastas" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Selecionar A para todos os itens" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Selecionar B para todos os itens" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Selecionar C para todos os itens" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Escolher automaticamente a operação para todos os itens" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Nenhuma operação para todos os itens" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Exibir arquivos idênticos" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Arquivos\n" +"idênticos" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Exibir arquivos diferentes" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Mostrar arquivos somente em A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Arquivos\n" +"somente em A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Mostrar arquivos somente em B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Arquivos\n" +"somente em B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Mostrar arquivos somente em C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Arquivos\n" +"somente em C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Comparar arquivos selecionados explicitamente" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Mesclar arquivos selecionados explicitamente" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Não fazer nada" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Excluir A e B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Mesclar com A e B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" +"Não foi possível determinar a URL completa. Não foi indicada a URL-mãe." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Não foi possível ler o arquivo: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Não foi possível criar a cópia temporária de %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Não foi possível acessar %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Erro durante a leitura de %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Ao tentar fazer o backup, não foi possível excluir um backup anterior.\n" +"Nome do arquivo: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Ao tentar fazer o backup, não foi possível renomear.\n" +"Nomes dos arquivos: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configuração atual:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Erro na opção de configuração:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"A opção --auto foi usada, mas não foi especificado nenhum arquivo de saída." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "A opção --auto é ignorada para comparação de pastas." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Não foi possível salvar." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Não foi possível abrir esses arquivos:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Erro ao abrir o arquivo" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Abre documentos para comparação..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Recarregar" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Salvar o resultado da mesclagem. Todos os conflitos precisam ser resolvidos!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Salvar o documento atual como..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Imprimir as diferenças" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Sair do aplicativo" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Corta a seção selecionada e a coloca na área de transferência" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copia a seção selecionada para a área de transferência" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Cola o conteúdo da área de transferência na posição atual" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Seleciona tudo na janela atual" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Pesquisa um texto" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Pesquisa novamente o texto" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Habilita/desabilita a barra de status" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configurar o KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Ir para o delta atual" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Delta\n" +"atual" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Ir para o primeiro delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Primeiro\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Ir para o último delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Último\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Ignora as diferenças de espaço em branco quando \"Mostrar espaços em branco" +"\" está desativado.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Não ignora as diferenças de espaço em branco quando \"Mostrar espaços em " +"branco\" está desativado.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Ir para o delta anterior" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Delta\n" +"anterior" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Ir para o próximo delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Próximo\n" +"delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Ir para o conflito anterior" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflito\n" +"anterior" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Ir para o próximo conflito" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Próximo\n" +"conflito" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Ir para o conflito não resolvido anterior" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Não resolvido\n" +"anterior" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Ir para o próximo conflito não resolvido" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Próximo\n" +"não resolvido" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Selecionar linha(s) de A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Escolher\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Selecionar linha(s) de B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Escolher\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Selecione linha(s) de C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Escolher\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Ir automaticamente para o próximo conflito não resolvido após seleção da " +"fonte" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Próximo\n" +"automático" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Exibir caracteres de espaço e tabulação" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Caracteres\n" +"em branco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Exibir espaço em branco" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Deltas\n" +"em branco" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Exibir números de linha" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Números\n" +"de linha" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Resolver conflitos simples automaticamente" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Definir deltas para conflitos" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Executar mesclagem automática com expressões regulares" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Resolver conflitos de histórico automaticamente" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Separar diferenças ao selecionar" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Reunir diferenças selecionadas" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Exibir janela A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Exibir janela B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Exibir janela C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Visão normal" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Visão A vs. B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Visão A vs. C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Visão B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Quebrar linhas nas exibições de diferenças" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Adicionar alinhamento manual de diferenças" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Limpar todos os alinhamentos manuais de diferenças" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Focar na próxima janela" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Focar na janela anterior" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Alternar a orientação da separação" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Janela dividida de pasta e texto" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Alternar entre visualização de pasta e texto" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "O resultado da mesclagem não foi salvo." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Salvar e sair" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Sair sem salvar" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Não foi possível salvar o resultado da mesclagem." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Você está fazendo uma mesclagem de pastas. Tem certeza de que deseja " +"cancelar?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Salvando o arquivo..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Salvando arquivo com um novo nome..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Salvar como..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "A impressão não está implementada." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Imprimindo..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Imprimindo página %1 de %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (seleção)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Impressão concluída." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Impressão cancelada." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Saindo..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Alternando barra de ferramentas..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Alternar barra de status..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Um KPart para exibir imagens SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Configurar o KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Não foi possível inicializar o componente KDiff3.\n" +"Isso normalmente acontece devido a um problema na instalação. Leia o arquivo " +"README no pacote de fontes para detalhes." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Arquivo" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "&Pasta" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operação de mesclagem do item atual" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operação de sincronismo do item atual" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "M&ovimento" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Visão das d&iferenças" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "M&esclar" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Janela" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Barra de ferramentas principal" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorado. (Definido pelo usuário.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Ferramenta para comparação e mesclagem de arquivos e pastas" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves Conversão para KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Mesclar a entrada." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Arquivo base explícito. Para compatibilidade com certas ferramentas." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Arquivo de saída. Implica -m. Ex.: -o novoarquivo.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" +"Arquivo de saída, novamente. (Para compatibilidade com certas ferramentas.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Sem interface se todos os conflitos são resolvidos automaticamente. " +"(Necessita -o arquivo)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignorar --auto e sempre mostrar a interface." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorado." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Substituição do nome visível para o arquivo de entrada 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Substituição do nome visível para o arquivo de entrada 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Substituição do nome visível para o arquivo de entrada 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Substituição alternativa do nome visível. Forneça um para cada entrada." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Substitui uma opção de configuração. Use uma vez para cada opção. Ex.: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Mostra uma lista das opções de configuração e os valores atuais." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Usar um arquivo de configuração diferente." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "arquivo 1 a abrir (base, se não especificado via --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "arquivo 2 a abrir" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "arquivo 3 a abrir" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Veja kdiff3 --help para opções suportadas." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" +"Não é possível comparar um arquivo fora do normal com um arquivo normal." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mistura de links e arquivos normais." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Link: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Tamanho. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Data e tamanho: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Comparando arquivo..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Escolher A para tudo" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Escolher B para tudo" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Escolher C para tudo" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Escolha A em todos os conflitos não resolvidos" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Escolha B em todos os conflitos não resolvidos" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Escolha C em todos os conflitos não resolvidos" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Escolha A em todos os conflitos de espaço em branco não resolvidos" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Escolha B em todos os conflitos de espaço em branco não resolvidos" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Escolha C em todos os conflitos de espaço em branco não resolvidos" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Número de conflitos ainda não resolvidos: %1 (dos quais %2 são espaços em " +"branco)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"A saída foi modificada.\n" +"Se você continuar suas alterações serão perdidas." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Todos os arquivos de entrada são iguais em nível binário." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Todos os arquivos de entrada contém o mesmo texto." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Os arquivos %1 e %2 são iguais em nível binário.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Arquivos %1 e %2 possuem texto igual.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Número total de conflitos: %1\n" +"Número de conflitos resolvidos automaticamente: %2\n" +"Número de conflitos não resolvidos: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Conflitos" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Nem todos os conflitos foram resolvidos.\n" +"O arquivo não foi salvo." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Conflitos restantes" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Existe um conflito de estilo de fim de linha. Escolha o estilo manualmente.\n" +"O arquivo não foi salvo." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Não foi possível criar o backup. O arquivo não foi salvo." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Erro ao salvar o arquivo" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Erro durante a escrita." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Saída:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[modificado]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Codificação para o salvamento:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Conflito" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Codificação de A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Codificação de B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Codificação de C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Janela" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (base):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Saída (opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Arquivo..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Trocar/copiar nomes..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (opcional):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Pasta..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Uma entrada do histórico de controle de versões consiste de várias linhas\n" +"Especifique a expressão regular usada para detectar a primeira linha (sem o " +"comentário inicial).\n" +"Use parênteses para agrupar as chaves que deseja usar na ordenação.\n" +"Se for deixado em branco, o KDiff3 assume que as linhas em branco separam as " +"entradas do histórico.\n" +"Veja a documentação para detalhes." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Cada par de parênteses usados na expressão regular para a entrada do\n" +"início do histórico agrupa uma chave que poderá ser usada na ordenação.\n" +"Indique a lista de chaves (que são numeradas por ordem de ocorrência,\n" +"começando com 1), usando ',' como separador (ex. \"4,5,6,1,2,3,7\").\n" +"Se deixado em branco, nenhuma ordenação será efetuada.\n" +"Veja a documentação para detalhes." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"A expressão regular para linhas em que o KDiff3 deverá escolher " +"automaticamente uma origem.\n" +"Quando uma linha com um conflito corresponder à expressão regular então\n" +"- se possível - será C, caso contrário B será escolhido." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Expressão regular para o início da entrada de histórico do controle de " +"versões.\n" +"Normalmente este valor contém a palavra-chave \"$Log$\".\n" +"Valor padrão: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Yuri viu um pequeno jabuti xereta e dez\n" +"cegonhas felizes comendo kiwi.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Alterar fonte" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Fonte: %1, %2, %3\n" +"\n" +"Exemplo:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Altere isso se caracteres não ASCII estiverem sendo exibidos incorretamente." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configurar" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Fonte" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Fonte do editor e do resultado das diferenças" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Fonte do aplicativo" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Fonte da visualização de arquivo" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Cor" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Configuração das cores" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editor e visualização das diferenças:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Cor do primeiro plano:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Cor do plano de fundo:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Cor do plano de fundo das diferenças:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Cor A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Cor B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Cor C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Cor do conflito:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Cor de fundo do intervalo atual:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Cor de fundo do intervalo de diferença atual:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Cor dos intervalos de diferenças alinhados manualmente:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Área de comparação de pasta:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Cor do arquivo mais recente:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Mudar esta cor, só terá efeito quando iniciar a próxima comparação de pasta." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Cor do arquivo mais antigo:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Cor dos arquivos de tempo intermediário:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Cor dos arquivos faltantes:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportamento do editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab insere espaços" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Ligado: Ao pressionar Tab será gerado o número apropriado de espaços.\n" +"Desligado: Será inserido um caractere de Tab." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tamanho da tabulação:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Endentação automática" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Ligado: A endentação da linha anterior é usada para uma nova linha.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Copiar a seleção automaticamente" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Ligado: Qualquer seleção é enviada imediatamente para a Área de " +"Transferência.\n" +"Desligado: Você deve copiar explicitamente, por exemplo, via Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Detectar automaticamente" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Define os finais de linha para quando um arquivo editado for salvo.\n" +"DOS/Windows: CR+LF; Unix: LF; com CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Configurações do Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignorar números (tratar como espaço em branco)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignorar caracteres numéricos durante fase de correspondência de linhas " +"(similar a ignorar espaços em branco).\n" +"Pode ajudar a comparar arquivos com dados numéricos." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignorar comentários C/C++ (tratar como espaço em branco)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Trata comentários C/C++ como espaços em branco." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignorar maiúsculas/minúsculas (tratar como espaço em branco)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Trata diferenças entre maiúsculas/minúsculas como alterações de espaço em " +"branco ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Comando do pré-processamento:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Pré-processamento definido pelo usuário. (Veja a documentação para detalhes)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Comando de pré-processamento para correspondência de linhas:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Esse pré-processamento é usado somente durante correspondência de linhas.\n" +"(Veja a documentação para detalhes)." + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Tentar com persistência (lento)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Habilita a opção --minimal para o diff externo.\n" +"A análise dos arquivos grandes será muito mais lenta." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Alinhar B e C para 3 arquivos de entrada" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Tenta alinhar o B e o C ao comparar ou mesclar três arquivos de entrada.\n" +"Não é recomendado para mesclar porque isto pode ser mais complicado.\n" +"(Desativado por padrão)." + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Mesclar" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Configurações de mesclagem" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Atraso no avanço automático (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Quando estiver no modo de avanço automático, o resultado da seleção atual é " +"exibido\n" +"durante o período indicado, antes de avançar para o próximo conflito. " +"Intervalo: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Exibir janela de informação" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Exibe uma janela com informações sobre o número de conflitos." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Mesclagem padrão de 2 arquivos com espaços em branco:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Escolha manual" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Permite que o algoritmo de mesclagem selecione automaticamente uma entrada " +"para alterações somente em espaços em branco." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Mesclagem padrão de 3 arquivos com espaços em branco:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Expressão regular de mesclagem automática" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Expressão regular de mesclagem automática:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Executar a mesclagem automática via expressão regular ao iniciar a mesclagem" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Executa a mesclagem automática usando expressões regulares\n" +"imediatamente após o início da mesclagem.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Mesclagem do histórico de controle de versões" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Expressão regular do início do histórico:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Expressão regular do início da entrada do histórico:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Ordenação da mesclagem do histórico" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ordena o histórico do controle de versões por uma chave." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Ordem da chave de ordenação do início da entrada do histórico:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Mesclar o histórico do controle de versões ao iniciar a mesclagem" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Executa a mesclagem automática do histórico de controle de versões ao " +"iniciar a mesclagem." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Número máximo de entradas do histórico:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Remove após o número indicado. Usar -1 para um número infinito de entradas." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Testar suas expressões regulares" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Comando de mesclagem irrelevante:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Caso seja especificado, este script é executado após a mesclagem\n" +"automática quando nenhuma outra alteração relevante for detectada.\n" +"É executado com os parâmetros: arquivo1 arquivo2 arquivo3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Salvar e sair automaticamente na mesclagem sem conflitos" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Caso o KDiff3 seja iniciado para uma mesclagem de arquivo a partir da linha\n" +"de comando e todos os conflitos possam ser resolvidos sem interação do\n" +"usuário, então o arquivo será automaticamente salve e o programa encerrado.\n" +"(Semelhante à opção de linha de comando \"--auto\")." + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Pastas recursivas" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Decide analisar subpastas ou não." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Padrão(ões) de arquivos:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Padrão(ões) de arquivos a serem analisados.\n" +"Caracteres curinga: '*' e '?'\n" +"Vários padrões podem ser especificados usando o separador: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Anti-padrão(ões) de arquivos:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Padrão(ões) de arquivos a serem excluídos da análise.\n" +"Caracteres curinga: '*' e '?'\n" +"Vários padrões podem ser especificados usando o separador: ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Anti-padrão(ões) de pastas:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Padrão(ões) de pastas a excluir da análise.\n" +"Caracteres especiais: '*' e '?'\n" +"Podem ser indicados vários padrões usando o separador: ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Usar arquivo ignorar" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Estende o anti-padrão para qualquer coisa que possa ser ignorada pelo " +"controle da fonte.\n" +"Isso pode ser especificado por pasta, via arquivos ignorar locais." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Encontrar arquivos e pastas ocultos" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Encontra arquivos e pastas ocultos." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Seguir os links dos arquivos" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Ligado: Compara o arquivo para o qual o link aponta.\n" +"Desligado: Compara os links." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Seguir as ligações de pasta" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Ligado: Compara a pasta para o qual a ligação aponta.\n" +"Desligado: Compara as ligações." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Distinguir maiúsculas/minúsculas na comparação de nomes de arquivos" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"A comparação de pastas irá comparar os arquivos ou pastas quando os seus " +"nomes corresponderem.\n" +"Configure esta opção se a caixa dos nomes deve corresponder. (O padrão para " +"Windows é desligada; caso contrário ligada.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Expandir todas as subpastas ao carregar" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Ligado: Expande todas as subpastas ao iniciar um diff de pasta.\n" +"Desligado: Deixa as pastas contraídas." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Ignorar o relatório de status de pasta" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Ligado: Não exibe o status de comparação de pastas\n" +"Desligado: Exite a janela de status ao iniciar." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Modo de comparação de arquivo" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Comparação binária" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Comparação binária de cada arquivo. (Padrão)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Análise completa" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Faz uma análise completa e exibe informações estatísticas em colunas extra.\n" +"(Mais lento que a comparação binária, muito mais lento para arquivos " +"binários.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Confiar no tamanho e na data de modificação (inseguro)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumir que os arquivos são iguais se a data de modificação e o tamanho do " +"arquivo são iguais.\n" +"Arquivos com conteúdos iguais mas datas de modificação diferentes irão " +"aparecer como diferentes.\n" +"Útil para pastas grandes ou redes lentas." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Confiar no tamanho e na data, mas usar comparação binária se a data não " +"corresponder (inseguro)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Assumir que os arquivos são iguais se a data de modificação e o tamanho do " +"arquivo são iguais.\n" +"Se a data não é igual mas os tamanhos são, usar comparação binária.\n" +"Útil para pastas grandes ou redes lentas." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Confiar no tamanho (inseguro)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Assumir que os arquivos são iguais se o seu tamanho é igual.\n" +"Útil para pastas grandes ou para redes lentas quando a data é modificada " +"durante o download." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Sincronizar pastas" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Oferece-se para armazenar arquivos em ambas pastas\n" +"de modo que ambos fiquem iguais no fim.\n" +"Funciona apenas ao comparar duas pastas sem indicar um destino." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Considerar iguais as diferenças por espaço em branco" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Considera iguais os arquivos que diferem apenas por espaço em branco.\n" +"Isto está ativo somente quando é escolhida a análise completa." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Copiar o mais novo ao invés de mesclar (inseguro)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Não analisa, apenas utiliza o arquivo mais novo.\n" +"(Use somente se você souber o que está fazendo!)\n" +"Só é efetivo ao comparar duas pastas." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Fazer backup dos arquivos (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Se for salvar um arquivo sobre um mais antigo, o arquivo antigo\n" +"será renomeado com uma extensão '.orig' ao invés de ser excluído." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Configurações regionais" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Utilizar a mesma codificação para tudo:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Habilite isso para configurar todas as codificações alterando apenas a " +"primeira.\n" +"Desative se forem necessárias configurações individuais." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Nota: A codificação local é \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Codificação de arquivo para A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Se estiver ativada, a codificação Unicode (UTF-16 ou UTF-8) será detectada.\n" +"Se o arquivo não for Unicode então a codificação selecionada será usada como " +"alternativa.\n" +"(A detecção de Unicode depende dos primeiros bytes de um arquivo)." + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Detectar automaticamente o unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Codificação de arquivo para B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Codificação de arquivo para C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Codificação de arquivo para saída e salvamento da mesclagem:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Seleção automática" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Se estiver ativada, será usada a codificação dos arquivos de entrada.\n" +"Em casos ambíguos, será pedido ao usuário que escolha a codificação para " +"salvamento." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Codificação dos arquivos de pré-processamento:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Idioma da direita para a esquerda" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Alguns idiomas são lidos da direita para esquerda.\n" +"Esta opção muda o visualizador e editor apropriadamente." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integração" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Configuração de integração" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Opções da linha de comando a ignorar:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Uma lista das opções da linha de comando que deverão ser ignoradas, quando o " +"KDiff3 for usado por outras ferramentas.\n" +"Se desejar indicar vários valores, separe-os por ';'\n" +"Isto irá eliminar o erro de \"Opção desconhecida\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Sair também com a tecla ESC" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Um método rápido para sair.\n" +"Para os que estão acostumados a usar a tecla ESC." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Reinicia todas as opções. Não somente as desse tópico." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Comando do pré-processador: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" +"A(s) seguinte(s) opção(ões) que você selecionou podem modificar os dados:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Muito provavelmente isso não é desejável durante uma mesclagem.\n" +"Deseja desabilitar essas configurações ou continuar com elas ativas?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opção insegura para mesclagem" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Usar essas opções durante a mesclagem" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Desativar opções inseguras" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Carregando A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Carregando A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Carregando B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Carregando B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "LineDiff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Carregando C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Carregando C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "LineDiff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "LineDiff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Todos os arquivos de entrada contém o mesmo texto, mas não são iguais em " +"nível binário." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Os arquivos %1 e %2 contém o mesmo texto, mas não são iguais em nível " +"binário.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Alguns arquivos de entrada não parecem ser de texto puro.\n" +"Note que a mesclagem do KDiff3 não foi pensada para dados binários.\n" +"Continue por sua conta e risco." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Alguns caracteres de entrada não puderam ser convertidos para unicode " +"válido.\n" +"Você pode estar usando o codificador errado (ex. UTF-8 para arquivos não\n" +"UTF-8).\n" +"Não salve o resultado se não tiver certeza. Continue por sua conta e risco.\n" +"Os arquivos de entrada afetados estão em %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Cancelar" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Abrindo arquivos..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Recortando a seleção..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Copiando a seleção para a área de transferência..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Inserindo o conteúdo da área de transferência..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Quebra de palavra (Cancelar desabilita a quebra de palavra)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Calculando a largura máxima para a barra de rolagem" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Salvar && Continuar" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Continuar sem salvar" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Pesquisa finalizada." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Pesquisa finalizada" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Nada foi selecionado em nenhuma janela de entrada de diferenças." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Erro ao adicionar o intervalo manual de diferenças" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Cancelar" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Trocar %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Copiar %1->saída" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Trocar %1<->saída" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configurar..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Abrir pasta" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Selecionar arquivo de saída" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "tudo/todos os arquivos (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Pesquisar texto:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Diferenciar maiúsculas de minúsculas" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Pesquisar A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Pesquisar B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Pesquisar C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Resultado da pesquisa" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Pesquisar" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Testador de expressões regulares" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Exemplo de linha de mesclagem automática:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Para testar a mesclagem automática, copie uma linha usada nos seus arquivos." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Resultado correspondente:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Exemplo de linha inicial do histórico (com o comentário inicial):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Copie uma linha inicial do histórico, como a usada nos seus arquivos,\n" +"incluindo o comentário inicial." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Ordem da chave de ordenação do histórico:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" +"Exemplo da linha inicial da entrada do histórico (sem o comentário inicial):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Copie uma linha inicial de entrada de histórico, como a usada nos seus " +"arquivos,\n" +"mas omita o comentário inicial." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Resultado da chave de ordenação:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Sucesso na correspondência." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Falha na correspondência." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" +"Os parênteses de abertura e fechamento não correspondem na expressão regular." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" +"Não foi possível gravar os dados da área de transferência para o arquivo " +"temporário." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Da área de transferência" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 não é um arquivo normal." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " O arquivo temporário é: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"O pré-processamento provavelmente falhou. Verifique esse comando:\n" +"\n" +" %1\n" +"\n" +"O comando de pré-processamento será desabilitado agora." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "O arquivo %1 é muito grande pra ser processado. Ignorando-o." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"O pré-processamento de correspondência de linhas possivelmente falhou. " +"Verifique esse comando:\n" +"\n" +" %1\n" +"\n" +"O comando de pré-processamento de correspondência de linhas será " +"desabilitado." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Era esperado um espaço após o apóstrofo final." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Apóstrofo não fechado." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Apóstrofo inesperado dentro do argumento." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Não foi especificado nenhum programa." \ No newline at end of file diff --git a/po/pt_BR/kdiff3fileitemactionplugin.po b/po/pt_BR/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..d2b8a45 --- /dev/null +++ b/po/pt_BR/kdiff3fileitemactionplugin.po @@ -0,0 +1,106 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Marcus Gama , 2011. +# André Marcelo Alvarenga , 2011. +# Luiz Fernando Ranghetti , 2018, 2019, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-16 16:04-0300\n" +"Last-Translator: Luiz Fernando Ranghetti \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.04.2\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Comparar com %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Mesclar com %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Salvar '%1' para mais tarde" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Mesclar 3 níveis com a base" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Comparar com..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Limpar a lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Comparar" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Comparação em 3 níveis" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Sobre o plugin de menu do KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Plugin de ação de item de arquivo do KDiff3: Copyright (C) 2011 Joachim " +"Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Usar a extensão do menu de contexto:\n" +"Para uma comparação simples entre dois arquivos selecionados, escolha " +"\"Comparar\".\n" +"Se o outro arquivo estiver em outro local qualquer, você pode \"Salvar\" o " +"primeiro arquivo para usar mais tarde. Irá depois aparecer no submenu " +"\"Comparar com ...\". Depois use o \"Comparar com\" no segundo arquivo.\n" +"Para uma mesclagem em 3 níveis, você pode \"Salvar\" o arquivo de base, " +"depois a ramificação a mesclar e selecionar \"Mesclar 3 níveis com a base\" " +"na outra ramificação que será usada como destino.\n" +"O mesmo também se aplica à comparação e mesclagem de pastas." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Sobre o plugin de ação sobre itens de arquivos do KDiff3" \ No newline at end of file diff --git a/po/ro/kdiff3.po b/po/ro/kdiff3.po new file mode 100644 index 0000000..e8492f4 --- /dev/null +++ b/po/ro/kdiff3.po @@ -0,0 +1,3394 @@ +# +# Claudiu Costin , 2003. +# Sergiu Bivol , 2008, 2009, 2012, 2021. +# Ovidiu-Florin Bogdan , 2017. +msgid "" +msgstr "" +"Project-Id-Version: @PACKAGE\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-05-15 15:37+0100\n" +"Last-Translator: Sergiu Bivol \n" +"Language-Team: Romanian\n" +"Language: ro\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==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" +"X-Generator: Lokalize 19.12.3\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Sergiu Bivol,Ovidiu-Florin Bogdan" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sergiu@cip.md,ovidiu.b13@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Se obține starea fișierului: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Se citește fișierul: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Se scrie fișierul: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Memorie insuficientă" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Se creează dosarul: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Se elimină dosarul: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Se elimină fișierul: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Se creează legătura simbolică: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Se redenumește fișierul: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Se copiază fișierul: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Se citește dosarul: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Se enumeră dosarul: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Eroare de pierdere a datelor:\n" +"Dacă este reproductibilă, vă rugăm contactați autorul.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Fișier %1: Linie %2" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "indisponibil" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Codare:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base): " +msgid "A (Base)" +msgstr "A (Bază): " + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Prima linie" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Sfârșit" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Deschide fișier" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicod, 8 biți" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Alta" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Copiază A în B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Copiază B în A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Șterge A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Șterge B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Șterge A și B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Îmbină cu A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Îmbină cu B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Îmbină cu A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Șterge (dacă există)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Îmbină" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Îmbină (manual)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Gata" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Eroare" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Omis." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Nesalvat." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "În curs..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "De făcut." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Denumire" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operație" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stare" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Nesoluționat" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Soluționat" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Alb" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Avertisment" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Recitire" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Deschiderea directoarelor a eșuat:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Directorul A „%1” nu există sau nu este un director.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Directorul B „%1” nu există sau nu este un director.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Directorul C „%1” nu există sau nu este un director.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Eroare la deschiderea fișierului" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Avertizare parametru" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Scanare directoare..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Se citește fișierul: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Se citește fișierul: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Se citește fișierul: %1" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Verificați permisiunile subdirectoarelor." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Gata." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Numărul de îmbinări manuale:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Aceasta afectează toate operațiile de îmbinare." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Procesare " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Această operație nu este posibilă momentan." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operație imposibilă" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "A intervenit o eroare în timpul copierii.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Eroare de îmbinare" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Execută" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulează" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "This operation is currently not possible." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "Această operație nu este posibilă momentan." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, fuzzy, kde-format +msgid "delete( %1 )" +msgstr "Ș&terge" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, fuzzy, kde-format +msgid "copy( %1 -> %2 )" +msgstr "C&opiază" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, fuzzy, kde-format +msgid "rename( %1 -> %2 )" +msgstr "&Redenumire" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Eroare la crearea directorului." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Dest" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tip" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Dimensiune" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrib" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Ultima modificare" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Destinație-legătură" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Fișier" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +msgid "-Link" +msgstr "Legătură" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "indisponibil" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Dest): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Bază): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Dest): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Dest): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Dest: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Compară fișierul ales" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Arată fișiere identice" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Fișiere\n" +"identice" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Arată fișiere diferite" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Nu fă nimic" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Se citește fișierul: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Saving failed." +msgid "Opening %1 failed. %2" +msgstr "Salvarea a eșuat." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Eroare la citirea din %1" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Configurație actuală:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Eroare opțiune de configurare:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Opțiunea --auto utilizată, dar niciun fișier de ieșire specificat." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "Opțiunea --auto ignorată pentru compararea directoarelor." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Salvarea a eșuat." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Deschiderea acestor fișiere a eșuat:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, fuzzy, kde-format +msgid "File open error" +msgstr "Eroare la deschiderea fișierului" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Deschide documente pentru comparare..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Reîncarcă" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Salvează rezultatul îmbinării. Toate conflictele trebuiesc rezolvate!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Salvează documentul actual ca..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Tipărește diferențele" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Iese din aplicație" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Taie secțiunea selectată și o pune în clipboard" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Copiază secțiunea selectată în clipboard" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "Lipește conținutul clipboard-ului la poziția curentă" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Selectează tot din fereastra curentă" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Caută un șir" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Activează/dezactivează bara de stare" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Configurare KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Delta\n" +"actuală" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Mergi la prima delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Prima\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Mergi la ultima delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Ultima\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Mergi la delta precedentă" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Delta\n" +"prec." + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Mergi la delta următoare" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Delta\n" +"următ." + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Mergi la conflictul precedent" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Conflict\n" +"precedent" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Mergi la conflictul următor" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Conflict\n" +"următor" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Mergi la conflictul nerezolvat precedent" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Nerezolvat\n" +"precedent" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Mergi la conflictul nerezolvat următor" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Nerezolvat\n" +"următor" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Alege liniile din A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Alege\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Alege liniile din B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Alege\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Alege liniile din C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Alege\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Mergi automat la următorul conflict nerezolvat după alegerea sursei" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Următor\n" +"automat" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Arată caracterele de spațiere și tabulare pentru diferențe" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Caractere\n" +"albe" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Arată spațiile albe" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Delta\n" +"albe" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Arată numerele liniilor" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Numere\n" +"de linii" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Rezolvă automat conflictele simple" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Stabilește deltele la conflicte" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Desparte Diff la selecție" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Arată fereastra A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Arată fereastra B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Arată fereastra C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Sumar normal" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Sumar A vs. B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Sumar A vs. C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Sumar B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Focalizează fereastra următoare" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Focalizează fereastra precedentă" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Comută orientarea despărțirii" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Rezultatul îmbinării nu a fost salvat." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Salvează și ieși" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Ieși fără a salva" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Salvarea rezultatului îmbinării a eșuat." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Salvare fișier..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Se salvează fișierul cu un nume nou..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Salvare ca..." + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +#| msgid "Printing completed." +msgid "Printing not implemented." +msgstr "Tipărire încheiată" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Se tipărește..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Selecție" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Tipărire încheiată" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Tipărire abandonată." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Ieșire..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Se comută bara de unelte..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Se comută bara de stare..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, fuzzy, kde-format +msgid "&KDiff3" +msgstr "KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +#| msgid "Configure KDiff3..." +msgid "Configure KDiff3" +msgstr "Configurare KDiff3..." + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "&Fișier" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Îmbină" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Fereastră" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Bara de unelte principală" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +msgid "Ignored." +msgstr "Ignorat" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "fișier2 de deschis" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "fișier3 de deschis" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, fuzzy, kde-format +msgid "Link: " +msgstr "Legătură" + +#: MergeFileInfos.cpp:421 +#, fuzzy, kde-format +msgid "Size. " +msgstr "Mărime " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Alege A peste tot" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Alege B peste tot" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Alege C peste tot" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Alege A pentru toate conflictele nerezolvate" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Alege B pentru toate conflictele nerezolvate" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Alege C pentru toate conflictele nerezolvate" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Alege A pentru toate conflictele de spațiu alb nerezolvate" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Alege B pentru toate conflictele de spațiu alb nerezolvate" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Alege C pentru toate conflictele de spațiu alb nerezolvate" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, fuzzy, kde-format +msgid "Conflicts" +msgstr "conflicte" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +msgid "Output:" +msgstr "Rezultat" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, fuzzy, kde-format +msgid "[Modified]" +msgstr "Modificat" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +msgid "Conflict" +msgstr "conflicte" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fișier..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicod" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Configurează" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Font" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Culoare" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Culoare prim-plan:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Culoare fundal:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Culoare A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Culoare B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Culoare C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Culoare conflict:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Comportament editor" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, fuzzy, kde-format +msgid "Tab size:" +msgstr "Mărime &TAB:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Fereastră" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Selectare automată" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Îmbină" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Alegere manuală" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Sincronizează dosare" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Configurări regionale" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Selectare automată" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading A: %1" +msgstr "Se citește fișierul: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading B: %1" +msgstr "Se citește fișierul: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading C: %1" +msgstr "Se citește fișierul: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Abandonează" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Tai selecția..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Copiez selecția în clipboard..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Inserez conținutul clipboard-ului..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Renunță" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, fuzzy, kde-format +msgid "Swap %1<->%2" +msgstr " Swap: %1 / %2 " + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Configurare..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open Folder" +msgstr "Fișier" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Căutare text:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Sensibil la registru" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Caută A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Caută B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Caută C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Caută în ieșire" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Caută" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Scrierea datelor din clipboard în fișierul temporar a eșuat." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Din clipboard" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Preprocesarea probabil a eșuat. Verificați această comandă:\n" +"\n" +" %1\n" +"\n" +"Comanda de preprocesare va fi dezactivată acum." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Preprocesarea de potrivire a liniilor probabil a eșuat. Verificați această " +"comandă:\n" +"\n" +" %1\n" +"\n" +"Comanda preprocesoare de potrivire a liniilor va fi dezactivată acum." + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Se așteaptă un spațiu după închiderea apostrofului." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Apostrof neașteptat în argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Nu s-a specificat un program." \ No newline at end of file diff --git a/po/ro/kdiff3fileitemactionplugin.po b/po/ro/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..4577bd2 --- /dev/null +++ b/po/ro/kdiff3fileitemactionplugin.po @@ -0,0 +1,121 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sergiu Bivol , 2014. +# Ovidiu-Florin Bogdan , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2017-08-04 00:36+0200\n" +"Last-Translator: Ovidiu-Florin Bogdan \n" +"Language-Team: Romanian \n" +"Language: ro\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==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" + +#: kdiff3fileitemaction.cpp:81 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3 ..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Compară cu %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Îmbină cu %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Salvează „%1” pentru mai târziu" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Combină în 3 cu bază" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Compară cu ..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Curăță lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Compară" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Compară în 3" + +#: kdiff3fileitemaction.cpp:162 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "Despre extensia de meniu KDiff3 ..." + +#: kdiff3fileitemaction.cpp:270 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Extensia de acțiune pe fișier KDiff3: Drept de autor (C) 2011 Joachim Eibl\n" +"Pagina web KDiff3: http://kdiff3.sourceforge.net\n" +"\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Utilizarea extensiei meniului de context:\n" +"Pentru simpla comparare a două fișiere selectate alegeți „Compară”.\n" +"Dacă celălalt fișier este în altă parte, „Salvează” primul fișier pentru mai " +"târziu și va apărea în submeniul „Compară cu ...”. Apoi folosiți „Compară " +"cu ...” pe al doilea fișier.\n" +"Pentru o îmbinare în 3, prima dată „Salvează” fișierul de bază, apoi ramura " +"de îmbinat, iar apoi pe ramura destinație alegeți „Îmbinare în 3 cu baza”.\n" +"La fel se procerează și cu comparații sau îmbinări de directoare." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Despre Extensia de acțiune pe fișier KDiff3" \ No newline at end of file diff --git a/po/ru/diff_ext.po b/po/ru/diff_ext.po new file mode 100644 index 0000000..9127c5e --- /dev/null +++ b/po/ru/diff_ext.po @@ -0,0 +1,129 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# Alexander Yavorsky , 2020. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2020-04-29 11:18+0300\n" +"Last-Translator: Alexander Yavorsky \n" +"Language-Team: Russian \n" +"Language: ru\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" +"X-Generator: Lokalize 20.04.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Сравнить с %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Объединить с %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Трёхстороннее объединение с основным файлом" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Отложить на потом «%1»" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Сравнить с..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Очистить список" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Трёхстороннее сравнение" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "" + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "" + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "" \ No newline at end of file diff --git a/po/ru/kdiff3.po b/po/ru/kdiff3.po new file mode 100644 index 0000000..dbb9ea2 --- /dev/null +++ b/po/ru/kdiff3.po @@ -0,0 +1,3739 @@ +# KDE3 - kdiff3.pot Russian translation. +# KDE3 - kdeextragear-1/kdiff3.po Russian translation. +# Nick Shaforostoff , 2004-2005, 2009, 2010. +# Alexander Potashev , 2010, 2018. +# Vladimir Lomov , 2010. +# Yury G. Kudryashov , 2012. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2018-08-24 03:46+0300\n" +"Last-Translator: Alexander Potashev \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 2.0\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" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Владимир Ломов" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "irk.translator@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Получение состояния файла: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Чтение файла: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Запись в файл: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Не хватает памяти" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Создание папки: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Удаление файла: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Удаление файла: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Создание символической ссылки: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Переименование файла: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Копирование файла: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Чтение файла: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Вывод содержимого папки: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Ошибка с потерей данных:\n" +"Если ошибка постоянно повторяется свяжитесь с автором.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Серьёзная внутренняя ошибка" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Серьёзная внутренняя ошибка" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Серьёзная внутренняя ошибка" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "Строка недоступна" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Кодировка:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Тип перевода строки:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (исходное):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Кодировка:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Тип перевода строки:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Первая строка" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Конец" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Открытие файлов..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 бит" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Копировать A в B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Копировать B в A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Удалить A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Удалить B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Удалить A и B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Объединить в A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Объединить в B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Объединить в A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Удалить (если существует)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Объединить" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Объединить (вручную)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Ошибка: несовместимые типы файлов" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Ошибка: изменено или удалено" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Ошибка: время совпадает, а содержимое файлов — нет." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Готово." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Ошибка" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Пропущено." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Не сохранено." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Идёт работа..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Осталось сделать." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Имя" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Действие" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Состояние" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Неразрешённый" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Разрешённый" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Чёрный" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Белый" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Сейчас программа работает в режиме объединения папок. Вы действительно " +"хотите отменить все изменения и обновить содержание папок?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Предупреждение" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Обновить" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Продолжить" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Не удалось открыть папки:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Папка A «%1» не существует или это не папка.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Папка B «%1» не существует или это не папка.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Папка C «%1» не существует или это не папка.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Ошибка открытия файлов" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Путь к конечной папке не должен совпадать с A или B при объединении трёх " +"папок.\n" +"Проверьте снова, прежде чем продолжить." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Неправильный параметр" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "Сканирование папок..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Чтение файла: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Чтение файла: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Чтение файла: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Не удалось прочитать некоторые подпапки в" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Проверьте права доступа к этим подпапкам." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Готово." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Количество объединений вручную:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Это влияет на все объединения" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Изменение всех объединений" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Обработка " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Эта операция сейчас недоступна." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Операция недоступна" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Ошибка копирования.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Ошибка объединения" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Неизвестное объединение. (Этого не должно быть!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Неизвестное объединение." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Сейчас начнётся объединения.\n" +"\n" +"Нажмите «Выполнить» после прочтения инструкций и знаете что вы делаете.\n" +"Нажмите «Имитировать» чтобы увидеть, что должно произойти.\n" +"\n" +"Мы предупреждаем, что эта программа всё ещё имеет бета статус и не " +"предоставляем никаких ГАРАНТИЙ! Делайте резервные копии ваших важных данных!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Начало объединения" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Выполнить" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Имитировать" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Выделенный объект имеет разные типы в разных папках. Выберите, что делать." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Даты последнего изменения файлов одинаковы, но содержимое — нет. Выберите, " +"что делать." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item was changed in one directory and deleted in the " +#| "other. Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Выделенный файл был изменён в одной папке и удалён в другой. Выберите, что " +"делать." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Эта операция сейчас недоступна, поскольку выполняется объединение папок." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"На предыдущем этапе произошла ошибка.\n" +"Вы хотите продолжить с объектом, который вызвал ошибку, или пропустить этот " +"объект?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Продолжить объединение после ошибки" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Продолжить с последнего объекта" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Пропустить объект" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Объединение завершено." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Объединение завершено" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Имитирование объединение завершено. Вы согласны с предлагаемыми изменениями?" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "Произошла ошибка. Нажмите OK для подробностей.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Ошибка: удаление %1: не удалось создать резервную копию." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "удалить папку рекурсивно (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "удалить( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Ошибка: не удалось удалить папку при попытке прочитать эту папку." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Ошибка: операция rmdir( %1 ) завершилась с ошибкой." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Ошибка: не удалось удалить." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "объединение вручную( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr " После завершения объединения вручную нажмите F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Ошибка: операция copy(%1 -> %2) завершилась с ошибкой. Не удалось удалить " +"существующее назначение." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 ) скопировать ссылку" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Ошибка: операция copyLink завершилась с ошибкой: удалённые ссылки не " +"поддерживаются." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Ошибка операция copyLink (копирование ссылки) завершилась с ошибкой." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copy( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Ошибка при выполнении rename( %1 -> %2 ). Не удалось удалить существующее " +"назначение." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rename( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Ошибка: не удалось переименовать." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Не удалось создать папку %1. Не удалось удалить существующий файл." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Не удалось создать папку." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Назначение" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Тип" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Размер" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Атрибуты" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Последнее изменение" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Объект ссылки" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Файл" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Ссылка: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "недоступно" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (назначение): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (исходное): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (назначение): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (назначение): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Назначение: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +#| msgid "Save Directory Merge State As..." +msgid "Save Folder Merge State As..." +msgstr "Сохранить состояние объединения папок как..." + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Начать/продолжить объединение папок" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Выполнить операцию для выбранного объекта" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Сравнить выделенный файл" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Объединить текущий файл" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Объединить\n" +"файл" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Свернуть все подпапки" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Развернуть все подпапки" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Выбрать A для всех" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Выбрать B для всех" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Выбрать C для всех" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Автоматически выбирать тип действия для всех" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Убрать действия для всех" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Показать идентичные файлы" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Идентичные\n" +"файлы" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Показать разные файлы" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Показать файлы только в A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Файлы\n" +"только в A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Показать файлы только в B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Файлы\n" +"только в B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Показать файлы только в C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Файлы\n" +"только в C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Сравнить только выделенные файлы" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Объединить только выделенные файлы" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ничего" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Удалить A и B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Объединить в A и B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Чтение файла: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Не удалось создать временную копию %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Не удалось открыть %1." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Ошибка чтения из %1" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Не удалось удалить старую резервную копию. \n" +"Файл: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Не удалось выполнить переименование. \n" +"Файлы: " + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Текущие настройки:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Ошибка параметра настройки:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Ключ --auto использован, но не указаны выходные файлы." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "Ключ --auto игнорируется при сравнении папок." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Не удалось произвести сохранение." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Не удалось открыть файлы:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Ошибка открытия файла" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Открыть файлы для сравнения..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Обновить" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Сохранить результат объединения. Все конфликты должны быть разрешены!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Сохранить с другим именем..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Распечатать отличия" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Выйти" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Вырезать в буфер обмена" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Скопировать в буфер обмена" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Вставить из буфера обмена" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Выделить всё в текущем окне" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Искать текст" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Продолжить поиск текста" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Отобразить/скрыть панель состояния" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Настроить KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Перейти к текущему различию" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Текущее\n" +"различие" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Перейти к первому различию" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Первое\n" +"различие" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Перейти к последнему различию" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Последнее\n" +"различие" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Пропускать отличия в пустых промежутках, когда «Отображать пустые " +"промежутки» выключено.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Не пропускать отличия в пустых промежутках, даже когда «Отображать пустые " +"промежутки» выключено.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Перейти к предыдущему различию" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Предыдущее\n" +"различие" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Перейти к следующему различию" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Следующее\n" +"различие" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Перейти к предыдущему конфликту" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Предыдущий\n" +"конфликт" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Перейти к следующему конфликту" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Следующий\n" +"конфликт" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Перейти к предыдущему неразрешённому конфликту" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Предыдущий\n" +"неразрешённый" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Перейти к следующему неразрешённому конфликту" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Следующий\n" +"неразрешённый" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Выбрать строки из A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Выбрать\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Выбрать строки из B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Выбрать\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Выбрать строки из C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Выбрать\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Переходить к следующему неразрешённому конфликту после выделения исходника" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Автоматически\n" +"следующий" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Отображать пробелы и табуляции в различиях" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Пустые\n" +"промежутки" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Отображать пустые промежутки" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Пустые\n" +"различия" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Отображать номера строк" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Номера\n" +"строк" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Разрешать простые конфликты автоматически" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Определить различия как конфликты" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Запустить автоматическое объединение на основе регулярного выражения" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Разрешать конфликты истории автоматически" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Разделить Diff по выделению" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Сгруппировать выделенные Diff" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Отобразить окно A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Отобразить окно B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Отобразить окно C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Обычный обзор " + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Обзор A vs. B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Обзор A vs. C " + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Обзор B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Перенос по словам в окнах Diff" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Добавить вручную выравнивание Diff" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Убрать все выравнивания Diff" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Активировать следующее окно" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Активировать предыдущее окно" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Поменять ориентация разделения" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "Режим папки/текст" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Папки/текст" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Результат объединения не сохранён" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Сохранить и выйти" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Выйти без сохранения" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Не удалось сохранить результат объединения" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Остановить объединение папок?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Сохранение файла..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Сохранение файла с новым именем..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Сохранить как..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Печать не поддерживается." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Печать..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Выбор" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Печать завершена." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Печать прервана." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Выход..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Отображение/скрытие панели инструментов..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Отображение/скрытие панели состояния..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Настроить KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, fuzzy, kde-format +#| msgid "" +#| "Could not initialize the KDiff part.\n" +#| "This usually happens due to an installation problem. Please read the " +#| "README-file in the source package for details." +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Невозможно инициализировать KDiff часть.\n" +"Такая ситуация обычно возникает из-за проблем в установке. Подробности можно " +"найти в файле README в пакете исходных файлов." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Файл" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Операция слияния для выбранного объекта" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Операция синхронизации для выбранного объекта" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Перемещение" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iff" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Объединить" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Окно" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Главная панель инструментов" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Пропущено. (Определено пользователем.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +#| msgid "Tool for Comparison and Merge of Files and Directories" +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Инструмент для сравнения и объединения файлов и папок" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Объединить ввод." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Явный основной файл. Для совместимости с некоторыми программами." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Выходной файл. Подразумевает наличие -m. Например: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Выходной файл, снова. (Для совместимости с некоторыми программами.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Не выводить графический интерфейс если все конфликты удалось разрешить " +"автоматически. (требуется -o файл)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "Игнорировать" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Замена видимого названия для входного файла 1 (основной)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Замена видимого названия для входного файла 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Замена видимого названия для входного файла 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Альтернативная замена видимого названия. Использовать для каждого входного " +"файла." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Перезаписать настраиваемый параметр. Использовать один раз для любого " +"параметра. Например: --cs \"autoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Показать список настраиваемых параметров и их текущие значения." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Использовать другой файл настроек." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "файл1 открыть (основной, если не указан посредством --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "файл2 открыть" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "файл3 открыть" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Совмещение ссылок и обычных файлов" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Ссылка: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Размер. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Дата и размер: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Сравнивание файла..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Выбрать A везде" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Выбрать B везде" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Выбрать C везде" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Выбрать A для всех неразрешённых конфликтов" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Выбрать B для всех неразрешённых конфликтов" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Выбрать C для всех неразрешённых конфликтов" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Выбрать A для всех неразрешённых конфликтов пустых промежутков" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Выбрать B для всех неразрешённых конфликтов пустых промежутков" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Выбрать C для всех неразрешённых конфликтов пустых промежутков" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" +"Осталось неразрешённых конфликтов: %1 (%2 из которых — конфликты пустых " +"промежутков)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Вывод был изменён.\n" +"Если вы продолжите, изменения будут утеряны." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Все входные файлы одинаковы на двоичном уровне." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Все входные файлы содержат одинаковый текст." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Файлы %1 и %2 одинаковы на двоичном уровне.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Файлы %1 и %2 содержат одинаковый текст. \n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Конфликты" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<Нет строки>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<Конфликт объединения (пустые промежутки)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<Конфликт объединения>" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Не все конфликты разрешены.\n" +"Файл не сохранён.\n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Осталось конфликтов" + +#: mergeresultwindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Конфликт в типе перевода строки. Пожалуйста, выберите тип перевода строки " +"вручную.\n" +"Файл не сохранён.\n" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Не удалось создать резервную копию. Файл не сохранён." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Ошибка сохранения файла" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Ошибка записи" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Вывод" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Изменён]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Кодировка для сохранения" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Конфликт" + +#: mergeresultwindow.cpp:3247 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Кодировать из" + +#: mergeresultwindow.cpp:3249 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Кодировать из" + +#: mergeresultwindow.cpp:3251 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Кодировать из" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (исходное):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "Вывод (необязательно):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Файл..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Поменять/копировать названия ..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "С (необязательно):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Пункт истории системы контроля версий состоит из нескольких строк.\n" +"Введите регулярное выражение чтобы обнаружить первую строку (без комментария " +"в начале).\n" +"Используйте скобки чтобы группировать ключи, которые вы хотите использовать " +"для сортировки.\n" +"Если оставить пустым, то KDiff3 предполагает, что пустые строки отделяют " +"пункты истории.\n" +"Подробности см. в документации." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Каждая пара скобок, используемая в регулярном выражении для пункта начала " +"истории группирует ключ, который можно использовать для сортировки.\n" +"Укажите список ключей (который занумерованы в порядке появления\n" +"начиная с 1) используя «,» как разделитель (например, «4,5,6,1,2,3,7»).\n" +"Если оставить пустым, то сортировка производится не будет.\n" +"Подробности см. в документации." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Регулярное выражение для строк, где KDiff3 должен автоматически выбирать " +"один источник.\n" +"Когда строка с конфликтом соответствует регулярному выражению, тогда,\n" +"если доступно, будет выбрано C, иначе — B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Регулярное выражение для начала пункта истории системы контроля версий.\n" +"Обычно эта строка содержит ключевое слово «$Log$».\n" +"Значение по умолчанию: «.*\\$Log.*\\$.*»" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Измените кодировку, если не ASCII символы не отображаются корректно." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Настроить" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Шрифт" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Шрифт редактора и вывода различий" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Ошибка сохранения файла" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Цвет" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Настройки цвета" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Вид окна редактора и различий" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Цвет текста:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Цвет фона:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Цвет фона различий:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Цвет A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Цвет B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Цвет C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Цвет конфликтов:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Текущий промежуток цветов фона:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Текущий промежуток цветов цветов фона различий:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Цвет для вручную выравненных промежутков различий:" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +#| msgid "Directory Comparison View:" +msgid "Folder Comparison View:" +msgstr "Вид окна сравнения папок:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Цвет самых новых файлов:" + +#: optiondialog.cpp:726 +#, fuzzy, kde-format +#| msgid "" +#| "Changing this color will only be effective when starting the next " +#| "directory comparison." +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Изменение этого цвета будет иметь силу, только когда начнётся следующее " +"сравнение папок." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Цвет самых старых файлов:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Цвет файлов среднего возраста:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Цвет для отсутствующих файлов:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Редактор" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Поведение редактора" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Заменять табуляцию пробелами" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Вкл: нажатие Tab вставляет необходимое количество пробелов.\n" +"Выкл: будет вставлен символ Tab." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Табуляция:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Проставлять отступы автоматически" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Вкл: отступы предыдущей строки будут использованы для новой строки.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Копировать выделение в буфер обмена автоматически" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Вкл: любое выделение сразу же записывается в буфер обмена.\n" +"Выкл: вы должны явно скопировать, например, с помощью Ctrl-C." + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "&Окно" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Auto Select" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Копировать выделение в буфер обмена автоматически" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Устанавливает перевод строки при сохранении редактируемого файла.\n" +"DOS/Windows: CR+LF; UNIX: LF; здесь CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Настройки сравнения и объединения" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Обрабатывать как пробелы." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Пропускать цифры в процессе соответствия строк. (Похоже на Пропускать " +"пробелы.)\n" +"Может помочь при сравнении файлов с численными данными." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Обрабатывать комментарии C/C++ как пробелы." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Обрабатывать комментарии C/C++ как пробелы." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Обрабатывать как пробелы." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Обрабатывать различие в регистре как изменения в пробелах. («a»<=>«A»)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Предварительная команда:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Предварительная обработка, определяемая пользователем (для подробностей см. " +"документацию)." + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Предварительная команда для сравнения строк:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Этот предобработчик используется только во время процесса соответствия " +"строк.\n" +"(Подробности см. в документации)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Задействовать все алгоритмы (медленно)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Включить опцию --minimal для внешних программ diff.\n" +"Анализ больших файлов будет намного медленнее." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Выравнять B и C для 3 входных файлов" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Попробовать выровнять B и C при сравнении или объединении трёх входных " +"файлов.\n" +"Не рекомендуется для объединения, поскольку может усложнить процесс.\n" +"(По умолчанию выключено)" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Объединить" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Настройки объединения" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Задержка перед переходом, мс:" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Показывать результат текущего выбора на некоторое время, а затем переходить " +"к следующему конфликту. Диапазон: 0..2000 мс" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Отображать информационные окна" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Отображать окно с информацией о количестве конфликтов." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Пустые промежутки при объединении двух файлов:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Выбор вручную" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Позволить алгоритму объединения автоматически выбирать входной для изменений " +"только с пробелами." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Пустые промежутки при объединении трёх файлов:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Регулярное выражение автоматического объединения" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Регулярное выражения автоматического объединения:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Запустить автоматическое объединение по регулярному выражению в начале " +"процесса объединения" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Запустить объединение для автоматически объединяемых регулярных выражений\n" +"сразу же после начала процесса объединения.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Объединение истории системы контроля версий" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Регулярное выражения начала истории:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Регулярное выражения начала пункта истории." + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Сортировка объединения истории" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Сортировать историю системы контроля версий по ключу." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Порядок ключей сортировки начала пункта истории" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" +"Объединить историю системы контроля версий в начале процесса объединения." + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Запустить автоматическое объединение истории системы контроля версий в " +"начале процесса объединения." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Максимальное количество пунктов истории:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Вырезать начиная с указанного числа. Используйте -1 для всех пунктов истории." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Проверка ваших регулярных выражений" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Ошибочная команда объединения:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Если указано, этот скрипт запускается после автоматического объединения\n" +"когда не обнаружены другие относящие к делу изменения.\n" +"Запускается с параметрами: файл1 файл2 файл3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Автоматически сохранить и выйти, при объединении без конфликтов" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Если KDiff3 был запущен из командной строки и все\n" +"конфликты разрешимы без участия пользователя, тогда автоматически сохранить " +"и выйти.\n" +"(Подобно опции командной строки «--auto».)" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "Рекурсивно по папкам" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "Нужно ли анализировать подпапки." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Маски файлов:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Маска(и) файлов, выбираемых для анализа. \n" +"Шаблоны: «*» и «?»\n" +"Несколько масок можно указать, используя разделитель: «;»" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Пропускать файлы по маске:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Маска(и) файлов, которые исключаются из анализа. \n" +"Шаблоны: «*» и «?»\n" +"Несколько масок можно указать, используя разделитель «;»" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "Пропускать файлы по маске:" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Маска(и) файлов, которые исключаются из анализа. \n" +"Шаблоны: «*» и «?»\n" +"Несколько масок можно указать, используя разделитель «;»" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr "Использовать .cvsignore" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\" files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Расширить пропуск по маске на все типы, которые могут быть пропущены CVS.\n" +"Посредством локальных файлов «.cvsignore», правила могут меняться от папки к " +"папке." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "Учитывать скрытые файлы и папки" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "Учитывать скрытые файлы и папки" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Следовать по ссылкам на файлы" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Вкл: Сравнивать файл, на который ссылка указывает.\n" +"Выкл: Сравнивать ссылки." + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "Следовать по ссылкам на файлы" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Вкл: Сравнивать файл, на который ссылка указывает.\n" +"Выкл: Сравнивать ссылки." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Сравнение имён файлов и учётом регистра" + +#: optiondialog.cpp:1222 +#, fuzzy, kde-format +#| msgid "" +#| "The directory comparison will compare files or directories when their " +#| "names match.\n" +#| "Set this option if the case of the names must match. (Default for Windows " +#| "is off, otherwise on.)" +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Сравнение папок сравнивает файлы или папки, если их названия соответствуют. " +"Включите этот параметр, если регистр названий должен соответствовать. (По " +"умолчанию на Windows Выкл, иначе Вкл.)" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "Исключая все подкаталоги" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Режим сравнивания файлов" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Бинарное сравнение" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Бинарное сравнение каждого файла (по умолчанию)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Полный анализ" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Провести полный анализ и показать статистическую информацию в дополнительных " +"столбцах.\n" +"(Медленнее чем двоичное сравнение, намного медленнее для двоичных файлов.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Сравнивать по размеру и дате изменения (неточно)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "Files with equal contents but different modification dates will appear as " +#| "different.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Считать файлы одинаковыми, если время изменения и размер совпадают.\n" +"Файлы с одинаковым содержанием, но разными датами изменения будут " +"отображаться как разные.\n" +"Полезно для больших папок или медленных сетей." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Сравнивать по размеру и дате, но использовать двоичное сравнение, если даты " +"не совпадают (неточно)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if the modification date and file length are " +#| "equal.\n" +#| "If the dates are not equal but the sizes are, use binary comparison.\n" +#| "Useful for big directories or slow networks." +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Считать файлы одинаковыми, если время изменения и размер совпадают.\n" +"Если даты не совпадают, а размеры совпадают, использовать двоичное " +"сравнение.\n" +"Полезно для больших папок или медленных сетей." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Сравнивать по размеру (неточно)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Считать файлы одинаковыми, если их размеры совпадают.\n" +"Полезно для больших папок или медленных сетей, когда дата изменяется во " +"время скачивания." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "Синхронизировать папки" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Позволяет сохранить файлы в обеих папках, так что\n" +"обе папки будут одинаковы.\n" +"Работает только при сравнении двух папок без указания назначения." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Отличия в пробелах рассматриваются одинаково" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Если файлы отличаются только пробелами, рассматривать их как одинаковые.\n" +"Эта опция Вкл только если выбран полный анализ." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Принимать сразу новые файлы вместо объединения (небезопасно)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Не сравнивай, просто возьми самый новый файл.\n" +"(Используйте только если вы знаете, что вы делаете!)\n" +"Имеет силу при сравнении двух каталогов." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Сохранить резервные копии (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Если файл будет сохранён поверх старого, то старых файл\n" +"будет переименован с расширением «.orig» вместо его удаления." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Региональные настройки" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Использовать ту же самую кодировку для остальных:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Включая эту опцию позволяет изменить все кодировки изменяя только первую.\n" +"Выключите эту опцию, если нужны различные индивидуальные настройки." + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Примечание: локальная кодировка — " + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Кодировка файла A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Если включено, то Unicode кодировка (UTF-16 или UTF-8) будет обнаружена.\n" +"Если файл не в Unicode, тогда выбранная кодировка будет использована как " +"кодировка по умолчанию.\n" +"(Определение Unicode зависит от первых байтов файла.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Автоматическое обнаружение Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Кодировка файла B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Кодировка файла C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Кодировка для объединения и сохранения:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Копировать выделение в буфер обмена автоматически" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Если опция включена, то используется кодировка из входных файлов.\n" +"В случаях затруднений появится окно с выбором кодировки для сохранения." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Кодировка препроцессора:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Язык справа налево" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Некоторые языки читаются справа налево.\n" +"Эта опция изменяет просмотр и редактор соответственно." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Действие" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Региональные настройки" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Пропускаемые опции командной строки:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Список опций командной строки, которые должны быть пропущены, когда KDiff3 " +"используется другими инструментами.\n" +"Можно указать несколько значений, разделив символом «;»\n" +"Эта опция будет подавлять ошибку «Неизвестная опция»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Выход также по клавише Escape" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Быстрый способ выйти.\n" +"Для тех, что привык использовать клавишу Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Это сбросит абсолютно все параметры, а не только текущей вкладки." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Предварительная команда:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Следующие опции, которые вы выбрали, могут изменить данные:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Скорее всего этого не нужно в процессе объединения.\n" +"Вы хотите отключить эти параметры или продолжить с включенными этими " +"параметрами?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Опция небезопасна для объединения" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Использовать эти опции в процессе объединения" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Отключить небезопасные" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Загрузка A" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Загрузка A" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Загрузка B" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "Загрузка A" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Различие: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Построчное сравнение: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Загрузка C" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "Загрузка A" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Различие: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Различие: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Построчное сравнение: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Построчное сравнение: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Все входные файлы содержат одинаковый текст, но двоично не совпадают." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Файлы %1 и %2 имеют одинаковый текст, но двоично не совпадают.\n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Кажется некоторые входные файлы не являются чисто текстовыми.\n" +"Заметим, что объединение в KDiff3 не предназначено для двоичных данных.\n" +"Продолжайте на свой страх и риск." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Не удалось перевести некоторые символы входного файла в корректные символы " +"юникод.\n" +"Возможно, вы используете неправильную кодировку (напр., UTF-8 для файла не в " +"UTF-8).\n" +"Не сохраняйте результат, если не уверены. Продолжайте на свой страх и риск.\n" +"Сообщение касается файлов в %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Стоп" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Открытие файлов..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Вырезание в буфер обмена..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Копирование в буфер обмена..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Вставка из буфера обмена..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Сохранить и продолжить" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Продолжить без сохранения" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Поиск завершён." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Поиск завершён" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ничего не выбрано ни в одном из входных окон diff." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Ошибка при добавлении вручную заданной области diff" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Отмена" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Поменять %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Копировать %1->Вывод" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Поменять %1<->Вывод" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Настроить..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "Открытие файлов..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Найти:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "С учётом регистра" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Поиск в A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Поиск в B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Поиск в C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Поиск в выводе" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Искать" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Проверка регулярного выражения" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Образец автоматически объединяемая строка:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Чтобы опробовать автоматическое объединение, скопируйте строку из ваших " +"файлов." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Результат соответствия:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Образец строка начала истории (с комментарием в начале):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Скопируйте строку начала истории из ваших файлов,\n" +"включая комментарий в начале." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Порядок сортировки ключей истории:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Образец начало строки пункта истории (без комментария в начале):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Скопируйте начало строки пункта истории из ваших файлов, но без комментария " +"в начале." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Результат сортировки ключей:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Соответствие найдено." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Соответствие не найдено." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Открывающие и закрывающие скобки не парные в регулярном выражении." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Не удалось записать данные из буфера обмена во временный файл." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Из буфера обмена" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Совмещение ссылок и обычных файлов" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Возможная ошибка при предобработки. Проверьте эту команду:\n" +"\n" +" %1\n" +"\n" +"Команда предобработки будет отключена." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Возможная ошибка при предобработки строко ориентированного соответствия. " +"Проверьте эту команду:\n" +"\n" +" %1\n" +"\n" +"Команда предобработки строко-ориентированного соответствия будет отключена." + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Ожидался пробел после закрывающего апострофа." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Не указана программа." \ No newline at end of file diff --git a/po/ru/kdiff3fileitemactionplugin.po b/po/ru/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..0fbff03 --- /dev/null +++ b/po/ru/kdiff3fileitemactionplugin.po @@ -0,0 +1,107 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Yuri Efremov , 2011. +# Alexander Potashev , 2011, 2019. +# Alexander Yavorsky , 2022. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2022-06-18 09:59+0300\n" +"Last-Translator: Alexander Yavorsky \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.08.3\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" +"X-Environment: kde\n" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Сравнить с %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Объединить с %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Отложить на потом «%1»" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Трёхстороннее объединение с основным файлом" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Сравнить с..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Очистить список" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Сравнить" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Трёхстороннее сравнение" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "О модуле меню KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "Модуль меню действий с файлами KDiff3: © Joachim Eibl, 2011\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Использование расширения контекстного меню:\n" +"Для простого сравнения двух выбранных файлов выберите пункт «Сравнить».\n" +"Если файлы находятся в разных каталогах, то следует «Сохранить» первый файл. " +"Тогда он появится в подменю «Сравнить с...». Воспользуйтесь этим пунктом " +"подменю на втором файле.\n" +"Для трёхстороннего объединения сначала следует «Сохранить» основной файл, " +"затем на другом файле выбрать «Трёхстороннее объединение c основным файлом», " +"который будет использован как получаемый файл объединения.\n" +"То же самое применимо для сравнения и объединения папок." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "О модуле меню действий с файлами KDiff3" \ No newline at end of file diff --git a/po/rw/kdiff3.po b/po/rw/kdiff3.po new file mode 100644 index 0000000..ee7a07a --- /dev/null +++ b/po/rw/kdiff3.po @@ -0,0 +1,3421 @@ +# translation of kdiff3 to Kinyarwanda. +# Copyright (C) +# This file is distributed under the same license as the kdiff3 package. +# Steve Murphy , 2005. +# Steve performed initial rough translation from compendium built from translations provided by the following translators: +# Philibert Ndandali , 2005. +# Viateur MUGENZI , 2005. +# Noëlla Mupole , 2005. +# Carole Karema , 2005. +# JEAN BAPTISTE NGENDAHAYO , 2005. +# Augustin KIBERWA , 2005. +# Donatien NSENGIYUMVA , 2005. +# Antoine Bigirimana , 2005. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3 3.4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2005-05-25 18:07-0600\n" +"Last-Translator: Steve Murphy \n" +"Language-Team: Kinyarwanda \n" +"Language: rw\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, fuzzy, kde-format +msgid "Getting file status: %1" +msgstr "Idosiye Imimerere : %1 " + +#: DefaultFileAccessJobHandler.cpp:87 +#, fuzzy, kde-format +msgid "Reading file: %1" +msgstr "Idosiye : %1 " + +#: DefaultFileAccessJobHandler.cpp:127 +#, fuzzy, kde-format +msgid "Writing file: %1" +msgstr "Idosiye : %1 " + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Ububiko bwarenzwe" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +msgid "Making folder: %1" +msgstr "Ububiko : %1 " + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +msgid "Removing folder: %1" +msgstr "Idosiye : %1 " + +#: DefaultFileAccessJobHandler.cpp:236 +#, fuzzy, kde-format +msgid "Removing file: %1" +msgstr "Idosiye : %1 " + +#: DefaultFileAccessJobHandler.cpp:253 +#, fuzzy, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Ihuza : %1 - > %2 " + +#: DefaultFileAccessJobHandler.cpp:278 +#, fuzzy, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Idosiye : %1 - > %2 " + +#: DefaultFileAccessJobHandler.cpp:321 +#, fuzzy, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Idosiye : %1 - > %2 " + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +msgid "Reading folder: %1" +msgstr "Idosiye : %1 " + +#: DefaultFileAccessJobHandler.cpp:401 +#, fuzzy, kde-format +msgid "Listing directory: %1" +msgstr "Ububiko : %1 " + +#: diff.cpp:1551 diff.cpp:1565 +#, fuzzy, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Ikosa : \n" +"ni Umuntu i Umwanditsi: . \n" + +#: diff.cpp:1553 diff.cpp:1567 +#, fuzzy, kde-format +msgid "Severe Internal Error" +msgstr "Ikosa " + +#: diff.cpp:1555 +#, fuzzy, kde-format +msgid "Severe Internal Error." +msgstr "Ikosa " + +#: diff.cpp:1569 +#, fuzzy, kde-format +msgid "Severe Internal Error.: " +msgstr "Ikosa " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +msgid "File %1: Line not available" +msgstr "Ntibonetse" + +#: difftextwindow.cpp:1891 +#, fuzzy, kde-format +msgid "Encoding:" +msgstr "Idosiye ya: A : " + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, fuzzy, kde-format +msgid "Line end style:" +msgstr "Impera Imisusire : " + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +msgid "A (Base)" +msgstr "A ( Base ) : " + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +msgid "Encoding: %1" +msgstr "Idosiye ya: A : " + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +msgid "Line end style: %1" +msgstr "Impera Imisusire : " + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, fuzzy, kde-format +msgid "Top line" +msgstr "Umurongo: %1 " + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Impera" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +msgid "Open File" +msgstr "Mu Gufungura dosiye" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, fuzzy, kde-format +msgid "Unicode, 8 bit" +msgstr ", 8 " + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, fuzzy, kde-format +msgid "Copy A to B" +msgstr "A Kuri " + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, fuzzy, kde-format +msgid "Copy B to A" +msgstr "Kuri A " + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, fuzzy, kde-format +msgid "Delete A" +msgstr "A " + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, fuzzy, kde-format +msgid "Delete B" +msgstr "Gusiba #" + +#: directorymergewindow.cpp:419 +#, fuzzy, kde-format +msgid "Delete A & B" +msgstr "A & " + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, fuzzy, kde-format +msgid "Merge to A" +msgstr "Kuri A " + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, fuzzy, kde-format +msgid "Merge to B" +msgstr "Kuri " + +#: directorymergewindow.cpp:428 +#, fuzzy, kde-format +msgid "Merge to A & B" +msgstr "Kuri A & " + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, fuzzy, kde-format +msgid "Delete (if exists)" +msgstr "( NIBA ) " + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Gukomatanya" + +#: directorymergewindow.cpp:444 +#, fuzzy, kde-format +msgid "Merge (manual)" +msgstr "( Bikorwa ) " + +#: directorymergewindow.cpp:447 +#, fuzzy, kde-format +msgid "Error: Conflicting File Types" +msgstr "Ikosa : Idosiye " + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, fuzzy, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Ikosa : bingana Idosiye OYA . " + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Byakozwe." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +#| msgid "Error." +msgid "Error" +msgstr "Ikosa." + +#: directorymergewindow.cpp:471 +#, fuzzy, kde-format +msgid "Skipped." +msgstr "Byoherejwe ku" + +#: directorymergewindow.cpp:473 +#, fuzzy, kde-format +msgid "Not saved." +msgstr "Bidasangiwe" + +#: directorymergewindow.cpp:475 +#, fuzzy, kde-format +msgid "In progress..." +msgstr "Aho bigeze: ... " + +#: directorymergewindow.cpp:477 +#, fuzzy, kde-format +msgid "To do." +msgstr "Gukora" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Izina" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Igikorwa" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Imimerere" + +#: directorymergewindow.cpp:529 +#, fuzzy, kde-format +msgid "Unsolved" +msgstr "Kidakoreshwa" + +#: directorymergewindow.cpp:531 +#, fuzzy, kde-format +msgid "Solved" +msgstr "Gikomeye" + +#: directorymergewindow.cpp:533 +#, fuzzy, kde-format +msgid "Nonwhite" +msgstr "Nta na kimwe" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Umweru" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "A Ububiko Gukomatanya . , Kuri Kureka i Gukomatanya na i Ububiko ? " + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, fuzzy, kde-format +msgid "Rescan" +msgstr "Urukiramende" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, fuzzy, kde-format +msgid "Continue Merging" +msgstr "Gukomeza " + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +msgid "Opening of folders failed:" +msgstr "Bya ububiko bw'amaderese Byanze : " + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "A \" %1 \" OYA Cyangwa ni OYA A Ububiko . \n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "\" %1 \" OYA Cyangwa ni OYA A Ububiko . \n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "\" %1 \" OYA Cyangwa ni OYA A Ububiko . \n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +msgid "Folder Opening Error" +msgstr "Ikosa gufungura idosiye" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Ishyika: Ububiko OYA i Nka A Cyangwa Ryari: ububiko bw'amaderese . \n" +"Nanone Mbere . " + +#: directorymergewindow.cpp:870 +#, fuzzy, kde-format +msgid "Parameter Warning" +msgstr "Kuburira bijyanye na mucapyi" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +msgid "Scanning folders..." +msgstr "ububiko bw'amaderese ... " + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +msgid "Reading Folder A" +msgstr "Idosiye : %1 " + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +msgid "Reading Folder B" +msgstr "Idosiye : %1 " + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +msgid "Reading Folder C" +msgstr "Idosiye : %1 " + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +msgid "Some subfolders were not readable in" +msgstr "Ububiko bwungirije OYA in " + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +msgid "Check the permissions of the subfolders." +msgstr "i Uruhushya Bya i Ububiko bwungirije . " + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Cyiteguye." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +msgid "Number of manual merges: %1" +msgstr "Bya Bikorwa : " + +#: directorymergewindow.cpp:1257 +#, fuzzy, kde-format +msgid "This affects all merge operations." +msgstr "Byose Gukomatanya Ibikorwa: . " + +#: directorymergewindow.cpp:1258 +#, fuzzy, kde-format +msgid "Changing All Merge Operations" +msgstr "Ibikorerwa Ishusho" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Inonosora" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, fuzzy, kde-format +msgid "This operation is currently not possible." +msgstr "Igikorwa ni OYA . " + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, fuzzy, kde-format +msgid "Operation Not Possible" +msgstr "Igikorwa nticyashobotse" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +msgid "An error occurred while copying." +msgstr "Ikosa Gukoporora . \n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, fuzzy, kde-format +msgid "Merge Error" +msgstr "Ikosa " + +#: directorymergewindow.cpp:2049 +#, fuzzy, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Gukomatanya Igikorwa . ( Nta na rimwe ! ) " + +#: directorymergewindow.cpp:2094 +#, fuzzy, kde-format +msgid "Unknown merge operation." +msgstr "Gukomatanya Igikorwa . " + +#: directorymergewindow.cpp:2107 +#, fuzzy, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Gukomatanya ni Bigyanye Kuri . \n" +"\n" +"\" \" NIBA Soma i Amabwiriza na . \n" +"\" \" . \n" +"\n" +"iyi Porogaramu beta Imimerere na ni ! Ibyashyinguwe Bya Ibyatanzwe ! " + +#: directorymergewindow.cpp:2112 +#, fuzzy, kde-format +msgid "Starting Merge" +msgstr "Gutangiza serivise" + +#: directorymergewindow.cpp:2113 +#, fuzzy, kde-format +msgid "Do It" +msgstr "Akadomo" + +#: directorymergewindow.cpp:2114 +#, fuzzy, kde-format +msgid "Simulate It" +msgstr "Kwigana Igaragaza" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "Ikintu A Ubwoko: in i ububiko bw'amaderese . Kuri . " + +#: directorymergewindow.cpp:2144 +#, fuzzy, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "Amatariki Bya i Idosiye bingana i Idosiye OYA . Kuri . " + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "Ikintu A Ubwoko: in i ububiko bw'amaderese . Kuri . " + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "Igikorwa ni OYA Ububiko Gukomatanya ni . " + +#: directorymergewindow.cpp:2261 +#, fuzzy, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Ikosa in i Iheruka Intera . \n" +"Kuri Gukomeza Na: i Ikintu i Ikosa Cyangwa Kuri Gusimbuka iyi Ikintu ? " + +#: directorymergewindow.cpp:2263 +#, fuzzy, kde-format +msgid "Continue merge after an error" +msgstr "Gukomeza Gukomatanya Nyuma Ikosa " + +#: directorymergewindow.cpp:2264 +#, fuzzy, kde-format +msgid "Continue With Last Item" +msgstr "Gukomeza " + +#: directorymergewindow.cpp:2265 +#, fuzzy, kde-format +msgid "Skip Item" +msgstr "Ibigize by'ilisiti" + +#: directorymergewindow.cpp:2361 +#, fuzzy, kde-format +msgid "Merge operation complete." +msgstr "Igikorwa Byuzuye . " + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, fuzzy, kde-format +msgid "Merge Complete" +msgstr "Gushyira ku gihe byarangiye" + +#: directorymergewindow.cpp:2374 +#, fuzzy, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "Gukomatanya Byuzuye : NIBA Na: i Ibikorwa: . " + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Habayemoikosa." + +#: directorymergewindow.cpp:2443 +#, fuzzy, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Ikosa : Gusiba %1 : Inyibutsa Byanze . " + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +msgid "delete folder recursively( %1 )" +msgstr "Gusiba Ububiko ( %1 ) " + +#: directorymergewindow.cpp:2452 +#, fuzzy, kde-format +msgid "delete( %1 )" +msgstr "Gusiba" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Ikosa : Gusiba Igikorwa Byanze Kuri Soma i Ububiko . " + +#: directorymergewindow.cpp:2483 +#, fuzzy, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Ikosa : ( %1 ) Igikorwa Byanze . " + +#: directorymergewindow.cpp:2493 +#, fuzzy, kde-format +msgid "Error: delete operation failed." +msgstr "Ikosa : Gusiba Igikorwa Byanze . " + +#: directorymergewindow.cpp:2520 +#, fuzzy, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "Bikorwa Gukomatanya ( %1 , %2 , %3 - > %4 ) " + +#: directorymergewindow.cpp:2523 +#, fuzzy, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "icyitonderwa : A Bikorwa Gukomatanya i Umukoresha Gukomeza ku . " + +#: directorymergewindow.cpp:2550 +#, fuzzy, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "Ikosa : Gukoporora ( %1 - > %2 ) Byanze . Ishyika: Byanze . " + +#: directorymergewindow.cpp:2559 +#, fuzzy, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Ihuza ku %1 (%2)" + +#: directorymergewindow.cpp:2568 +#, fuzzy, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Ikosa : Byanze : amahuza OYA . " + +#: directorymergewindow.cpp:2578 +#, fuzzy, kde-format +msgid "Error: copyLink failed." +msgstr "Ikosa : Byanze . " + +#: directorymergewindow.cpp:2601 +#, fuzzy, kde-format +msgid "copy( %1 -> %2 )" +msgstr "Gukoporora" + +#: directorymergewindow.cpp:2627 +#, fuzzy, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Ikosa Guhindura izina ( %1 - > %2 ) : Gusiba Ishyika: . " + +#: directorymergewindow.cpp:2634 +#, fuzzy, kde-format +msgid "rename( %1 -> %2 )" +msgstr "Guhindura izina" + +#: directorymergewindow.cpp:2643 +#, fuzzy, kde-format +msgid "Error: Rename failed." +msgstr "Ikosa : Byanze . " + +#: directorymergewindow.cpp:2661 +#, fuzzy, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Ikosa Bya %1 . Gusiba Idosiye . " + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +msgid "Error while creating folder." +msgstr "Ikosa Kurema Ububiko . " + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, fuzzy, kde-format +msgid "Dest" +msgstr "Kugogora" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Ubwoko" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Ingano" + +#: directorymergewindow.cpp:2733 +#, fuzzy, kde-format +msgid "Attr" +msgstr "Nyuma" + +#: directorymergewindow.cpp:2733 +#, fuzzy, kde-format +msgid "Last Modification" +msgstr "Iherutse guhindurwa" + +#: directorymergewindow.cpp:2733 +#, fuzzy, kde-format +msgid "Link-Destination" +msgstr "Ishyika" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +msgid "File" +msgstr "Idosiye..." + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +msgid "-Link" +msgstr "Ihuza..." + +#: directorymergewindow.cpp:2766 +#, fuzzy, kde-format +msgid "not available" +msgstr "Ntibonetse" + +#: directorymergewindow.cpp:2780 +#, fuzzy, kde-format +msgid "A (Dest): " +msgstr "A ( ) : " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, fuzzy, kde-format +msgid "A (Base): " +msgstr "A ( Base ) : " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, fuzzy, kde-format +msgid "Dest: " +msgstr "Ibiro: %1" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +msgid "Save Folder Merge State As..." +msgstr "Seriveri y'ububiko:" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Gutangira /Gukomeza " + +#: directorymergewindow.cpp:2956 +#, fuzzy, kde-format +msgid "Run Operation for Current Item" +msgstr "ya: " + +#: directorymergewindow.cpp:2957 +#, fuzzy, kde-format +msgid "Compare Selected File" +msgstr "Idosiye " + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +msgid "Merge Current File" +msgstr "Idosiye " + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "" +"Merge\n" +"File" +msgstr "Gukomatanya" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +msgid "Fold All Subfolders" +msgstr "Amajwi Yose" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +msgid "Unfold All Subfolders" +msgstr "Amajwi Yose" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, fuzzy, kde-format +msgid "Choose A for All Items" +msgstr "A ya: " + +#: directorymergewindow.cpp:2965 +#, fuzzy, kde-format +msgid "Choose B for All Items" +msgstr "ya: " + +#: directorymergewindow.cpp:2966 +#, fuzzy, kde-format +msgid "Choose C for All Items" +msgstr "ya: " + +#: directorymergewindow.cpp:2967 +#, fuzzy, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "- ya: " + +#: directorymergewindow.cpp:2968 +#, fuzzy, kde-format +msgid "No Operation for All Items" +msgstr "ya: " + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, fuzzy, kde-format +msgid "Show Different Files" +msgstr "Bya Idosiye : " + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, fuzzy, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Idosiye " + +#: directorymergewindow.cpp:2982 +#, fuzzy, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Idosiye " + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ntugire icyo Ukora" + +#: directorymergewindow.cpp:2996 +#, fuzzy, kde-format +msgid "Delete A && B" +msgstr "A & & " + +#: directorymergewindow.cpp:2999 +#, fuzzy, kde-format +msgid "Merge to A && B" +msgstr "Kuri A & & " + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +msgid "Failed to read file: %1" +msgstr "Idosiye : %1 " + +#: fileaccess.cpp:908 +#, fuzzy, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Gukoporora Bya %1 Byanze . " + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +msgid "Opening %1 failed. %2" +msgstr "%1 Byanze . " + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +msgid "Error reading from %1. %2" +msgstr "Ikosa Kuva: %1 " + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Kuri Ubwoko A Inyibutsa , Gusiba Inyibutsa Byanze . \n" +": " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Kuri Ubwoko A Inyibutsa , Guhindura izina Byanze . \n" +": " + +#: kdiff3.cpp:163 +#, fuzzy, kde-format +msgid "Current Configuration:" +msgstr "Iki cyiciro" + +#: kdiff3.cpp:168 +#, fuzzy, kde-format +msgid "Config Option Error:" +msgstr "Ikosa gufungura idosiye" + +#: kdiff3.cpp:226 +#, fuzzy, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "- - Ikiyega Byakoreshejwe , Oya Ibisohoka Idosiye . " + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "- - Ikiyega ya: Ububiko . " + +#: kdiff3.cpp:458 +#, fuzzy, kde-format +msgid "Saving failed." +msgstr "Byanze . " + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, fuzzy, kde-format +msgid "Opening of these files failed:" +msgstr "Bya Idosiye Byanze : " + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Ikosa gufungura idosiye" + +#: kdiff3.cpp:549 +#, fuzzy, kde-format +msgid "Opens documents for comparison..." +msgstr "Inyandiko ya: ... " + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +#| msgid "Ready." +msgid "Reload" +msgstr "Cyiteguye." + +#: kdiff3.cpp:554 +#, fuzzy, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "i Gukomatanya Igisubizo . ! " + +#: kdiff3.cpp:556 +#, fuzzy, kde-format +msgid "Saves the current document as..." +msgstr "i KIGEZWEHO Inyandiko Nka ... " + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, fuzzy, kde-format +msgid "Quits the application" +msgstr "i Porogaramu " + +#: kdiff3.cpp:565 +#, fuzzy, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "i Byahiswemo Icyiciro na Kuri i Ububikokoporora " + +#: kdiff3.cpp:568 +#, fuzzy, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "i Byahiswemo Icyiciro Kuri i Ububikokoporora " + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "i Ububikokoporora Ibigize Kuri Ibirindiro: " + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, fuzzy, kde-format +msgid "Search for a string" +msgstr "ya: A Ikurikiranyanyuguti " + +#: kdiff3.cpp:578 +#, fuzzy, kde-format +msgid "Search again for the string" +msgstr "Nanone ya: i Ikurikiranyanyuguti " + +#: kdiff3.cpp:583 +#, fuzzy, kde-format +msgid "Enables/disables the statusbar" +msgstr "/i Umurongomiterere " + +#: kdiff3.cpp:587 +#, fuzzy, kde-format +msgid "Configure KDiff3..." +msgstr "Kugena imiterere..." + +#: kdiff3.cpp:606 +#, fuzzy, kde-format +msgid "Go to Current Delta" +msgstr "Kuri " + +#: kdiff3.cpp:606 +#, fuzzy, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "Kuri " + +#: kdiff3.cpp:608 +#, fuzzy, kde-format +msgid "Go to First Delta" +msgstr "Kuri " + +#: kdiff3.cpp:608 +#, fuzzy, kde-format +msgid "" +"First\n" +"Delta" +msgstr "Kuri " + +#: kdiff3.cpp:610 +#, fuzzy, kde-format +msgid "Go to Last Delta" +msgstr "Kuri " + +#: kdiff3.cpp:610 +#, fuzzy, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "Kuri " + +#: kdiff3.cpp:612 +#, fuzzy, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "( Umweru Umwanya Ibinyuranyo Ryari: \" \" ni Yahagaritswe . ) " + +#: kdiff3.cpp:613 +#, fuzzy, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"( OYA Gusimbuka Umweru Umwanya Ibinyuranyo ATARIIGIHARWE Ryari: \" \" ni " +"Yahagaritswe . ) " + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +msgid "Go to Previous Delta" +msgstr "Kuri " + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "Kuri " + +#: kdiff3.cpp:616 +#, fuzzy, kde-format +msgid "Go to Next Delta" +msgstr "Kuri " + +#: kdiff3.cpp:616 +#, fuzzy, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "Kuri " + +#: kdiff3.cpp:618 +#, fuzzy, kde-format +msgid "Go to Previous Conflict" +msgstr "Kuri " + +#: kdiff3.cpp:618 +#, fuzzy, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "Ishyamirana ry'ingenzi" + +#: kdiff3.cpp:620 +#, fuzzy, kde-format +msgid "Go to Next Conflict" +msgstr "Kuri " + +#: kdiff3.cpp:620 +#, fuzzy, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "Kuri " + +#: kdiff3.cpp:622 +#, fuzzy, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Kuri " + +#: kdiff3.cpp:622 +#, fuzzy, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "Kidakoreshwa" + +#: kdiff3.cpp:624 +#, fuzzy, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Kuri " + +#: kdiff3.cpp:624 +#, fuzzy, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "Kidakoreshwa" + +#: kdiff3.cpp:626 +#, fuzzy, kde-format +msgid "Select Line(s) From A" +msgstr "( S ) A " + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, fuzzy, kde-format +msgid "Select Line(s) From B" +msgstr "( S ) " + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, fuzzy, kde-format +msgid "Select Line(s) From C" +msgstr "( S ) " + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Kuri " + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "Gukoporora Ihitamo " + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "& & ya: " + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, fuzzy, kde-format +msgid "Show White Space" +msgstr "Umwanya w'Umweru" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +msgid "Show Line Numbers" +msgstr "Kwerekana nomero z'umurongo" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "Kwerekana nomero z'umurongo" + +#: kdiff3.cpp:636 +#, fuzzy, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Gufunga mu buryo bwikoresha impago zidakoreshwa" + +#: kdiff3.cpp:637 +#, fuzzy, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Kuri " + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, fuzzy, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Gufunga mu buryo bwikoresha impago zidakoreshwa" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, fuzzy, kde-format +msgid "Join Selected Diffs" +msgstr "Idosiye " + +#: kdiff3.cpp:643 +#, fuzzy, kde-format +msgid "Show Window A" +msgstr "A " + +#: kdiff3.cpp:644 +#, fuzzy, kde-format +msgid "Show Window B" +msgstr "Kwerekana Ilisiti y'Amadirishya" + +#: kdiff3.cpp:645 +#, fuzzy, kde-format +msgid "Show Window C" +msgstr "Kwerekana Ilisiti y'Amadirishya" + +#: kdiff3.cpp:647 +#, fuzzy, kde-format +msgid "Normal Overview" +msgstr "Gahunda-Nyamwaka" + +#: kdiff3.cpp:648 +#, fuzzy, kde-format +msgid "A vs. B Overview" +msgstr "A . " + +#: kdiff3.cpp:649 +#, fuzzy, kde-format +msgid "A vs. C Overview" +msgstr "A . " + +#: kdiff3.cpp:650 +#, fuzzy, kde-format +msgid "B vs. C Overview" +msgstr "Incamake" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, fuzzy, kde-format +msgid "Focus Next Window" +msgstr "idirishya rikurikira" + +#: kdiff3.cpp:656 +#, fuzzy, kde-format +msgid "Focus Prev Window" +msgstr "Kwerekeza ku idirishya: " + +#: kdiff3.cpp:657 +#, fuzzy, kde-format +msgid "Toggle Split Orientation" +msgstr "Icyerekezo mwandiko" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +msgid "The merge result has not been saved." +msgstr "Gukomatanya Igisubizo . " + +#: kdiff3.cpp:713 +#, fuzzy, kde-format +msgid "Save && Quit" +msgstr "Kubika & & " + +#: kdiff3.cpp:714 +#, fuzzy, kde-format +msgid "Quit Without Saving" +msgstr "Komeka utahinduye imiterere" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, fuzzy, kde-format +msgid "Saving the merge result failed." +msgstr "i Gukomatanya Igisubizo Byanze . " + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "A Ububiko Gukomatanya . , Kuri Kureka ? " + +#: kdiff3.cpp:756 +#, fuzzy, kde-format +msgid "Saving file..." +msgstr "Idosiye ... " + +#: kdiff3.cpp:773 +#, fuzzy, kde-format +msgid "Saving file with a new filename..." +msgstr "Idosiye Na: A Gishya Izina ry'idosiye: ... " + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +msgid "Printing not implemented." +msgstr "Igikorwa Byuzuye . " + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +msgid "Printing..." +msgstr "Tegereza..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +msgid " (Selection)" +msgstr "Gutoranya imyandikire" + +#: kdiff3.cpp:1025 +#, fuzzy, kde-format +msgid "Printing completed." +msgstr "Igikorwa Byuzuye . " + +#: kdiff3.cpp:1029 +#, fuzzy, kde-format +msgid "Printing aborted." +msgstr "Igikorwa Byuzuye . " + +#: kdiff3.cpp:1036 +#, fuzzy, kde-format +msgid "Exiting..." +msgstr "Tegereza..." + +#: kdiff3.cpp:1047 +#, fuzzy, kde-format +msgid "Toggling toolbar..." +msgstr "Umwanyabikoresho ... " + +#: kdiff3.cpp:1068 +#, fuzzy, kde-format +msgid "Toggle the statusbar..." +msgstr "i Umurongomiterere ... " + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +msgid "KDiff3 Part" +msgstr "Igabanya" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, fuzzy, kde-format +msgid "&KDiff3" +msgstr "Igabanya" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +msgid "Configure KDiff3" +msgstr "Kuboneza Gucapa na KDE" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, fuzzy, kde-format +msgid "KDiff3" +msgstr "Igabanya" + +#: kdiff3_shell.cpp:63 +#, fuzzy, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"OYA Gushaka Inzira %s ! \n" +"Kuri iyinjizaporogaramu . Soma i - Idosiye in i Inkomoko Porogaramu ya: " +"Birambuye . " + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +msgid "&File" +msgstr "Idosiye..." + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, fuzzy, kde-format +msgid "Current Item Merge Operation" +msgstr "Ibikorerwa Ishusho" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, fuzzy, kde-format +msgid "Current Item Sync Operation" +msgstr "Iki cyiciro" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +msgid "M&ovement" +msgstr "Igenda" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, fuzzy, kde-format +msgid "D&iffview" +msgstr "Igabanya" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Gukomatanya" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Idirishya" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, fuzzy, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "ya: na Bya na " + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, fuzzy, kde-format +msgid "Merge the input." +msgstr "i Iyinjiza . " + +#: main.cpp:123 +#, fuzzy, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "SHINGIRO Idosiye . Bihuye neza Na: Ibikoresho . " + +#: main.cpp:124 +#, fuzzy, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "E. G." + +#: main.cpp:125 +#, fuzzy, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Idosiye , Nanone . ( Bihuye neza Na: Ibikoresho . ) " + +#: main.cpp:127 +#, fuzzy, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "NIBA Byose Ikiyega - . ( - o Idosiye ) " + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +msgid "Ignored." +msgstr "Kwirengagiza Inshuro Imwe" + +#: main.cpp:133 +#, fuzzy, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Izina: ya: Iyinjiza Idosiye 1 ( SHINGIRO ) . " + +#: main.cpp:134 +#, fuzzy, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Izina: ya: Iyinjiza Idosiye 2 . " + +#: main.cpp:135 +#, fuzzy, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Izina: ya: Iyinjiza Idosiye 3 . " + +#: main.cpp:136 +#, fuzzy, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Kigaragara Izina: . iyi Rimwe ya: buri Iyinjiza . " + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, fuzzy, kde-format +msgid "Use a different config file." +msgstr "Bya Idosiye : " + +#: main.cpp:142 +#, fuzzy, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Kuri Gufungura ( SHINGIRO , NIBA OYA Biturutse - - SHINGIRO ) " + +#: main.cpp:143 +#, fuzzy, kde-format +msgid "file2 to open" +msgstr "Kuri Gufungura " + +#: main.cpp:144 +#, fuzzy, kde-format +msgid "file3 to open" +msgstr "Kuri Gufungura " + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, fuzzy, kde-format +msgid "Mix of links and normal files." +msgstr "Bya amahuza na Bisanzwe Idosiye . " + +#: MergeFileInfos.cpp:412 +#, fuzzy, kde-format +msgid "Link: " +msgstr "Ihuza..." + +#: MergeFileInfos.cpp:421 +#, fuzzy, kde-format +msgid "Size. " +msgstr "Ingano:" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, fuzzy, kde-format +msgid "Date & Size: " +msgstr "Itariki & Igihe" + +#: MergeFileInfos.cpp:466 +#, fuzzy, kde-format +msgid "Comparing file..." +msgstr "Idosiye ... " + +#: mergeresultwindow.cpp:144 +#, fuzzy, kde-format +msgid "Choose A Everywhere" +msgstr "A " + +#: mergeresultwindow.cpp:145 +#, fuzzy, kde-format +msgid "Choose B Everywhere" +msgstr "Hitamo darayiva" + +#: mergeresultwindow.cpp:146 +#, fuzzy, kde-format +msgid "Choose C Everywhere" +msgstr "Hitamo darayiva" + +#: mergeresultwindow.cpp:147 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "A ya: " + +#: mergeresultwindow.cpp:148 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "ya: " + +#: mergeresultwindow.cpp:149 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "ya: " + +#: mergeresultwindow.cpp:150 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "A ya: " + +#: mergeresultwindow.cpp:151 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "ya: " + +#: mergeresultwindow.cpp:152 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "ya: " + +#: mergeresultwindow.cpp:258 +#, fuzzy, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Bya : %1 ( Bya %2 ) " + +#: mergeresultwindow.cpp:456 +#, fuzzy, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Ibisohoka Byahinduwe: . \n" +"Gukomeza Amahinduka . " + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, fuzzy, kde-format +msgid "All input files are binary equal." +msgstr "Iyinjiza Idosiye Nyabibiri bingana . " + +#: mergeresultwindow.cpp:1022 +#, fuzzy, kde-format +msgid "All input files contain the same text." +msgstr "Iyinjiza Idosiye i Umwandiko . " + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, fuzzy, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "na Nyabibiri bingana . \n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "A na bingana Umwandiko . \n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, fuzzy, kde-format +msgid "Conflicts" +msgstr "Ishyamirana ry'ingenzi" + +#: mergeresultwindow.cpp:1833 +#, fuzzy, kde-format +msgid "" +msgstr "< Umurongo: > " + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, fuzzy, kde-format +msgid "" +msgstr "Ishyamirana ry'ingenzi" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Byose . \n" +"Idosiye OYA . \n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, fuzzy, kde-format +msgid "Conflicts Left" +msgstr "Guhitamo Ibumoso" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, fuzzy, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Inyibutsa Byanze . Idosiye OYA . " + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, fuzzy, kde-format +msgid "File Save Error" +msgstr "Idosiye Kubika Ikosa " + +#: mergeresultwindow.cpp:3020 +#, fuzzy, kde-format +msgid "Error while writing." +msgstr "Ikosa . " + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Ibisohoka" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, fuzzy, kde-format +msgid "[Modified]" +msgstr "Byahinduwe" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +msgid "Encoding for saving:" +msgstr "Idosiye ya: : " + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +msgid "Conflict" +msgstr "Ishyamirana ry'ingenzi" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, fuzzy, kde-format +msgid "A (Base):" +msgstr "A ( Base ) : " + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +msgid "Output (Optional):" +msgstr "( Bitari ngombwa ) : " + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, fuzzy, kde-format +msgid "File..." +msgstr "Idosiye..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, fuzzy, kde-format +msgid "C (Optional):" +msgstr "(bitari ngombwa)" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Inikode" + +#: optiondialog.cpp:384 +#, fuzzy, kde-format +msgid "Latin1" +msgstr "Ikilatini-1" + +#: optiondialog.cpp:403 +#, fuzzy, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "iyi NIBA - Inyuguti OYA . " + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +#| msgid "Configure..." +msgid "Configure" +msgstr "Kugena imiterere..." + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +msgid "File view font" +msgstr "Idosiye Kubika Ikosa " + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Ibara" + +#: optiondialog.cpp:596 +#, fuzzy, kde-format +msgid "Colors Settings" +msgstr "Amagenamiterere y'Akarere" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Ibara ry'imbugambanza:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Ibara ry'imbuganyuma:" + +#: optiondialog.cpp:647 +#, fuzzy, kde-format +msgid "Diff background color:" +msgstr "Mbuganyuma Ibara: : " + +#: optiondialog.cpp:656 +#, fuzzy, kde-format +msgid "Color A:" +msgstr "A : " + +#: optiondialog.cpp:665 +#, fuzzy, kde-format +msgid "Color B:" +msgstr "Ibara:" + +#: optiondialog.cpp:674 +#, fuzzy, kde-format +msgid "Color C:" +msgstr "Ibara:" + +#: optiondialog.cpp:682 +#, fuzzy, kde-format +msgid "Conflict color:" +msgstr "Ibara: : " + +#: optiondialog.cpp:691 +#, fuzzy, kde-format +msgid "Current range background color:" +msgstr "Urutonde Mbuganyuma Ibara: : " + +#: optiondialog.cpp:700 +#, fuzzy, kde-format +msgid "Current range diff background color:" +msgstr "Urutonde Mbuganyuma Ibara: : " + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +msgid "Folder Comparison View:" +msgstr "Inzira y'ububiko" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Muhinduzi" + +#: optiondialog.cpp:764 +#, fuzzy, kde-format +msgid "Editor Behavior" +msgstr "imyitwarire" + +#: optiondialog.cpp:786 +#, fuzzy, kde-format +msgid "Tab inserts spaces" +msgstr "Imyanya " + +#: optiondialog.cpp:790 +#, fuzzy, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +": tab i Umubare Bya Imyanya . \n" +": A - Inyuguti: Byinjijwemo . " + +#: optiondialog.cpp:795 +#, fuzzy, kde-format +msgid "Tab size:" +msgstr "Ingano: : " + +#: optiondialog.cpp:802 +#, fuzzy, kde-format +msgid "Auto indentation" +msgstr "Isunika " + +#: optiondialog.cpp:806 +#, fuzzy, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +": Isunika Bya i Ibanjirije Umurongo: ni Byakoreshejwe ya: A Gishya " +"Umurongo: . \n" + +#: optiondialog.cpp:809 +#, fuzzy, kde-format +msgid "Auto copy selection" +msgstr "Gukoporora Ihitamo " + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "G." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Idirishya" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Gukoporora Ihitamo " + +#: optiondialog.cpp:828 +#, fuzzy, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"i Umurongo: ya: Ryari: Idosiye ni . \n" +"/: + ; : ; Na: = , = " + +#: optiondialog.cpp:838 +#, fuzzy, kde-format +msgid "Diff" +msgstr "Igabanya" + +#: optiondialog.cpp:839 +#, fuzzy, kde-format +msgid "Diff Settings" +msgstr "Iganamiterere rya musomyi" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "/+ + Ibisobanuro nka Umweru Umwanya . " + +#: optiondialog.cpp:877 +#, fuzzy, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Umubare Inyuguti Umurongo: . ( Kuri Umweru Umwanya . ) \n" +"Ifashayobora Kuri Kugereranya # Idosiye Na: Bikurikije umubare Ibyatanzwe . " + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "/+ + Ibisobanuro nka Umweru Umwanya . " + +#: optiondialog.cpp:884 +#, fuzzy, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "/+ + Ibisobanuro nka Umweru Umwanya . " + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +msgid "Ignore case (treat as white space)" +msgstr "/+ + Ibisobanuro nka Umweru Umwanya . " + +#: optiondialog.cpp:891 +#, fuzzy, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Ibinyuranyo nka Umweru Umwanya Amahinduka . ( ' < = > ' ) " + +#: optiondialog.cpp:894 +#, fuzzy, kde-format +msgid "Preprocessor command:" +msgstr "command : " + +#: optiondialog.cpp:899 +#, fuzzy, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Byahawe imiterere mbere - Inonosora . ( i ya: Birambuye . ) " + +#: optiondialog.cpp:902 +#, fuzzy, kde-format +msgid "Line-matching preprocessor command:" +msgstr "- command : " + +#: optiondialog.cpp:907 +#, fuzzy, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Byahawe imiterere mbere - ni Byakoreshejwe Umurongo: . \n" +"( i ya: Birambuye . ) " + +#: optiondialog.cpp:910 +#, fuzzy, kde-format +msgid "Try hard (slower)" +msgstr "Ikomeye ( ) " + +#: optiondialog.cpp:914 +#, fuzzy, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"i - - Ihitamo ya: i external . \n" +"Bya Idosiye . " + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Gukomatanya" + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "Iganamiterere rya musomyi" + +#: optiondialog.cpp:957 +#, fuzzy, kde-format +msgid "Auto advance delay (ms):" +msgstr "Gutinda ( Madamu ) : " + +#: optiondialog.cpp:963 +#, fuzzy, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"in - Ubwoko i Igisubizo Bya i KIGEZWEHO Ihitamo ni \n" +"ya: i Igihe , Mbere Kuri i Ibikurikira > . : 0 %S - Madamu " + +#: optiondialog.cpp:967 +#, fuzzy, kde-format +msgid "Show info dialogs" +msgstr "A " + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, fuzzy, kde-format +msgid "White space 2-file merge default:" +msgstr "Umwanya 2 - Idosiye Gukomatanya Mburabuzi : " + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, fuzzy, kde-format +msgid "Manual Choice" +msgstr "Ibishushanyo by'Intoki" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, fuzzy, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"i Gukomatanya Kuri mu buryo bwikora: Guhitamo Iyinjiza ya: Umweru - Umwanya " +"- Amahinduka . " + +#: optiondialog.cpp:986 +#, fuzzy, kde-format +msgid "White space 3-file merge default:" +msgstr "Umwanya 3 - Idosiye Gukomatanya Mburabuzi : " + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "Bya Ububiko bwungirije : " + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +msgid "Recursive folders" +msgstr "ububiko bw'amaderese " + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Kuri Ububiko bwungirije Cyangwa OYA . " + +#: optiondialog.cpp:1150 +#, fuzzy, kde-format +msgid "File pattern(s):" +msgstr "Idosiye Ishusho ( S ) : " + +#: optiondialog.cpp:1156 +#, fuzzy, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"( S ) Bya Idosiye Kuri . \n" +": ' * ' na ' ? ' \n" +"ku ikoresha i Mutandukanya : ' ; ' " + +#: optiondialog.cpp:1161 +#, fuzzy, kde-format +msgid "File-anti-pattern(s):" +msgstr "Idosiye - - Ishusho ( S ) : " + +#: optiondialog.cpp:1167 +#, fuzzy, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"( S ) Bya Idosiye Kuri Kuva: . \n" +": ' * ' na ' ? ' \n" +"ku ikoresha i Mutandukanya : ' ; ' " + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Idosiye - - Ishusho ( S ) : " + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"( S ) Bya Idosiye Kuri Kuva: . \n" +": ' * ' na ' ? ' \n" +"ku ikoresha i Mutandukanya : ' ; ' " + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +msgid "Use Ignore File" +msgstr "Kwirengagiza Inshuro Imwe" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"i Kuri ku . \n" +"Bya hafi \" . \" - Idosiye iyi Ububiko . " + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +msgid "Find hidden files and folders" +msgstr "Birahishe Idosiye na ububiko bw'amaderese " + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +msgid "Finds hidden files and folders." +msgstr "Birahishe Idosiye na ububiko bw'amaderese " + +#: optiondialog.cpp:1197 +#, fuzzy, kde-format +msgid "Follow file links" +msgstr "Idosiye amahuza " + +#: optiondialog.cpp:1201 +#, fuzzy, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +": i Idosiye i Ihuza Utudomo Kuri . \n" +": i amahuza . " + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +msgid "Follow folder links" +msgstr "Idosiye amahuza " + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +": i Idosiye i Ihuza Utudomo Kuri . \n" +": i amahuza . " + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +msgid "Unfold all subfolders on load" +msgstr "Kuri Ububiko bwungirije Cyangwa OYA . " + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, fuzzy, kde-format +msgid "File Comparison Mode" +msgstr "Idosiye " + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, fuzzy, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Bya Idosiye . ( ) " + +#: optiondialog.cpp:1252 +#, fuzzy, kde-format +msgid "Full analysis" +msgstr "Kwikaraga hose" + +#: optiondialog.cpp:1254 +#, fuzzy, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"A Cyuzuye na Herekana %S Sitatisitiki Ibisobanuro: in Birenga Inkingi: . \n" +"( A Nyabibiri , ya: Nyabibiri Idosiye . ) " + +#: optiondialog.cpp:1258 +#, fuzzy, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "i Itariki: ( ) " + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Idosiye bingana NIBA i Itariki: na Idosiye Uburebure bingana . \n" +"ya: ububiko bw'amaderese Cyangwa Buhoro . " + +#: optiondialog.cpp:1265 +#, fuzzy, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "i Itariki: ( ) " + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Idosiye bingana NIBA i Itariki: na Idosiye Uburebure bingana . \n" +"ya: ububiko bw'amaderese Cyangwa Buhoro . " + +#: optiondialog.cpp:1272 +#, fuzzy, kde-format +msgid "Trust the size (unsafe)" +msgstr "i Ingano: ( ) " + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Idosiye bingana NIBA Idosiye bingana . \n" +"ya: ububiko bw'amaderese Cyangwa Buhoro Ryari: i Itariki: ni Byahinduwe: " +"Iyimura . " + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +msgid "Synchronize folders" +msgstr "ububiko bw'amaderese " + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Kuri Idosiye in Byombi ububiko bw'amaderese ububiko bw'amaderese i . \n" +"Ryari: Kabiri ububiko bw'amaderese A Ishyika: . " + +#: optiondialog.cpp:1291 +#, fuzzy, kde-format +msgid "White space differences considered equal" +msgstr "Umwanya Ibinyuranyo bingana " + +#: optiondialog.cpp:1295 +#, fuzzy, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Idosiye ku Umweru Umwanya bingana . \n" +"ni Gikora Ryari: Cyuzuye ni . " + +#: optiondialog.cpp:1301 +#, fuzzy, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Bya ( ) " + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Kureba Mo Imbere , i Idosiye . \n" +"( iyi NIBA ! ) \n" +"CYUZUYE Ryari: Kabiri ububiko bw'amaderese . " + +#: optiondialog.cpp:1310 +#, fuzzy, kde-format +msgid "Backup files (.orig)" +msgstr "Idosiye ( . ) " + +#: optiondialog.cpp:1314 +#, fuzzy, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"A Idosiye KURI ki/bishaje Idosiye , Hanyuma i ki/bishaje Na: A ' . - " +"Umugereka: Bya Kyasibwe: %S . " + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, fuzzy, kde-format +msgid "Regional Settings" +msgstr "Amagenamiterere y'Akarere" + +#: optiondialog.cpp:1347 +#, fuzzy, kde-format +msgid "Use the same encoding for everything:" +msgstr "i Imisobekere: ya: : " + +#: optiondialog.cpp:1351 +#, fuzzy, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"iyi Kuri Guhindura... Byose ku i Itangira . \n" +"iyi NIBA Igenamiterere . " + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "icyitonderwa : ni " + +#: optiondialog.cpp:1359 +#, fuzzy, kde-format +msgid "File Encoding for A:" +msgstr "Idosiye ya: A : " + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, fuzzy, kde-format +msgid "File Encoding for B:" +msgstr "Idosiye ya: : " + +#: optiondialog.cpp:1386 +#, fuzzy, kde-format +msgid "File Encoding for C:" +msgstr "Idosiye ya: : " + +#: optiondialog.cpp:1397 +#, fuzzy, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Idosiye ya: na : " + +#: optiondialog.cpp:1402 +#, fuzzy, kde-format +msgid "Auto Select" +msgstr "Gukoporora Ihitamo " + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, fuzzy, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Idosiye ya: : " + +#: optiondialog.cpp:1421 +#, fuzzy, kde-format +msgid "Right To Left Language" +msgstr "Iburyo ku ibumoso" + +#: optiondialog.cpp:1425 +#, fuzzy, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Indimi Soma Kuva: Iburyo: Kuri Ibumoso: . \n" +"Igenamiterere Guhindura... i na Muhinduzi . " + +#: optiondialog.cpp:1435 +#, fuzzy, kde-format +msgid "Integration" +msgstr "Igikorwa" + +#: optiondialog.cpp:1436 +#, fuzzy, kde-format +msgid "Integration Settings" +msgstr "Amagenamiterere y'Akarere" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, fuzzy, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Byose Amahitamo . Bya i KIGEZWEHO . " + +#: pdiff.cpp:92 +#, fuzzy, kde-format +msgid "PreprocessorCmd: " +msgstr "Munonosora" + +#: pdiff.cpp:94 +#, fuzzy, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Ihitamo ( S ) Byahiswemo Guhindura... Ibyatanzwe : \n" + +#: pdiff.cpp:95 +#, fuzzy, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"iyi ni OYA A Gukomatanya . \n" +"Kuri Kwangira Igenamiterere Cyangwa Gukomeza Na: Igenamiterere Gikora ? " + +#: pdiff.cpp:97 +#, fuzzy, kde-format +msgid "Option Unsafe for Merging" +msgstr "ya: " + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, fuzzy, kde-format +msgid "Disable Unsafe Options" +msgstr "Anga amahitamo y'ishakisha y'urwego rwo hejuru" + +#: pdiff.cpp:127 +#, fuzzy, kde-format +msgid "Loading A" +msgstr "A " + +#: pdiff.cpp:128 +#, fuzzy, kde-format +msgid "Loading A: %1" +msgstr "A " + +#: pdiff.cpp:137 +#, fuzzy, kde-format +msgid "Loading B" +msgstr "Ifungura" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +msgid "Loading B: %1" +msgstr "A " + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, fuzzy, kde-format +msgid "Diff: A <-> B" +msgstr ": A < - > " + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, fuzzy, kde-format +msgid "Linediff: A <-> B" +msgstr ": A < - > " + +#: pdiff.cpp:195 +#, fuzzy, kde-format +msgid "Loading C" +msgstr "Ifungura" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +msgid "Loading C: %1" +msgstr "A " + +#: pdiff.cpp:223 pdiff.cpp:224 +#, fuzzy, kde-format +msgid "Diff: A <-> C" +msgstr ": A < - > " + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, fuzzy, kde-format +msgid "Linediff: A <-> C" +msgstr ": A < - > " + +#: pdiff.cpp:748 +#, fuzzy, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Iyinjiza Idosiye i Umwandiko . " + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "A na Nyabibiri bingana . \n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Kuri . \n" +"icyitonderwa i - Gukomatanya OYA ya: Nyabibiri Ibyatanzwe . \n" +"Gukomeza Ku . " + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Ntibyakunze" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, fuzzy, kde-format +msgid "Opening files..." +msgstr "Mu Gufungura dosiye" + +#: pdiff.cpp:1060 +#, fuzzy, kde-format +msgid "Cutting selection..." +msgstr "Ihitamo ... " + +#: pdiff.cpp:1067 +#, fuzzy, kde-format +msgid "Copying selection to clipboard..." +msgstr "Ihitamo Kuri Ububikokoporora ... " + +#: pdiff.cpp:1076 +#, fuzzy, kde-format +msgid "Inserting clipboard contents..." +msgstr "Ububikokoporora Ibigize ... " + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, fuzzy, kde-format +msgid "Save && Continue" +msgstr "Kubika & & Gukomeza " + +#: pdiff.cpp:1690 +#, fuzzy, kde-format +msgid "Continue Without Saving" +msgstr "Gukomeza " + +#: pdiff.cpp:1882 +#, fuzzy, kde-format +msgid "Search complete." +msgstr "Byuzuye . " + +#: pdiff.cpp:1882 +#, fuzzy, kde-format +msgid "Search Complete" +msgstr "Igishushanyombonera cy'Ishakisha" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, fuzzy, kde-format +msgid "Error while adding manual diff range" +msgstr "Ikosa Kurema Ububiko . " + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Kugena imiterere..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +msgid "Open Folder" +msgstr "Mu Gufungura dosiye" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, fuzzy, kde-format +msgid "Search text:" +msgstr "Umwandiko : " + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Imyandikire y'inyuguti nkuru/nto" + +#: smalldialogs.cpp:334 +#, fuzzy, kde-format +msgid "Search A" +msgstr "A " + +#: smalldialogs.cpp:339 +#, fuzzy, kde-format +msgid "Search B" +msgstr "Gushaka" + +#: smalldialogs.cpp:344 +#, fuzzy, kde-format +msgid "Search C" +msgstr "Gushaka" + +#: smalldialogs.cpp:349 +#, fuzzy, kde-format +msgid "Search output" +msgstr "Ibisohoka " + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "Shakisha" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, fuzzy, kde-format +msgid "Match failed." +msgstr "Byanze . " + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, fuzzy, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Ububikokoporora Ibyatanzwe Kuri Idosiye Byanze . " + +#: SourceData.cpp:158 +#, fuzzy, kde-format +msgid "From Clipboard" +msgstr "Ububikokoporora" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +msgid "%1 is not a normal file." +msgstr "Bya amahuza na Bisanzwe Idosiye . " + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, fuzzy, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Byanze . iyi command : \n" +"\n" +"%1 \n" +"\n" +"command Yahagaritswe NONEAHA . " + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, fuzzy, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Umurongo: - - Byanze . iyi command : \n" +"\n" +"%1 \n" +"\n" +"Umurongo: - - command Yahagaritswe NONEAHA . " + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/sk/diff_ext.po b/po/sk/diff_ext.po new file mode 100644 index 0000000..5979f6c --- /dev/null +++ b/po/sk/diff_ext.po @@ -0,0 +1,127 @@ +# translation of diff_ext.po to Slovak +# Roman Paholik , 2018, 2019, 2020, 2022. +msgid "" +msgstr "" +"Project-Id-Version: diff_ext\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2022-04-06 17:50+0200\n" +"Last-Translator: Roman Paholik \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.12.3\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "PorovnaÅ¥ s %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "ZlúčiÅ¥ s %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "3-cestné zlúčenie so základom" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "UložiÅ¥ '%1' na neskôr" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "PorovnaÅ¥ s..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "VyčistiÅ¥ zoznam" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "PorovnaÅ¥" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3 cestné porovnanie" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "O Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. VÅ¡etky práva vyhradené.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Tento softvér je distribuovateľný pod licenciou BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Niektoré rozšírenia pre KDiff3 (c) 2006-2013 od Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Portované do Qt5/Kf5 Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Webová stránka pre Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "O Diff-Ext pre KDiff3 (64-bit)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "PorovnaÅ¥ vybrané súbory" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "PorovnaÅ¥ '%1' s '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "UložiÅ¥ '%1' na neskôr" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Nemôžem spustiÅ¥ KDiff3. Prosím, znovu spustite inÅ¡taláciu KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Príkaz" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Príkazový riadok" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext pre KDiff3" \ No newline at end of file diff --git a/po/sk/kdiff3.po b/po/sk/kdiff3.po new file mode 100644 index 0000000..c0d188d --- /dev/null +++ b/po/sk/kdiff3.po @@ -0,0 +1,3570 @@ +# translation of kdiff3.po to Slovak +# Richard Fric , 2006, 2009. +# Roman Paholík , 2012, 2013, 2014, 2019, 2020, 2022. +# Ferdinand Galko , 2015. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-04-06 17:51+0200\n" +"Last-Translator: Roman Paholik \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.12.3\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Roman Paholík,Ferdinand Galko" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "wizzardsk@gmail.com,galko.ferdinand@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Získavanie stavu súboru: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Čítam súbor: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Zapisujem súbor: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Nedostatok pamäte" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Vytváram adresár: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Odstraňuje sa adresár: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Odstraňuje sa súbor: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Vytváranie symbolického odkazu: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Premenúvam súbor: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopíruje sa súbor: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Čítam adresár: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Vypisujem adresár: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Chyba straty dát:\n" +"Ak je to reprodukovateľné, prosím, kontaktujte autora.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Závažná interná chyba" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Závažná interná chyba." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Závažná interná chyba:" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Súbor %1: Riadok %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Súbor %1: Riadok nie je dostupný" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kódovanie:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Spôsob ukončenia riadka:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (základ)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kódovanie: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Spôsob ukončenia riadka: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Vrchný riadok" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Koniec" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "OtvoriÅ¥ súbor" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Iné" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "KopírovaÅ¥ A do B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "KopírovaÅ¥ B do A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "VymazaÅ¥ A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "VymazaÅ¥ B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "VymazaÅ¥ A & B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "ZlúčiÅ¥ do A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "ZlúčiÅ¥ do B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "ZlúčiÅ¥ do A & B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "VymazaÅ¥ (ak existuje)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "ZlúčiÅ¥" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "ZlúčiÅ¥ (ručne)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Chyba: Nezhodné typy súborov" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Chyba: Zmenené a vymazané" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Chyba: Dátumy sú rovnaké, ale súbory nie." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Hotovo" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Chyba" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Preskočené." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Neuložené." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Prebieha..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Úloha." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Názov" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Operácia" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stav" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "NevyrieÅ¡ené" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "VyrieÅ¡ené" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Nebiele" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Biela" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Práve robíte adresárové zlúčenie. Ste si istí, že chcete preruÅ¡iÅ¥ zlučovanie " +"a opätovne prehľadaÅ¥ adresáre?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Varovanie" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Znovu prehľadaÅ¥" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "PokračovaÅ¥ v zlučovaní" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Otváranie adresárov zlyhalo:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Adresár A \"%1\" neexistuje alebo nie je adresár.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Adresár B \"%1\" neexistuje alebo nie je adresár.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Adresár C \"%1\" neexistuje alebo nie je adresár.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Chyba pri otváraní priečinku" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Cieľový adresár nesmie byÅ¥ rovnaký ako A alebo B, ak sú tri adresáre " +"zlúčené.\n" +"Skontrolujte znova pred pokračovaním." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Varovanie parametra" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Prezeranie adresárov... " + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Čítam priečinok A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Čítam priečinok B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Čítam priečinok C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Niektoré podadresáre neboli čitateľné v" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "SkontrolovaÅ¥ prístupové práva podadresárov." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Pripravený." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Stav porovnania adresárov\n" +"\n" +"Počet podadresárov: %1\n" +"Počet rovnakých súborov: %2\n" +"Počet rôznych súborov: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Počet ručných zlúčení: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Toto ovplyvňuje vÅ¡etky operácie zlúčenia." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Zmenenie vÅ¡etkých operácií zlúčenia" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Spracúva sa %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Niektoré súbory nemohli byÅ¥ spracované." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "PreruÅ¡uje sa kvôli príliÅ¡ veľkému počtu chýb." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Táto operácia nie je v súčasnej dobe možná." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Operácia nie je možná" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Nastala chyba počas kopírovania." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Chyba zlúčenia" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Neznáma operácia zlúčenia. (To sa nikdy nesmie staÅ¥!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Neznáma operácia zlúčenia." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Má sa začaÅ¥ zlúčenie.\n" +"\n" +"Zvoľte \"UrobiÅ¥ to\", ak ste si prečítali pokyny a viete, čo robíte.\n" +"Voľbou \"SimulovaÅ¥ to\" poviete, čo by sa stalo.\n" +"\n" +"Uvedomte si, že tento program je stále v stave beta a nie je tu žiadna " +"záruka! Vykonajte zálohovanie vaÅ¡ich dôležitých dát!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Spúšťam zlúčenie" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "UrobiÅ¥ to" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "SimulovaÅ¥ to" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Zvýraznená položka má iný typ v rôznych adresároch. Vyberte, čo sa má robiÅ¥." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Dátumy zmeny súboru sú rovnaké, ale súbory nie sú. VybraÅ¥, čo sa má robiÅ¥." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Zvýraznená položka bola zmenená v jednom adresári a odstránená v druhom. " +"Vyberte, čo sa má robiÅ¥." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Táto operácia v súčasnej dobe nie je možná, pretože v súčasnej dobe prebieha " +"adresárové zlúčenie." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"DoÅ¡lo k chybe v poslednom kroku.\n" +"Ak chcete pokračovaÅ¥ v položke, ktorá spôsobila chybu, alebo budete chcieÅ¥ " +"preskočiÅ¥ túto položku?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "PokračovaÅ¥ v zlúčení po chybe" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "PokračovaÅ¥ s poslednou položkou" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "PreskočiÅ¥ položku" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Operácia zlúčenia dokončená." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Zlúčenie hotové" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulované zlúčenie dokončené: Skontrolujte, či súhlasíte s navrhovanými " +"operáciami." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Nastala chyba. Stlačením OK sa zobrazia podrobnejÅ¡ie informácie." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Chyba: Počas vymazávania %1: Vytváranie zálohy zlyhalo." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "vymazaÅ¥ adresár rekurzívne( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "vymazaÅ¥( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Chyba: operácia vymazávania adresára zlyhala pri pokuse o čítanie adresára." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Chyba: zlyhala operácia rmdir( %1 )" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Chyba: zlyhala operácia vymazávania" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ručné zlúčenie( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Poznámka: Po ručnom zlúčení by mal používateľ pokračovaÅ¥ stlačením F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Chyba: kopírovanie( %1 -> %2 ) zlyhalo. Vymazávanie existujúceho cieľa " +"zlyhalo." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Chyba: copyLink zlyhalo: Vzdialené odkazy eÅ¡te nie sú podporované." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Chyba: copyLink zlyhalo." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopírovaÅ¥( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Chyba pri premenovaní( %1 -> %2 ): Nie je možné vymazaÅ¥ existujúci cieľ." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "premenovaÅ¥( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Chyba: Premenovanie zlyhalo." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Error pri makeDir pre %1. Nie je možné vymazaÅ¥ existujúci súbor." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Chyba počas vytvárania adresára." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Cieľ" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Priečinok" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Typ" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "VeľkosÅ¥" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atr" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Posledná zmena" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Cieľ odkazu" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Súbor" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Odkaz" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "nedostupné" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (cieľ): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (základ): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (cieľ): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (cieľ): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Cieľ:" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "UložiÅ¥ stav adresárového zlúčenia ako..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "SpustiÅ¥/PokračovaÅ¥ v adresárovom zlúčení" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "SpustiÅ¥ operáciu pre aktuálnu položku" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "PorovnaÅ¥ vybraný súbor" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "ZlúčiÅ¥ aktuálny súbor" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"ZlúčiÅ¥\n" +"súbor" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "ZbaliÅ¥ vÅ¡etky podadresáre" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "RozbaliÅ¥ vÅ¡etky podadresáre" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "ZvoliÅ¥ A pre vÅ¡etky položky" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "ZvoliÅ¥ B pre vÅ¡etky položky" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "ZvoliÅ¥ C pre vÅ¡etky položky" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Automaticky zvolená operácia pre vÅ¡etky položky" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Žiadna operácia pre vÅ¡etky položky" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "UkázaÅ¥ zhodné súbory" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Zhodné\n" +"súbory" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "UkázaÅ¥ rôzne súbory" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "UkázaÅ¥ súbory iba v A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Súbory\n" +"iba v A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "UkázaÅ¥ súbory iba v B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Súbory\n" +"iba v B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "UkázaÅ¥ súbory iba v C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Súbory\n" +"iba v C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "PorovnaÅ¥ explicitne vybrané súbory" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "ZlúčiÅ¥ explicitne vybrané súbory" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "NerobiÅ¥ nič" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "VymazaÅ¥ A && B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "ZlúčiÅ¥ do A && B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Nemôžem určiÅ¥ celé URL. Nebol učený predok." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Zlyhalo načítanie súboru: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Vytvorenie dočasnej kópie %1 zlyhalo." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Otvorenie %1 zlyhalo. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Chyba pri čítaní z %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Pri pokuse o vytvorenie zálohy, zlyhalo vymazávanie starÅ¡ej zálohy. \n" +"Názov súboru: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Pri pokuse o vytvorenie zálohy, zlyhalo premenovanie. \n" +"Názov súborov: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Aktuálne nastavenie:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Chyba konfiguračnej možnosti:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Použitá voľba --auto, ale nie je zadaný výstupný súbor." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Voľba --auto ignorovaná pre adresárové porovnanie." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Uloženie zlyhalo." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Otváranie týchto súborov zlyhalo:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Chyba pri otváraní súboru" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Otvára dokumenty pre porovnanie..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Znovu načítaÅ¥" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Uloží výsledok zlúčenia. VÅ¡etky nezhody musia byÅ¥ vyrieÅ¡ené!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Uloží súčasný dokument ako..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "TlačiÅ¥ rozdiely" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Ukončí aplikáciu" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Vystrihne vybranú oblasÅ¥ a uloží ju do schránky" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopíruje vybranú oblasÅ¥ do schránky" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Vloží obsah schránky na aktuálnu pozíciu" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "VybraÅ¥ vÅ¡etko v aktuálnom okne" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Hľadanie reÅ¥azca" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "HľadaÅ¥ znovu reÅ¥azec" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Povolí/zakáže stavový riadok" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "NastaviÅ¥ KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "PrejsÅ¥ na aktuálnu položku delta" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Aktuálna\n" +"delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "PrejsÅ¥ na prvú položku delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Prvá\n" +"delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "PrejsÅ¥ na poslednú položku delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Posledná\n" +"delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Preskočí rozdiely medzier, keď je zakázané \"UkazovaÅ¥ medzery\".)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Nepreskočí rozdiely medzier, aj keď je zakázané \"UkazovaÅ¥ medzery\".)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "PrejsÅ¥ na predchádzajúcu položku delta" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Predchádzajúca\n" +"delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "PrejsÅ¥ na nasledujúcu položku delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Nasledujúca\n" +"delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "PrejsÅ¥ na predchádzajúcu nezhodu" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Predchádzajúca\n" +"nezhoda" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "PrejsÅ¥ na nasledujúcu nezhodu" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Nasledujúca\n" +"nezhoda" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "PrejsÅ¥ na predchádzajúcu nevyrieÅ¡enú nezhodu" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Predchádzajúca\n" +"NevyrieÅ¡ená" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "PrejsÅ¥ na nasledujúcu nevyrieÅ¡enú nezhodu" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Nasledujúca\n" +"NevyrieÅ¡ená" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "VybraÅ¥ riadok(y) z A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Vyberte\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "VybraÅ¥ riadok(y) z B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Vyberte\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "VybraÅ¥ riadok(y) z C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Vyberte\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Automaticky prejsÅ¥ na nasledujúcu nevyrieÅ¡enú nezhodu po výbere zdroja" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automaticky\n" +"Ďalej" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "UkázaÅ¥ znaky medzier && tabulátorov pre rozdiely" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Biele\n" +"znaky" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "UkazovaÅ¥ medzery" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Biele\n" +"položky delta" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "ZobraziÅ¥ čísla riadkov" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Riadky\n" +"Čísla" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automaticky rieÅ¡iÅ¥ jednoduché nezhody" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "NastaviÅ¥ delta položky pre nezhody" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "SpustiÅ¥ automatické zlúčenie regulárnych výrazov" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automaticky rieÅ¡iÅ¥ nezhody histórie" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "RozdeliÅ¥ diff vo výbere" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "PripojiÅ¥ vybrané rozdiely" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "ZobraziÅ¥ okno A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "ZobraziÅ¥ okno B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "ZobraziÅ¥ okno C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normálny prehľad" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Prehľad A vs. B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Prehľad A vs. C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Prehľad B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Word Wrap Diff Windows" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "PridaÅ¥ ručné usporiadanie rozdielu" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "VyčistiÅ¥ vÅ¡etky ručne usporiadania rozdielov" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "ZameraÅ¥ nasledujúce okno" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "ZameraÅ¥ predchádzajúce okno" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Prepnúť orientáciu rozdelenia" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Rozdelené zobrazenie s priečinkami a textom" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Prepnúť pohľad medzi textovým a priečinkovým" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Výsledok zlúčenia nebol uložený." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "UložiÅ¥ && koniec" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "UkončiÅ¥ bez uloženia" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Uloženie výsledku zlúčenia zlyhalo." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Práve robíte adresárové zlúčenie. Ste si istí, že chcete ho zruÅ¡iÅ¥?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Ukladá sa súbor..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Ukladá sa súbor pod novým menom..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "UložiÅ¥ ako..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Tlačenie nie je implementované." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Tlač..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Tlačím stranu %1 z %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Výber)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Tlač bola dokončená." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Tlač bola preruÅ¡ená." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Ukončujem..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Prepínam panel nástrojov..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Prepnúť stavový riadok..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Komponent na zobrazenie SVG obrázkov" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "NastaviÅ¥ KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Nebolo možné inicializovaÅ¥ časÅ¥ KDiff3.\n" +"To sa zvyčajne stáva kvôli problému s inÅ¡taláciou. Prosím, prečítajte si " +"súbor README v zdrojovom balíku kvôli podrobnostiam." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Súbor" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Priečinok" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Operácia zlúčenia aktuálnej položky" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Operácia synchronizácie aktuálnej položky" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "Presun" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iffview" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "ZlúčiÅ¥" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Okno" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Hlavný panel nástrojov" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorované. (Používateľom definované.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Nástroj pre porovnanie a zlúčenie súborov a adresárov" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "ZlúčiÅ¥ vstup." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Explicitný základný súbor. Pre kompatibilitu s niektorými nástrojmi." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Výstupný súbor. Implikuje -m. Napr.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Výstupný súbor, znova. (Pre kompatibilitu s niektorými nástrojmi.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Žiadne grafické rozhranie, ak sú vÅ¡etky konflikty automaticky rieÅ¡iteľné. " +"(Potrebuje -o súbor)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "IgnorovaÅ¥ --auto a vždy zobraziÅ¥ GUI." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorované." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Náhrada viditeľného názvu pre vstupný súbor 1 (základ)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Náhrada viditeľného názvu pre vstupný súbor 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Náhrada viditeľného názvu pre vstupný súbor 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Alternatívna náhrada viditeľného názvu. ZadaÅ¥ ho raz pre každý vstup." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"PrepísaÅ¥ konfiguračné nastavenie. PoužiÅ¥ raz pre každé nastavenie. Napr.: --" +"cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "UkázaÅ¥ zoznam konfiguračných nastavení a súčasných hodnôt." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "PoužiÅ¥ rozdielny konfiguračný súbor." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "súbor1 na otvorenie (základ, ak nie je uvedené cez --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "súbor2 na otvorenie" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "súbor3 na otvorenie" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Pozrite kdiff3 --help pre podporované voľby." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Nemôžem porovnaÅ¥ nenormálny súbor s normálnym súborom." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mix odkazov a normálnych súborov." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Odkaz:" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "VeľkosÅ¥." + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Dátum & veľkosÅ¥: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Porovnávanie súboru..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "ZvoliÅ¥ A vÅ¡ade" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "ZvoliÅ¥ B vÅ¡ade" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "ZvoliÅ¥ C vÅ¡ade" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "ZvoliÅ¥ A pre vÅ¡etky nevyrieÅ¡ené nezhody" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "ZvoliÅ¥ B pre vÅ¡etky nevyrieÅ¡ené nezhody" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "ZvoliÅ¥ C pre vÅ¡etky nevyrieÅ¡ené nezhody" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "ZvoliÅ¥ A pre vÅ¡etky nevyrieÅ¡ené nezhody medzier" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "ZvoliÅ¥ B pre vÅ¡etky nevyrieÅ¡ené nezhody medzier" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "ZvoliÅ¥ C pre vÅ¡etky nevyrieÅ¡ené nezhody medzier" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Počet zostávajúcich nevyrieÅ¡ených nezhôd: %1 (z ktorých %2 sú medzery)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Výstup bol zmenený.\n" +"Ak budete pokračovaÅ¥, vaÅ¡e zmeny sa stratia." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "VÅ¡etky vstupné súbory sú binárne rovnaké." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "VÅ¡etky vstupné súbory obsahujú rovnaký text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Súbory %1 a %2 sú binárne rovnaké.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Súbory %1 a %2 majú rovnaký text.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Celkový počet konfliktov: %1\n" +"Počet automaticky vyrieÅ¡ených konfliktov: %2\n" +"Počet nevyrieÅ¡ených konfliktov: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Nezhody" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<Žiadny zdrojový riadok>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Nie vÅ¡etky konflikty sú už vyrieÅ¡ené.\n" +"Súbor nie je uložený." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Zostávajúce nezhody" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Existuje nezhoda v spôsobe ukončenia riadka. Prosím, zvoľte spôsob ukončenia " +"riadka ručne.\n" +"Súbor nie je uložený." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Vytvorenie zálohy zlyhalo. Súbor neuložený." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Chyba ukladania súboru" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Chyba počas zapisovania." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Výstup:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Zmenené]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Kódovanie pre uloženie:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Nezhoda" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Kodek z A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Kodek z B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Kodek z C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialóg" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (základ):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Výstup (voliteľný):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Súbor..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "VymeniÅ¥/KopírovaÅ¥ názvy ..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (voliteľné):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Priečinok..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Historická položka správy verzií sa skladá z niekoľkých riadkov.\n" +"UrčiÅ¥ regulárny výraz na zistenie prvý riadka (bez úvodného komentára).\n" +"PoužiÅ¥ zátvorky na zoskupenie kľúčov, ktoré chcete použiÅ¥ pre triedenie.\n" +"Ak sú prázdne, potom KDiff3 predpokladá, že prázdne riadky oddeľujú " +"historické položky.\n" +"Kvôli podrobnostiam pozrieÅ¥ dokumentáciu." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Každý pár zátvoriek použitý v regulárnom výraze pre začiatok historickej " +"položky\n" +"zoskupuje kľúč, ktorý sa môže použiÅ¥ na triedenie.\n" +"UrčiÅ¥ zoznam kľúčov (ktoré sú číslované v poradí výskytu\n" +"od 1) za použitia \",\" ako oddeľovača (napr. \"4,5,6,1,2,3,7\").\n" +"Ak sa ponechá prázdne, potom nebude urobené triedenie.\n" +"Kvôli podrobnostiam pozrieÅ¥ dokumentáciu." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regulárny výraz pre riadky, kde by mala aplikácia KDiff3 automaticky zvoliÅ¥ " +"jeden zdroj.\n" +"Keď riadok s nezhodou zodpovedá regulárnemu výrazu, potom\n" +"- ak je k dispozícii - C, inak bude vybrané B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regulárny výraz pre začiatok historickej položky správy verzií.\n" +"Obvykle tento riadok obsahuje kľúčové slovo \"$Log$\".\n" +"Predvolená hodnota: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Kŕdeľ šťastných ďatľov učí pri kótovanom ústí Váhu mĺkveho koňa obhrýzaÅ¥ " +"kôru a žraÅ¥ čerstvé mäso." + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "ZmeniÅ¥ písmo" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Písmo: %1, %2, %3\n" +"\n" +"Príklad:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Toto zmeniÅ¥, ak sa znaky, ktoré nie sú ASCII, sa nezobrazujú správne." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "KonfigurovaÅ¥" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Písmo" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Písmo výstupu editora a diff" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Font aplikácie" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Písmo zobrazenia súboru" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Farba" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Nastavenie farieb" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Pohľad editora a diff" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Farba popredia:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Farba pozadia:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Farba pozadia diff:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Farba A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Farba B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Farba C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Farba nezhody:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Farba aktuálneho rozsahu pozadia:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Farba aktuálneho rozsahu farby pozadia diff:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Farba pre rozsahy ručne usporiadaného rozdielu:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Pohľad porovnania adresárov:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Farba najnovÅ¡ieho súboru:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Zmena tejto farby bude účinná až pri spustení nasledujúceho porovnania " +"adresára." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Farba najstarÅ¡ieho súboru:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Farba strednodobého súboru:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Farba pre chýbajúce súbory:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Správanie editora" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabulátor vloží medzery" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Zapnuté: Stlačením tabulátora generuje zodpovedajúci počet medzier.\n" +"Vypnuté: Bude vložený znak tabulátora." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "VeľkosÅ¥ tabulátora:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automatické odsadzovanie" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Zapnuté : Odsadenie predchádzajúceho riadka sa použije pre nový riadok.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Automatický výber kopírovania" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Zapnuté: Každý výber je okamžite zapísaný do schránky.\n" +"Vypnuté: Je nutné explicitne kopírovaÅ¥ napr. cez Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Automatický výber" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Nastaví konce riadkov, keď je upravený súbor uložený.\n" +"DOS/Windows: CR+LF; UNIX: LF; s CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Nastavenie Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "IgnorovaÅ¥ čísla (zaobchádzaÅ¥ ako s medzerou)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"IgnorovaÅ¥ číselné znaky počas fázy porovnania riadkov. (Podobne ako " +"ignorovanie medzier).\n" +"Možno pomôže porovnaÅ¥ súbory s číselnými údajmi." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "IgnorovaÅ¥ komentáre C/C++ (zaobchádzaÅ¥ ako s medzerou)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "ZaobchádzaÅ¥ s komentármi C/C++ ako s medzerou." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "IgnorovaÅ¥ veľkosÅ¥ (zaobchádzaÅ¥ ako s medzerou)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"ZaobchádzaÅ¥ s rozdielmi vo veľkosti písmen ako so zmenami v medzerách." +"('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Príkaz preprocesora:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Používateľom definovaná činnosÅ¥ preprocesora. (Kvôli podrobnostiam pozrieÅ¥ " +"dokumentáciu.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Príkaz porovnávanie riadkov preprocesora:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Tento preprocesor je použitý iba pri porovnávaní riadkov.\n" +"(Kvôli podrobnostiam pozrieÅ¥ dokumentáciu.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "SnažiÅ¥ sa (pomalÅ¡ie)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Povolí voľbu --minimal pre externé diff.\n" +"Analýza veľkých súborov bude oveľa pomalÅ¡ia." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "UsporiadaÅ¥ B a C pre 3 vstupné súbory" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"SkúsiÅ¥ usporiadaÅ¥ B a C pri porovnávaní a zlučovaní troch vstupných " +"súborov.\n" +"Neodporúča sa pre zlučovanie, pretože zlúčenie by sa mohlo staÅ¥ " +"zložitejším.\n" +"(V predvolenom nastavení je vypnuté)." + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "ZlúčiÅ¥" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Nastavenia zlúčenia" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Automatické oneskorenie postupu (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"V režime automatického postupu je zobrazený výsledok aktuálneho výberu\n" +"po stanovenú dobu pred skokom na nasledujúcu nezhodu. Rozsah: 0 až 2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "UkazovaÅ¥ informačné dialógy" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "UkazovaÅ¥ dialóg s informáciou o počte nezhôd." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Predvolené nastavenie zlúčenia medzier 2 súborov:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Ručná voľba" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"UmožniÅ¥ algoritmu zlúčenia automaticky vybraÅ¥ vstup iba pre zmeny medzier." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Predvolené nastavenie zlúčenia medzier 3 súborov:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Regulárny výraz automatického zlúčenia" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regulárny výraz automatického zlúčenia:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "SpustiÅ¥ automatické zlúčenie regulárnych výrazov na začiatku zlúčenia" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"SpustiÅ¥ zlúčenie pre regulárne výrazy automatického zlúčenia\n" +"hneď pri začatí zlúčenia.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Zlučovanie histórie správy verzií" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Regulárny výraz historického začiatku:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regulárny výraz začiatku historickej položky:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Triedenie histórie zlúčenia" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "RoztriediÅ¥ históriu správy verzií podľa kľúča." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Poradie triediaceho kľúča začiatku historickej položky:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "ZlúčiÅ¥ históriu správy verzií na začiatku zlúčenia" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"SpustiÅ¥ automatické zlúčenie histórie správy verzií na začiatku zlúčenia." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Maximálny počet historických položiek:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "OdrezaÅ¥ po zadanom počte. PoužiÅ¥ -1 pre nekonečný počet položiek." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Otestujte vaÅ¡e regulárne výrazy" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Irelevantný príkaz zlúčenia:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Ak je stanovené, tento skript sa spustí po automatickom zlúčení,\n" +"keď neboli zistené žiadne iné významné zmeny.\n" +"Volaný s parametrami: filename1 filename2 filename3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automaticky uložiÅ¥ a ukončiÅ¥ pri zlúčení bez nezhôd" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Ak sa aplikácia KDiff3 spustila z príkazového riadka na súborové zlúčenie a " +"vÅ¡etky\n" +"nezhody sú rieÅ¡iteľné bez zásahu používateľa, potom nastane automatické " +"uloženie a ukončenie programu.\n" +"(Podobne ako voľba príkazového riadka \"--auto\".)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Rekurzívne adresáre" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Či analyzovaÅ¥ podadresáre alebo nie." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Súborový vzor(y):" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Vzor(y) súborov, ktoré majú byÅ¥ analyzované.\n" +"Zástupné znaky: '*' and '?'\n" +"Niekoľko vzorov možno zadaÅ¥ pomocou oddeľovača: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Súborový protivzor(y):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Vzor(y) súborov, ktoré majú byÅ¥ vylúčené z analýzy.\n" +"Zástupné znaky: '*' and '?'\n" +"Niekoľko vzorov možno zadaÅ¥ pomocou oddeľovača: ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Súborový protivzor(y):" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Vzor(y) priečinkov, ktoré majú byÅ¥ vylúčené z analýzy.\n" +"Zástupné znaky: '*' and '?'\n" +"Niekoľko vzorov možno zadaÅ¥ pomocou oddeľovača: ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "PoužiÅ¥ súbor ignorovania" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"RozÅ¡iruje protivzor na čokoľvek, čo by bolo ignorované CVS.\n" +"Cez lokálne súbory \".cvsignore\" toto môže byÅ¥ Å¡pecifické pre adresár." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "NájsÅ¥ skryté súbory a adresáre" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Nájde skryté súbory a adresáre." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "NasledovaÅ¥ súborové odkazy" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Zapnuté: PorovnaÅ¥ súbor, na ktorý ukazuje odkaz.\n" +"Vypnuté: PorovnaÅ¥ odkazy." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "NasledovaÅ¥ odkazy priečinkov" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Zapnuté: PorovnaÅ¥ súbor, na ktorý ukazuje odkaz.\n" +"Vypnuté: PorovnaÅ¥ odkazy." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Porovnanie názvov súborov s rozliÅ¡ovaním veľkosti písmen" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Porovnanie adresárov bude porovnávaÅ¥ súbory alebo adresáre, pokiaľ sa " +"zhodujú ich názvy.\n" +"NastaviÅ¥ túto voľbu, ak sa názvy musia zhodovaÅ¥. (Predvolené nastavenie pre " +"Windows je vypnuté, inak zapnuté)." + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "RozbaliÅ¥ vÅ¡etky podadresáre pri načítaní" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Zapnuté: Rozvinúť podadresáre pri spustení porovnania adresára.\n" +"Vypnuté: NechaÅ¥ podadresáre zvinuté." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "PreskočiÅ¥ správu o stave adresárov" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Zapnuté: NezobrazovaÅ¥ stav porovnania adresárov.\n" +"Vypnuté: ZobraziÅ¥ stavové dialógové okno pri spustení." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Režim porovnania súborov" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binárne porovnanie" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binárne porovnanie každého súboru. (Predvolené)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Plná analýza" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"UrobiÅ¥ úplnú analýzu a ukázaÅ¥ Å¡tatistické informácie v ďalších stĺpcoch.\n" +"(PomalÅ¡ie než binárne porovnanie, oveľa pomalÅ¡ie pre binárne súbory.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "DôverovaÅ¥ veľkosti a dátumu zmeny (nebezpečné)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"PredpokladaÅ¥, že súbory sú rovnaké, pokiaľ sú dátum zmeny a dĺžka súborov " +"rovnaké.\n" +"Súbory s rovnakým obsahom, ale odliÅ¡nými dátumami zmeny sa zobrazia ako " +"rozdielne.\n" +"Vhodné pre veľké adresáre alebo pomalé siete." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"DôverovaÅ¥ veľkosti a dátumu, ale použiÅ¥ binárne porovnanie, ak dátum " +"nezodpovedá (nebezpečné)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"PredpokladaÅ¥, že súbory sú rovnaké, pokiaľ sú dátum zmeny a dĺžka súborov " +"rovnaké\n" +"Ak dátumy nie sú rovnaké, ale veľkosti sú, použiÅ¥ binárne porovnanie.\n" +"Vhodné pre veľké adresáre alebo pomalé siete." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "DôverovaÅ¥ veľkosti (nebezpečné)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"PredpokladaÅ¥, že súbory sú rovnaké, pokiaľ sú dĺžky súborov rovnaké\n" +"Vhodné pre veľké adresáre alebo pomalé siete,kedy je dátum zmenený v " +"priebehu sÅ¥ahovania." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "SynchronizovaÅ¥ adresáre" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Ponúka ukladanie súborov v oboch adresároch tak, že\n" +"obaja adresáre sú potom rovnaké.\n" +"Funguje iba pri porovnávaní dvoch adresárov bez určenia cieľa." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Rozdiely medzier považované za rovnaké" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Ak sa súbory líšia iba medzerou, považujú za rovnaké.\n" +"Toto je aktívne iba vtedy, keď je zvolená úplná analýza." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "KopírovaÅ¥ novÅ¡ie miesto zlučovania (nebezpečné)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"NepozeraÅ¥ sa dovnútra, zobraÅ¥ novší súbor.\n" +"(Použite iba vtedy, ak viete, čo robíte!)\n" +"Účinná iba pri porovnávaní dvoch adresárov." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Záložné súbory (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Ak by mal byÅ¥ súbor uložený cez starý súbor, potom bude starý súbor\n" +"premenovaný s príponou \".orig\" miesto vymazania." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Miestne nastavenia" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "PoužiÅ¥ rovnaké kódovanie pre vÅ¡etko:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Aktivácia tohoto umožňuje zmeniÅ¥ vÅ¡etky kódovania zmenou iba prvého.\n" +"ZakázaÅ¥ toto, ak sú potrebné rôzna individuálne nastavenia." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Poznámka: Lokálne kódovanie je \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Kódovanie súboru pre A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ak je povolené, potom kódovanie Unicode (UTF-16 alebo UTF-8) bude zistené.\n" +"V prípade, že súbor nie je Unicode, potom vybrané kódovanie bude použitý ako " +"núdzové.\n" +"(Detekcia Unicode závisí na prvých bajtov súboru.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Automaticky detegovaÅ¥ Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Kódovanie súboru pre B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Kódovanie súboru pre C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kódovanie súboru pre výstup zlúčenia a uloženie:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automatický výber" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ak je povolené, potom sa používa kódovanie zo vstupných súborov.\n" +"V nejednoznačných prípadoch dialóg vyzve používateľa, aby si zvolil " +"kódovanie pre uloženie." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Súborové kódovanie pre súbory preprocesora:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Jazyk sprava doľava" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Niektoré jazyky sa čítajú sprava doľava.\n" +"Toto nastavenie podľa toho zmení prehliadač a editor." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integrácia" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Nastavenia integrácie" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Voľby príkazového riadka, ktoré sa ignorujú:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Zoznam volieb príkazového riadka, ktoré by mali byÅ¥ ignorované pri použití " +"KDiff3 inými nástrojmi.\n" +"Niekoľko hodnoty možno zadaÅ¥, ak sa oddelia s ';'\n" +"Toto potlačí chybu \"Neznáma voľba\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "UkončiÅ¥ tiež pomocou klávesy Escape" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Rýchly spôsob ukončenia.\n" +"Pre tých, ktorí sú zvyknutí používaÅ¥ klávesu Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Toto obnoví vÅ¡etky voľby. Nielen tie zo súčasnej témy." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "PreprocessorCmd: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Nasledujúca voľba(y), ktoré ste vybrali, môžu zmeniÅ¥ dáta:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"S najväčšou pravdepodobnosÅ¥ou toto nie je žiaduce pri zlúčení.\n" +"Chcete zakázaÅ¥ tieto nastavenia, alebo pokračovaÅ¥ s týmito nastaveniami " +"aktívnymi?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Nebezpečná voľba pre zlučovanie" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "PoužiÅ¥ tieto voľby počas zlúčenia" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "ZakázaÅ¥ nebezpečné voľby" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Načítavam A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Načítavam A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Načítavam B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Načítavam B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linediff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Načítavam C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Načítavam C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"VÅ¡etky vstupné súbory obsahujú rovnaký text, ale nie sú binárne rovnaké." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Súbory %1 a %2 majú rovnaký text, ale nie sú binárne rovnaké.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Niektoré vstupné súbory sa nezdajú byÅ¥ čisté textové súbory.\n" +"Zlúčenie KDiff3 nebolo určené pre binárne dáta.\n" +"Pokračujte na vlastné riziko." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Niektoré vstupné znaky nemožno previesÅ¥ na platné unicode.\n" +"Možno používate zlý kodek. (Napr. UTF-8 pre súbory, ktoré nie sú UTF-8).\n" +"Neukladajte výsledok, ak si nie ste istí. Pokračujte na vlastné riziko.\n" +"Ovplyvnené vstupné súbory sú v %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "PreruÅ¡iÅ¥" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Otváram súbory..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Vystrihávam výber..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopírujem výber do schránky..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Vkladá sa obsah schránky..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Zalomenie slov (ZruÅ¡iÅ¥ zakáže zalomenie slov)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Vypočítavam maximálnu šírku pre vodorovný posuvník" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "UložiÅ¥ && pokračovaÅ¥" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "PokračovaÅ¥ bez uloženia" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Hľadanie ukončené." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Hľadanie ukončené" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Nič nie je vybrané ani vo vstupnom okne diff." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Chyba pri pridávaní ručného diff rozsahu" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&ZruÅ¡iÅ¥" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Swap %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "KopírovaÅ¥ %1->Výstup" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "VymeniÅ¥ %1<->Výstup" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "NastaviÅ¥..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "OtvoriÅ¥ priečinok" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "VybraÅ¥ výstupný súbor" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "vÅ¡etko/vÅ¡etky súbory(*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "HľadaÅ¥ text:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "RozliÅ¡ovaÅ¥ veľkosÅ¥ písmen" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "HľadaÅ¥ A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "HľadaÅ¥ B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "HľadaÅ¥ C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Výstup hľadania" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&HľadaÅ¥" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Tester regulárneho výrazu" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Riadok príkladu automatického zlúčenia:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Pre vyskúšanie automatického zlúčenia, skopírovaÅ¥ riadok, ako je použitý v " +"súboroch." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Výsledok zosúladenia:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Riadok historického začiatku príkladu (s úvodným komentárom):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"KopírovaÅ¥ riadok historického začiatku tak, ako sa používa vo vaÅ¡ich " +"súboroch,\n" +"vrátane úvodného komentára." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Poradie triediaceho kľúča histórie:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Riadok začiatku historickej položky príkladu (bez úvodného komentára):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"KopírovaÅ¥ riadok začiatku historickej položky tak, ako sa používa vo vaÅ¡ich " +"súboroch,\n" +"ale vynechaÅ¥ úvodný komentár." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Výsledok triediaceho kľúča:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Zosúladenie úspeÅ¡né." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Zosúladenie zlyhalo." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Otváracie a zatváracie zátvorky sa nezhodujú v regulárnych výrazoch." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Zapisovanie dát zo schránky do dočasný súboru zlyhalo." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Zo schránky" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 nie je normálny súbor." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "Dočasný súbor je: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"ČinnosÅ¥ preprocesora asi zlyhala. SkontrolovaÅ¥ tento príkaz:\n" +"\n" +" %1\n" +"\n" +"Príkaz činnosti preprocesora sa teraz zakáže." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Súbor %1 je príliÅ¡ veľký na spracovanie. Preskočím." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Porovnávanie riadkov preprocesora asi zlyhalo. SkontrolovaÅ¥ tento príkaz:\n" +"\n" +" %1\n" +"\n" +"Príkaz porovnávanie riadkov preprocesora sa teraz zakáže." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Očakávanie medzery po uzatvorení apostrofom." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Nenájdená úvodzovka." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Neočakávaný apostrof v argumente." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Neurčený žiadny program." \ No newline at end of file diff --git a/po/sk/kdiff3fileitemactionplugin.po b/po/sk/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..44fae63 --- /dev/null +++ b/po/sk/kdiff3fileitemactionplugin.po @@ -0,0 +1,100 @@ +# translation of kdiff3fileitemactionplugin.po to Slovak +# Richard Fric , 2011. +# Roman Paholík , 2012, 2013, 2014, 2019, 2022. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2022-04-06 17:51+0200\n" +"Last-Translator: Roman Paholik \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 21.12.3\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "PorovnaÅ¥ s %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "ZlúčiÅ¥ s %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "UložiÅ¥ '%1' na neskôr" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-cestné zlúčenie so základom" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "PorovnaÅ¥ s..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "VyčistiÅ¥ zoznam" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "PorovnaÅ¥" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3 cestné porovnanie" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "O plugine ponuky KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "Plugin ponuky súboru KDiff3: Copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Použitie rozšírenia kontextovej ponuky:\n" +"Na jednoduché porovnanie dvoch vybraných súborov vyberte \"PorovnaÅ¥\".\n" +"Ak iný súbor je niekde inde, \"Uložte\" najprv prvý súbor na neskôr. Objaví " +"sa v podponuke \"PorovnaÅ¥ s ...\". Potom použite \"PorovnaÅ¥ s\" na druhom " +"súbore.\n" +"Pre trojcestné zlúčenie najprv \"Uložte\" základný súbor, potom vetvu na " +"zlúčenie a vyberte \"3-cestné zlúčenie so základom\" na ďalÅ¡ej vetve, ktorá " +"sa použije ako cieľ.\n" +"Rovnako sa to používa na porovnanie a zlúčenie adresárov." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "O plugine akčnej položky súboru KDiff3" \ No newline at end of file diff --git a/po/sl/diff_ext.po b/po/sl/diff_ext.po new file mode 100644 index 0000000..cbdada3 --- /dev/null +++ b/po/sl/diff_ext.po @@ -0,0 +1,130 @@ +# Slovenian translation of KDiff3 +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# Matjaž Jeran , 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-04-30 14:53+0200\n" +"Last-Translator: Matjaž Jeran \n" +"Language-Team: Slovenian \n" +"Language: sl\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-Generator: Lokalize 20.08.1\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Primerjaj z %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Združi z %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "3-stransko združevanje z bazo" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Shrani '%1' za kasneje" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Primerjaj z ..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Počisti seznam" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Primerjaj" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3 stranska primerjava" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "O Diff-Ext ..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Vse pravice pridržane.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Ta programska oprema se lahko distribuira pod licenco BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Nekaj razÅ¡iritev za KDiff3 (c) 2006-2013 Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Prenos na Qt5/Kf5 Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Domača stran za Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "O Diff-Ext za KDiff3 (64 bitno)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Primerjaj izbrani datoteki" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Primerjaj '%1' z '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Shrani '%1' za nadaljnje obdelave" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "KDiff3 ni bilo mogoče zagnati. Znova zaženite namestitev KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Ukaz" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Ukazna vrstica" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext za KDiff3" \ No newline at end of file diff --git a/po/sl/kdiff3.po b/po/sl/kdiff3.po new file mode 100644 index 0000000..5f1ef9c --- /dev/null +++ b/po/sl/kdiff3.po @@ -0,0 +1,3580 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Andrej Mernik , 2012, 2013, 2014. +# Matjaž Jeran , 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-03-21 22:50+0100\n" +"Last-Translator: Matjaž Jeran \n" +"Language-Team: Slovenian \n" +"Language: sl\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-Generator: Lokalize 20.08.1\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Andrej Mernik" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "andrejm@ubuntu.si" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Pridobivanje stanja datoteke: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Branje datoteke: %1 " + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Zapisovanje datoteke: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Zmanjkalo pomnilnika" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Ustvarjanje mape: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Odstranjevanje mape: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Odstranjevanje datoteke: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Ustvarjanje simbolne povezave: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Preimenovanje datoteke: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopiranje datoteke: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Branje mape: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Seznam predmetov v mapi: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Napaka izgube podatkov:\n" +"Če se to zgodi znova, stopite v stik z avtorjem.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Å tevilne notranje napake" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Resna notranja napaka." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Resna notranja napaka: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Datoteka %1: Vrstica %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Datoteka %1: Vrstica ni na voljo" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodiranje:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Slog konca vrstice:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (osnova)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kodiranje: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Slog konca vrstice: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Zgornja vrstica" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Konec" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Odpri datoteko" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Ostalo" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopiraj A v B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopiraj B v A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "IzbriÅ¡i A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "IzbriÅ¡i B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "IzbriÅ¡i A in B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Združi v A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Združi v B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Združi v A in B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "IzbriÅ¡i (če obstaja)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Združi" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Združi (ročno)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Napaka: spori vrst datotek" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Napaka: spremenjeno in izbrisano" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Napaka: datumi so enaki, datoteke pa ne." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Končano" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Napaka" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Preskočeno." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Ni shranjeno." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "V teku ..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Za narediti." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Ime" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Dejanje" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Stanje" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "NereÅ¡eno" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "ReÅ¡eno" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Niso presledni" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Presledni" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Trenutno združujete mape. Ali ste prepričani, da želite prekiniti " +"združevanje in ponovno preiskati mapo?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Opozorilo" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Znova preišči" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Nadaljuj z združevanjem" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Odpiranje map je spodletelo:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Mapa A \"%1\" ne obstaja ali pa ni mapa.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Mapa B \"%1\" ne obstaja ali pa ni mapa.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Mapa C \"%1\" ne obstaja ali pa ni mapa.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Napaka med opiranjem mape" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Ciljna mapa ne sme biti enaka A ali B, ko se izvaja združevanje treh map.\n" +"Preverite znova preden nadaljujete." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Opozorilo parametra" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Preiskovanje map..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Branje mape A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Branje mape B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Branje mape C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Nekatere podmape niso bile berljive v" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Preverite dovoljenja podmap." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Pripravljen." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Status primerjave map\n" +"\n" +"Å tevilo podmap: %1\n" +"Å tevilo enakih datotek: %2\n" +"Å tevilo različnih datotek: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Å tevilo ročnih združitev: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "To vpliva na vsa dejanja združevanja." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Spreminjanje vseh dejanj združevanja" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Obdelovanje %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Nekaterih datotek ni bilo mogoče obdelati." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Prekinjam izvajanje zaradi preveč napak." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "To dejanje trenutno ni mogoče." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Dejanje ni mogoče" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Med kopiranjem je priÅ¡lo do napake." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Napaka združevanja" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Neznano dejanje združevanja. (To se ne sme nikoli zgoditi!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Neznano dejanje združevanja." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Združevanje se bo pravkar začelo.\n" +"\n" +"Izberite \"Izvedi\", če ste prebrali navodila in veste kaj delate.\n" +"Če izberete \"Simuliraj\", boste izvedeli kaj se bi zgodilo.\n" +"\n" +"Ta program je Å¡e v stanju beta in zanj ne obstaja NOBENE GARANCIJE! " +"Napravite varnostne kopije vaÅ¡ih pomembnih podatkov!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Začenjanje združevanja" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Izvedi" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simuliraj" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Poudarjen predmet ima različno vrsto v različnih mapah. Izberite kaj želite " +"narediti." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Datumi spremembe datoteke so enaki, ampak datoteke niso. Izberite kaj želite " +"narediti." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Datumi spremembe datoteke so enaki, ampak datoteke niso. Izberite kaj želite " +"narediti." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "To dejanje trenutno ni mogoče, saj teče združevanje map." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"V zadnjem koraku je priÅ¡lo do napake.\n" +"Ali želite nadaljevati s predmetom, ki je povzročil napako ali želite " +"preskočiti ta predmet?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Nadaljuj z združevanjem po napaki" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Nadaljuj z zadnjim predmetom" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Preskoči predmet" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Dejanje združevanja je končano." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Združevanje končano" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulacija združevanja je končana: preverite, če se strinjate s predlaganimi " +"dejanji." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "PriÅ¡lo je do napake. Kliknite 'V redu', da vidite več podrobnosti." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Napaka med brisanjem %1: ustvarjanje varnostne kopije je spodletelo." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "rekurzivno izbriÅ¡i mapo( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "izbriÅ¡i ( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Napaka: dejanje brisanja map je spodletelo med branjem mape." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Napaka: dejanje odstrani mapo ( %1 ) je spodletelo." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Napaka: dejanje brisanja je spodletelo." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ročno združevanje ( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Opomba: po ročnem združevanju mora uporabnik nadaljevati s pritiskom " +"tipke F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Napaka: kopiranje ( %1 -> %2 ) je spodletelo. Brisanje obstoječega cilja je " +"spodletelo." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "kopiraj povezavo ( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Napaka: kopiraj povezavo je spodletelo: oddaljene povezane Å¡e niso podprte." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Napaka: kopiraj povezavo je spodletel." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopiraj ( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Napaka med preimenovanjem ( %1 -> %2 ): ni mogoče izbrisati obstoječega " +"cilja." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "preimenuj ( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Napaka: preimenovanje je spodletelo" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Napaka med ustvarjanjem mape %1. Ni mogoče izbrisati obstoječe datoteke." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "ustvari mapo ( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Napaka med ustvarjanjem mape." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Cilj" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Mapa" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Vrsta" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Velikost" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Atrib." + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Zadnja sprememba" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Cilj povezave" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Datoteka" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Povezava" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ni na voljo" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (cilj): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (osnova): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (cilj): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (cilj): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Cilj: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Shrani stanje združevanja map kot..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Začni/nadaljuj združevanje map" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Zaženi dejanje za trenuten predmet" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Primerjaj izbrano datoteko" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Združi trenutno datoteko" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Združi\n" +"datoteko" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Zloži vse podmape" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "RazÅ¡iri vse podmape" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Izberi A za vse predmete" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Izberi B za vse predmete" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Izberi C za vse predmete" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Samodejno izberi dejanje za vse predmete" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ni dejanja za vse predmete" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Pokaži enake datoteke" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Enake\n" +"datoteke" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Pokaži različne datoteke" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Pokaži samo datoteke v A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Datoteke\n" +"samo v A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Pokaži samo datoteke v B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Datoteke\n" +"samo v B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Pokaži samo datoteke v C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Datoteke\n" +"samo v C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Primerjaj izrecno izbrane datoteke" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Združi izrecno izbrane datoteke" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ne naredi ničesar" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "IzbriÅ¡i A in B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Združi v A in B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Ni bilo mogoče določiti polni spletni naslov. Ni določen nadrejeni." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Ni bilo mogoče brati datoteke: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Ustvarjanje začasne kopije %1 je spodletelo." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Odpiranje %1 je spodletelo. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Napaka med branjem iz %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Med ustvarjanje varnostne kopije je spodletelo brisanje starejÅ¡e varnostne " +"kopije.\n" +"Ime datoteke: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Med ustvarjanjem varnostne kopije je spodletelo preimenovanje datotek.\n" +"Imena datotek: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Trenutne nastavitve" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Napaka možnosti nastavitev:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" +"Uporabljena je bila možnost --auto, ni pa bila določena izhodna datoteka." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Za primerjave map je bila prezrta možnost --auto." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Shranjevanje je spodletelo." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Odpiranje teh datotek je spodletelo:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Napaka med odpiranjem datoteke" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Odpre dokumente za primerjavo ..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Znova naloži" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Shrani rezultat združevanja. Vsi spori morajo biti reÅ¡eni!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Shrani trenuten dokument kot ..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Natisne razlike" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Konča program" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Izreže izbrani odsek in ga odloži v odložišče" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopira izbrani odsek v odložišče" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Prilepi vsebino odložišča na trenutni položaj" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Izbere vse v trenutnem oknu" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Poišče niz" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Znova išče za nizom" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Omogoči/onemogoči vrstico stanja" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Nastavi KDiff3 ..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Pojdi na trenutno razliko" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Trenutna\n" +"razlika" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Pojdi na prvo razliko" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Prva\n" +"razlika" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Pojdi na zadnjo razliko" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Zadnja\n" +"razlika" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(preskoči razlike zaradi preslednih znakov, če je onemogočeno \"Pokaži " +"presledne znake\".)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(ne preskoči razlike zaradi preslednih znakov, tudi če je onemogočeno " +"\"Pokaži presledne znake\".)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Pojdi na predhodno razliko" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Predh.\n" +"razlika" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Pojdi na naslednjo razliko" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Nasl.\n" +"razlika" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Pojdi na predhodni spor" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Predh.\n" +"spor" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Pojdi na naslednji spor" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Nasl.\n" +"spor" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Pojdi na predhodni nereÅ¡en spor" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Predh.\n" +"nereÅ¡en" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Pojdi na naslednji nereÅ¡en spor" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Nasl.\n" +"nereÅ¡en" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Izberi vrstice iz A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Izberi\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Izberi vrstice iz B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Izberi\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Izberi vrstice iz C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Izberi\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Po izbiri vira, se samodejno premakni na naslednji nereÅ¡en spor" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Samod.\n" +"naslednji" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Prikaži znake presledkov in tabulatorjev" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "Znaki" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Presledni znak" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Presledne\n" +"razlike" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Pokaži Å¡tevilke vrstic" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Å tevilke\n" +"vrstic" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Samodejno reÅ¡i preproste spore" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Določi razlike za spore" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Zaženi samodejno združevanje z regularnimi izrazi" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Samodejno reÅ¡i spore zgodovine" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Razdeli Diff pri izbiri" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Združi izbrane Diffe" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Pokaži okno A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Pokaži okno B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Pokaži okno C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Običajni pregled" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Pregled A proti B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Pregled A proti C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Pregled B proti C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Ovijanje besed oken Diffov" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Dodaj ročno poravnavo Diffov" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Počisti vse ročne poravnave Diffov" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Naslednje okno v žarišče" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Predhodno okno v žarišče" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Preklopi usmerjenost razdelitve" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Razdeljeni pogled map in besedila" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Preklopi med pogledom map in besedila" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Rezultat združevanja ni bil shranjen." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Shrani in končaj" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Končaj brez shranjevanja" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Shranjevanje rezultata združevanja je spodletelo." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Trenutno združujete mape. Ali ste prepričani, da želite prekiniti?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Shranjevanje datoteke ..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Shranjevanje datoteke z novim imenom ..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Shrani kot ..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Tiskanje ni podprto." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Tiskanje ..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Tiskanje strani %1 od %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Izbira)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Tiskanje je končano.." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Tiskanje je prekinjeno.." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Končujem ..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Preklapljanje orodne vrstice ..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Preklopi vrstico stanja ..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "KPart za prikaz slik SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Nastavi KDiff3 " + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Ni bilo mogoče nastaviti začetnih vrednosti za del KDiff3.\n" +"To se običajno zgodi, če je prisotna težava z namestitvijo. Preberite si " +"datoteko README v paketu z izvorno kodo za več podrobnosti." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Datoteka" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Mapa" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Dejanje združevanja za trenuten predmet" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Dejanje usklajevanja za trenuten predmet" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "Pre&mikanje" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Pogled D&iff" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Združi" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Okno" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Glavna orodna vrstica" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Prezrto. (UporabniÅ¡ko določeno.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bitov)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bitov)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Orodje za primerjavo in združevanje datotek in map" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Združi vhod." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Izrecna osnovna datoteka. Za združljivost z določenimi orodji." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Izhodna datoteka. Vključuje -m. Npr.: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Izhodna datoteka, znova. (Za združljivost z določenimi orodji.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Grafičnega vmesnika ni, če so vsi spori samodejno reÅ¡ljivi. (Zahteva -o " +"datoteka)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Prezri --auto in vedno prikaži uporabniÅ¡ki vmesnik." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Prezrto." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Vidna sprememba imena za vhodno datoteko 1 (osnova)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Vidna sprememba imena za vhodno datoteko 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Vidna sprememba imena za vhodno datoteko 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Drugotna vidna sprememba imena. Dodajte to enkrat za vsak vhod." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"PrepiÅ¡e nastavitev. Uporabite enkrat za vsako nastavitev. Npr.: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Pokaže seznam nastavitev in trenutnih vrednosti." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Uporabi drugo nastavitveno datoteko." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "datoteka1, ki bo odprta (osnovna, če ni določena preko --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "datoteka2 za odprtje" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "datoteka3 za odprtje" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Poglejte kdiff3 --help za podprt možnosti." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Ni mogoče primerjati nenormalne datoteke z normalno datoteko." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "MeÅ¡anica povezav in običajnih datotek." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Povezava: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Velikost. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Datum in velikost: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Primerjava datotek ..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Povsod izberi A" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Povsod izberi B" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Povsod izberi C" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Izberi A za vse nereÅ¡ene spore" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Izberi B za vse nereÅ¡ene spore" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Izberi C za vse nereÅ¡ene spore" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Izberi A za vse nereÅ¡ene spore s preslednimi znaki" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Izberi B za vse nereÅ¡ene spore s preslednimi znaki" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Izberi C za vse nereÅ¡ene spore s preslednimi znaki" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Å tevilo nereÅ¡enih sporov: %1 (od tega je %2 preslednih znakov)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Izhod je bil spremenjen.\n" +"Če nadaljujete, bodo vaÅ¡e spremembe izgubljene." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Vse vhodne datoteke so dvojiÅ¡ko enake." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Vse vhodne datoteke vsebujejo enako besedilo." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Datoteki %1 in %2 sta dvojiÅ¡ko enaki.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Datoteki %1 in %2 vsebujeta enako besedilo.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Skupno Å¡tevilo sporov: %1\n" +"Å t. avtomatsko reÅ¡enih sporov: %2\n" +"Å tevilo nereÅ¡enih sporov: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Spori" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Vsi spori Å¡e niso reÅ¡eni.\n" +"Datoteka ni bila shranjena." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Preostalih sporov" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Obstaja spor koncev vrstic. Ročno izberite slog konca vrstice.\n" +"Datoteka ni bila shranjena." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Ustvarjanje varnostne kopije je spodletelo. Datoteka ni bila shranjena." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Napaka med shranjevanjem datoteke" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Napaka med zapisovanjem." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Izhod:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Spremenjeno]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Kodiranje za shranjevanje:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Spor" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Kodek iz A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Kodek iz B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Kodek iz C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialog" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (osnova):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Izhod (izbirno):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Datoteka ..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Zamenjaj/kopiraj imena..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (izbirno):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Mapa..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Vnos zgodovine nadzora različic sestoji iz Å¡tevilnih vrstic.\n" +"Navedite regularni izraz za zaznavanje prve vrstice (brez začetne opombe).\n" +"Za združevanje ključev, ki bi jih radi uporabili za razvrščanje, uporabite " +"oklepaje.\n" +"Če to pustite prazno, potem KDiff3 predpostavlja, da vnose zgodovine " +"ločujejo prazne vrstice.\n" +"Za več podrobnosti si oglejte dokumentacijo." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Vsak par oklepajev uporabljenih v regularnem izrazu za začetno vrednost " +"zgodovine\n" +"vsebuje ključ, ki se lahko uporabi za razvrščanje.\n" +"Podajte seznam ključev (ti so oÅ¡tevilčeni glede na vrstni red pojavitve " +"(začetek je 1), tako, da za ločilnik uporabite ',' (npr. " +"\"4,5,6,1,2,3,7\").\n" +"Če to pustite prazno, razvrščanje ne bo izvedeno.\n" +"Za več podrobnosti si oglejte dokumentacijo." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regularni izraz za vrstice, kjer naj bi KDiff3 samodejno izbral en vir.\n" +"Ko se vrstica s sporom ujema z regularnim izrazom, potem bo izbran\n" +"- če je to mogoče - C, v nasprotnem primeru pa B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regularni izraz za začetek vnosa zgodovine nadzora različic.\n" +"Običajno ta vrstica vsebuje ključno besedo \"$Log$\".\n" +"Privzeta vrednost: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Spremeni pisavo" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Pisava: %1, %2, %3\n" +"\n" +"Primer:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Spremenite to, če niso pravilno prikazani ne-ASCII znaki." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Nastavi" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Pisava" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Pisava urejevalnika in izhoda Diff" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Pisava programa" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Pisava za vpogled v datoteko" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Barva" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Nastavitve barv" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Pogledi urejevalnika in DIff:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Barva ospredja:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Barva ozadja:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Barva ozadja DIff:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Barva A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Barva B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Barva C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Barva spora:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Trenutna barva ozadja obsega:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Trenutna barva ozadja obsega Diff:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Barva za ročno poravnane obsege razlik:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Pogled primerjave map:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Barva najnovejÅ¡e datoteke:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "Sprememba te barve bo vidna, ko bo začeta nova primerjava map." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Barva najstarejÅ¡e datoteke:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Barva datoteke srednje starosti:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Barva za manjkajoče datoteke:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Urejevalnik" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "ObnaÅ¡anje urejevalnika" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabulator vstavi presledke" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Vključeno: pritisk tabulatorja ustvari primerno Å¡tevilo presledkov.\n" +"Izključeno: vstavljen bo znak tabulatorja." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Velikost tabulatorja:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Samodejno zamikanje" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Vključeno: zamikanje predhodne vrstice je uporabljeno za novo vrstico.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Samodejno kopiraj izbiro" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Vključeno: vsaka izbira je takoj zapisana v odložišče.\n" +"Izključeno: Izrecno morate kopirati, npr. preko Ctrl+C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Samodejno ugotovi" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Določi konce vrstic za shranjevanje urejenih datotek.\n" +"DOS/Windows: CR+LF; UNIX: LF; z CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Nastavitve Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ne upoÅ¡tevaj cifer (obravnavaj cifre kot presledni znak)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Prezre Å¡tevilke med korakom ujemanja vrstic. (Podobno kot prezri presledne " +"znake.)\n" +"Lahko pomaga pri primerjavi datotek s Å¡tevilčnimi podatki." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ne upoÅ¡tevaj komentarjev C/C++ (obravnavaj jih kot presledne znake)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Obravnava opombe C/C++ kot presledne znake." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Prezri velike/male (obravnavaj kot presledne znake)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Razlike v velikosti črk obravnava kot spremembe preslednih znakov. " +"('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Ukaz za predobdelovanje:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"UporabniÅ¡ko določeno predobdelovanje. (Za podrobnosti si oglejte " +"dokumentacijo.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Ukaz ujemanja vrstic za predobdelovanje:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Ta predobdelovalnik je uporabljen le med ujemanjem vrstic.\n" +"(Za podrobnosti si oglejte dokumentacijo.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Potrudi se (počasneje)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Omogoči možnost --minimal za zunanji diff.\n" +"Preučevanje velikih datotek bo veliko počasneje." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Poravnaj B in C za 3 vhodne datoteke" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Poskusi poravnati B in C med primerjavo ali združevanjem treh vhodnih " +"datotek.\n" +"Ni priporočeno za združevanje, ker lahko postane bolj zapleteno.\n" +"(Privzeto je izključeno.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Zlij" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Nastavitve združevanja" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Zakasnitev samodejnega napredovanja (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Ko je vklopljen način samodejnega napredovanja, je pred preskokom na \n" +"naslednji spor prikazan rezultat trenutne izbire za določen čas. Obseg: 0 - " +"2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Pokaži pogovorna okna s podrobnostmi" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Pokaže pogovorno okno s podrobnosti o Å¡tevilu sporov." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Privzeta nastavitev za združevanje preslednih znakov dveh datotek:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Ročna izbira" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Dovoli algoritmu združevanja, da samodejno izbere vhod za spremembe " +"preslednih znakov." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Privzeta nastavitev za združevanje preslednih znakov treh datotek:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Regularni izraz samodejnega združevanja" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regularni izraz samodejnega združevanja:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Ob začetku združevanja zaženi samodejno združevanje z regularnimi izrazi" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Zaženi združevanje z regularnimi izrazi samodejnega združevanja\n" +"takoj, ko se združevanje začne.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Združevanje zgodovina nadzora različic" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Regularni izraz začetka zgodovine:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regularni izraz za vnos začetka zgodovine:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Razvrščanje združevanja zgodovine" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Razvrsti zgodovino nadzora različic s pomočjo ključa." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Vrstni red začetnega ključa vnosa zgodovine:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Ob začetku združevanja združi zgodovino nadzora različic" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Ob začetku združevanja samodejno združi zgodovino nadzora različic." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Največje Å¡tevilo vnosov zgodovine:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Odreže po določeni Å¡tevilki. Za neskončno Å¡tevilo vnosov izberite -1." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Preizkus vaÅ¡ih regularnih izrazov" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Ukaz za združevanje za nepomembne spremembe:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Če to navedete, bo ta skript zagnan po samodejnem združevanju\n" +"če ne bo zaznanih drugih pomembnih sprememb.\n" +"Klicano s parametri: ime_datoteke1 ime_datoteke2 ime_datoteke3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Samodejno shrani in končaj ob združevanju brez sporov" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Če je bil KDiff3 začet iz ukazne vrstice za združevanje datotek in so vsi\n" +"spori reÅ¡ljivi, brez, da bi moral posredovati uporabnik, potem bo " +"združevanje\n" +"samodejno shranjeno in program se bo končal.\n" +"(To je podobno možnosti ukazne vrstice \"--auto\".)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Rekurzivne mape" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Ali naj bodo preiskane podmape ali ne." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Vzorci datotek:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Vzorci datotek, ki bodo preučeni.\n" +"Nadomestni znaki: '*' in '?'\n" +"Z uporabo ločilnika ';' lahko določite več vzorcev." + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Vzorci za izključevanje datotek:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Vzorci datotek, ki bodo izključeni iz preučevanja.\n" +"Nadomestni znaki: '*' in '?'\n" +"Z uporabo ločilnika ';' lahko določite več vzorcev." + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Vzorci za izključevanje map:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Vzorci map, ki bodo izključene iz preučevanja.\n" +"Nadomestni znaki: '*' in '?'\n" +"Z uporabo ločilnika ';' lahko določite več vzorcev." + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Uporabi prezri datoteko" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"RazÅ¡iri vzorce izključevanja z vsem kar bi prezrla kontrola virov.\n" +"Z uporabo krajevnih prezrtih datotek je lahko to specifično od mape." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Najdi skrite datoteke in mape" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Najde skrite datoteke in mape." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Sledi povezavam datotek" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Vključeno: primerja datoteko na katero kaže povezava.\n" +"Izključeno: primerja povezave." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Sledi povezavam datotek" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Vključeno: primerja datoteko na katero kaže povezava.\n" +"Izključeno: primerja povezave." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Loči velikost črk pri primerjavi imen datotek" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Primerjava map, bo primerjala datoteke ali mape, ko se ujemajo njihova " +"imena.\n" +"Nastavite to možnost, če se mora ujemate velikost črk imen. (Za Windows je " +"to privzeto izključeno, v nasprotnem primeru je vključeno.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "RazÅ¡iri vse podmape pri nalaganju" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Vklopljeno: Ko primerjate mape, razÅ¡irite vse podmape.\n" +"Izklopljeno: podmape pustite zložene." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Preskoči poročilo o statusu mape" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Vklopljen: Ne prikaži statusa primerjav map.\n" +"Izklopljeno: Na začetku prikaži okno stanja." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Način primerjave datotek" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "DvojiÅ¡ka primerjava" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "DvojiÅ¡ka primerjave vsake datoteke. (Privzeto)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Polno preučevanje" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Napravi polno preučevanje in pokaži statistične podrobnosti v dodatnih " +"stolpcih.\n" +"(Počasneje kot dvojiÅ¡ka primerjava, zelo počasno za dvojiÅ¡ke datoteke.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Zaupaj velikosti in datumu spremembe (ni varno)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Predpostavi, da so datoteke enake, če sta datum spremembe in velikost " +"datoteke enake.\n" +"Datoteke z enako vsebino, ampak različnim časom spremembe, bodo prikazane " +"kot različne.\n" +"Uporabno za velike mape ali počasna omrežja." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Zaupaj velikosti in datumu, ampak uporabi dvojiÅ¡ko primerjavo, če se datum " +"ne ujema (ni varno)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Predvidi, da so datoteke enake, če sta datum spremembe in velikost datoteke " +"enaka.\n" +"Za datoteke z enako velikostjo, ampak z različnim časom spremembe, bo " +"uporabljena dvojiÅ¡ka primerjava.\n" +"Uporabno za velike mape ali počasna omrežja." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Zaupaj velikosti (ni varno)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Predpostavi, da so datoteke enake, če so enako velike.\n" +"Uporabno za velike mape ali počasna omrežja, če je med prejemom spremenjen " +"datum." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Uskladi mape" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Ponudi shranjevanje datotek v obeh mapah, tako\n" +"da je na koncu njuna vsebina enaka.\n" +"Deluje samo ob primerjavi map, brez da navedete cilj." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Razlike v preslednih znakih niso pomembne" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Če se datoteki razlikujeta le v preslednih znakih, jih program obravnava kot " +"enaki.\n" +"To je omogočeno le, če je izbrano polno preučevanje." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopiraj novejÅ¡e namesto združevanja (ni varno)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Ne glej vsebine, ampak vzemi le novejÅ¡o datoteko.\n" +"(To uporabite le, če veste kaj delate!)\n" +"To je smiselno le, če primerjate dve mapi." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Ustvari varnostno kopijo (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Če bi bila datoteka shranjena čez staro datoteko, potem\n" +"bo stara datoteka preimenovana. Dodana ji bo pripona '.orig'\n" +"namesto izbrisa." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Območne nastavitve" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Uporabi enako kodiranje za vse:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Če to omogočite, bodo vsa kodiranja spremenjena le s spremembo prvega.\n" +"Onemogočite to, če so zahtevane različne edinstvene nastavitve." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Opomba: Krajevno kodiranje je \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Kodiranje datoteke A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Če je to omogočeno, bo zaznano kodiranje Unicode (UTF-16 ali UTF-8).\n" +"Če datoteka ni Unicode, potem bo izbrano kodiranje izbrano kot zasilna " +"možnost.\n" +"(Zaznavanje Unicode temelji na prvih bajtih datoteke.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Samodejno zaznaj Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Kodiranje datoteke B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Kodiranje datoteke C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kodiranje datoteke za združevanje izhoda in shranjevanje:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Samodejno izberi" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Če je to omogočeno, bo izbrano kodiranje iz vhodnih datotek.\n" +"V dvoumnih primerih bo pogovorno okno vpraÅ¡alo uporabnika naj izbere " +"kodiranje za shranjevanje." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Kodiranje za datoteke predobdelovalnika" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Jezik za desno proti levi" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Nekateri jeziki so brani od desne proti levi.\n" +"Ta nastavitev bo primerno spremenila pregledovalnik in urejevalnik." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Omogočanje podpore" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Nastavitve omogočanja podpore" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Možnosti ukazne vrstice, ki bodo prezrte:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Seznam možnosti ukazne vrstice, ki naj bi bile prezrte, ko KDiff3 " +"uporabljajo druga orodja.\n" +"Navedete lahko več vrednosti ločenih z ';'\n" +"To bo preprečilo napako \"Neznana možnost\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Končaj tudi preko tipke Escape" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Hiter način za izhod, za tiste, ki so navajeni na uporabo tipke Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "To ponastavi vse možnosti, ne samo tiste za trenutno temo." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Ukaz predobdelovalnika:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Naslednje izbrane možnosti bodo morda spremenile podatke:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Med združevanjem to najverjetneje ni zaželeno.\n" +"Ali želite onemogočiti te nastavitve ali nadaljevati z omogočenimi?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Možnost ni varna za združevanje" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Uporabi te možnosti med združevanjem" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Onemogoči nevarne možnosti" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Nalaganje A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Nalaganje A; %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Nalaganje B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Nalaganje B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linediff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Nalaganje C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Nalaganje C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Vse vhodne datoteke vsebujejo enako besedilo, ampak niso dvojiÅ¡ko enake." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Datoteki %1 in %2 vsebujeta enako besedilo, ampak nista dvojiÅ¡ko enaki. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Nekatere vhodne datoteke ne zgledajo kot čisto besedilne datoteke.\n" +"UpoÅ¡tevajte si, da združevanje s KDiff3 ni bilo namenjeno za dvojiÅ¡ke " +"podatke.\n" +"Nadaljujte na lastno odgovornost." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Nekaterih vhodnih znakov ni bilo mogoče pretvoriti v veljavne Unicode.\n" +"Morda uporabljate napačni kodek (npr. UTF-8 za datoteke, ki niso UTF-8).\n" +"Če niste prepričani, ne shranite rezultata. Nadaljujte na lastno " +"odgovornost.\n" +"Prizadete vhodne datoteke so v %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Prekini" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Odpiranje datotek ..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Izrezovanje izbora ..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopiranje izbora v odložišče ..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Vstavljanje vsebine odložišča ..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Preplet besed (Prekliči onemogoči preplet besed)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Izračun največje Å¡irine za vodoravni drsnik" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Shrani in nadaljuj" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Nadaljuj brez shranjevanja" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Iskanje je zaključeno." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Iskanje je zaključeno" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Nič ni izbrano v nobenem izmed oken z vhodi diff" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Napaka med dodajanjem ročnega obsega diff" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Prekliči" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Zamenjaj %1 <-> %2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopiraj %1 -> Izhod" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Zamenjaj %1 <-> Izhod" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Nastavi ..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Odpri mapo" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Izberite izhodno datoteko" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "vse/vse datoteke (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Poišči besedilo" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Ločevanje velikosti črk" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Najdi v A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Najdi v B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Najdi v C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Najdi v izpisu" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "Po&išči" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "PreizkuÅ¡evalnik regularnih izrazov" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Primer vrstice za samodejno združevanje:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Da preizkusite samodejno združevanje, kopirajte vrstico, kot je uporabljena " +"v vaÅ¡ih datotekah." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Ujemanje rezultata:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Primer začetne vrstice zgodovine (z vodilno opombo):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopirajte začetno vrstico zgodovino, kot je uporabljena\n" +"v vaÅ¡ih datotekah, skupaj z vodilno opombo." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Vrstni red ključa vnosa zgodovine:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Primer začetne vrstice zgodovine (brez vodilne opombe):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopirajte začetno vrstico zgodovino, kot je uporabljena\n" +"v vaÅ¡ih datotekah, ampak izpustite vodilno opombo." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Rezultat ključa razvrščanja:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Uspeh ujemanja. " + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Ujemanje je spodletelo." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Uklepaj in zaklepaj se ne ujemata v regularnem izrazu." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Zapisovanje podatkov iz odložišča v začasno datoteko je spodletelo." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Iz odložišča" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 ni običajna datoteka." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Začasna datoteka je: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Predobdelava je najbrž spodletela. Preverite ta ukaz:\n" +"\n" +" %1\n" +"\n" +"Ukaz za predobdelavo bo sedaj onemogočen." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Datoteka %1 je prevelika za obdelavo. Spuščam." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Predobdelava ujemanja vrstic je najbrž spodletela. Preverite ta ukaz:\n" +"\n" +" %1\n" +"\n" +"Ukaz za predobdelavo ujemanja vrstic bo sedaj onemogočen." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Pričakujem presledek za zaključno navednico." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Neujemajoč opuščaj." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Nepričakovan opuščaj znotraj argumenta." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Ni navedenega programa." \ No newline at end of file diff --git a/po/sl/kdiff3fileitemactionplugin.po b/po/sl/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..0f9960f --- /dev/null +++ b/po/sl/kdiff3fileitemactionplugin.po @@ -0,0 +1,105 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Andrej Mernik , 2012. +# Matjaž Jeran , 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-03-21 22:51+0100\n" +"Last-Translator: Matjaž Jeran \n" +"Language-Team: Slovenian \n" +"Language: sl\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-Generator: Lokalize 20.08.1\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Primerjaj z %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Združi z %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Shrani '%1' za kasneje" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Tristransko združevanje z osnovo" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Primerjaj z..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Počisti seznam" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Primerjaj" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Tristranska primerjava" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "O vstavku menija KDiff3..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Vstavek za dejanja na datotekah KDiff3: Avtorske pravice (C) 2011 Joachim " +"Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Uporaba razÅ¡iritve vsebinskega menija:\n" +"Za preprosto primerjavo dveh izbranih datotek izberite \"Primerjaj\".\n" +"Če je druga datoteka nekje drugje, lahko prvo datoteko \"Shranite za kasneje" +"\". Pojavila se bo v vsebinskem meniju \"Primerjaj z...\". Tega uporabite na " +"drugi datoteki.\n" +"Za tristrano združevanje najprej \"Shranite za kasneje\" osnovno datoteko, " +"nato vejo za združevanje in izberite \"Tristrano združevanje z osnovo\" na " +"drugi veji, ki bo uporabljena kot cilj.\n" +"Enako velja za primerjavo in združevanje map." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Vstavek za dejanja na datotekah KDiff3" \ No newline at end of file diff --git a/po/sr/kdiff3.po b/po/sr/kdiff3.po new file mode 100644 index 0000000..a94e95c --- /dev/null +++ b/po/sr/kdiff3.po @@ -0,0 +1,3594 @@ +# Translation of kdiff3.po into Serbian. +# Slobodan Simic , 2009. +# Chusslove Illich , 2010, 2011, 2012, 2015, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-15 06:48+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Generator: KBabel 1.11.4\n" +"X-Environment: kde\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Слободан Симић,Часлав Илић" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "slsimic@gmail.com,caslav.ilic@gmx.net" + +#: difftextwindow.cpp:414 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:416 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "ред недоступан" + +#: difftextwindow.cpp:1778 +#, kde-format +msgid "Encoding:" +msgstr "Кодирање:" + +#: difftextwindow.cpp:1781 mergeresultwindow.cpp:3166 optiondialog.cpp:840 +#, kde-format +msgid "Line end style:" +msgstr "Стил краја редова:" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:383 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:525 +#: directorymergewindow.cpp:3069 directorymergewindow.cpp:3200 +#: directorymergewindow.cpp:3428 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:1842 +#: mergeresultwindow.cpp:3198 mergeresultwindow.cpp:3205 optiondialog.cpp:1002 +#: optiondialog.cpp:1015 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:848 +#: pdiff.cpp:850 pdiff.cpp:872 smalldialogs.cpp:131 smalldialogs.cpp:133 +#: smalldialogs.cpp:134 smalldialogs.cpp:137 +#, kde-format +msgid "A" +msgstr "А" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:385 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:527 +#: directorymergewindow.cpp:3075 directorymergewindow.cpp:3201 +#: directorymergewindow.cpp:3429 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1844 +#: mergeresultwindow.cpp:3200 mergeresultwindow.cpp:3207 optiondialog.cpp:1003 +#: optiondialog.cpp:1016 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:852 +#: pdiff.cpp:854 pdiff.cpp:874 smalldialogs.cpp:131 smalldialogs.cpp:132 +#: smalldialogs.cpp:135 smalldialogs.cpp:138 +#, kde-format +msgid "B" +msgstr "Б" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:387 +#: directorymergewindow.cpp:440 directorymergewindow.cpp:529 +#: directorymergewindow.cpp:3081 directorymergewindow.cpp:3202 +#: directorymergewindow.cpp:3430 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1846 +#: mergeresultwindow.cpp:3202 mergeresultwindow.cpp:3209 optiondialog.cpp:1017 +#: pdiff.cpp:848 pdiff.cpp:850 pdiff.cpp:852 pdiff.cpp:854 pdiff.cpp:876 +#: smalldialogs.cpp:132 smalldialogs.cpp:133 smalldialogs.cpp:136 +#: smalldialogs.cpp:139 +#, kde-format +msgid "C" +msgstr "Ц" + +#: difftextwindow.cpp:1809 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "А (база):" + +#: difftextwindow.cpp:1811 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Кодирање:" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3211 +#, kde-format +msgid "Unix" +msgstr "Уникс" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3212 +#, kde-format +msgid "DOS" +msgstr "ДОС" + +#: difftextwindow.cpp:1812 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Стил краја редова:" + +# >! Merge whole string. +#: difftextwindow.cpp:1834 kdiff3.cpp:874 +#, kde-format +msgid "Top line" +msgstr "Први ред" + +#: difftextwindow.cpp:1843 +#, kde-format +msgid "End" +msgstr "Крај" + +#: difftextwindow.cpp:1901 smalldialogs.cpp:245 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Отварам фајлове..." + +#: difftextwindow.cpp:1943 optiondialog.cpp:389 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "уникод, 8‑битни" + +#: difftextwindow.cpp:1958 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:3435 +#, kde-format +msgid "Copy A to B" +msgstr "Копирај А у Б" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:3436 +#, kde-format +msgid "Copy B to A" +msgstr "Копирај Б у А" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:3437 +#, kde-format +msgid "Delete A" +msgstr "Обриши А" + +#: directorymergewindow.cpp:419 directorymergewindow.cpp:3438 +#, kde-format +msgid "Delete B" +msgstr "Обриши Б" + +#: directorymergewindow.cpp:422 +#, kde-format +msgid "Delete A & B" +msgstr "Обриши А и Б" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:3440 +#, kde-format +msgid "Merge to A" +msgstr "Стопи у А" + +#: directorymergewindow.cpp:428 directorymergewindow.cpp:3441 +#, kde-format +msgid "Merge to B" +msgstr "Стопи у Б" + +#: directorymergewindow.cpp:431 +#, kde-format +msgid "Merge to A & B" +msgstr "Стопи у А и Б" + +#: directorymergewindow.cpp:443 directorymergewindow.cpp:3432 +#, kde-format +msgid "Delete (if exists)" +msgstr "Обриши (ако постоји)" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#: directorymergewindow.cpp:3431 smalldialogs.cpp:120 +#, kde-format +msgid "Merge" +msgstr "Стопи" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#, kde-format +msgid "Merge (manual)" +msgstr "Стопи (ручно)" + +#: directorymergewindow.cpp:452 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Грешка: сукобљени типови фајлова." + +#: directorymergewindow.cpp:455 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Грешка: измењено и обрисано." + +#: directorymergewindow.cpp:458 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Грешка: датуми су једнаки али фајлови нису." + +#: directorymergewindow.cpp:472 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Готово." + +#: directorymergewindow.cpp:474 +#, kde-format +msgid "Error" +msgstr "Грешка" + +#: directorymergewindow.cpp:476 +#, kde-format +msgid "Skipped." +msgstr "Прескочено." + +#: directorymergewindow.cpp:478 +#, kde-format +msgid "Not saved." +msgstr "Није сачувано." + +#: directorymergewindow.cpp:480 +#, kde-format +msgid "In progress..." +msgstr "У току..." + +#: directorymergewindow.cpp:482 +#, kde-format +msgid "To do." +msgstr "Урадити." + +# >> @title:column +#: directorymergewindow.cpp:523 +#, kde-format +msgid "Name" +msgstr "име" + +# >> @title:column +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Operation" +msgstr "поступак" + +# >> @title:column +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Status" +msgstr "стање" + +# >> @title:column +#: directorymergewindow.cpp:535 +#, kde-format +msgid "Unsolved" +msgstr "нерешено" + +# >> @title:column +#: directorymergewindow.cpp:537 +#, kde-format +msgid "Solved" +msgstr "решено" + +# >> non-whitespace +# >> @title:column +#: directorymergewindow.cpp:539 +#, kde-format +msgid "Nonwhite" +msgstr "непразно" + +# >> whitespace +# >> @title:column +#: directorymergewindow.cpp:541 +#, kde-format +msgid "White" +msgstr "празно" + +#: directorymergewindow.cpp:676 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: directorymergewindow.cpp:690 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Мешавина веза и нормалних фајлова." + +#: directorymergewindow.cpp:697 +#, kde-format +msgid "Link: " +msgstr "Веза: " + +#: directorymergewindow.cpp:706 +#, kde-format +msgid "Size. " +msgstr "Величина: " + +#: directorymergewindow.cpp:720 directorymergewindow.cpp:730 +#, kde-format +msgid "Date & Size: " +msgstr "Датум и величина: " + +#: directorymergewindow.cpp:751 +#, kde-format +msgid "Comparing file..." +msgstr "Упоређујем фајл..." + +#: directorymergewindow.cpp:813 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort " +"the merge and rescan the directory?" +msgstr "" +"Тренутно стапате фасцикле. Желите ли заиста да прекинете стапање и поново " +"скенирате фасциклу?" + +#: directorymergewindow.cpp:814 kdiff3.cpp:697 kdiff3.cpp:707 kdiff3.cpp:719 +#: mergeresultwindow.cpp:400 pdiff.cpp:1052 pdiff.cpp:1930 pdiff.cpp:1940 +#, kde-format +msgid "Warning" +msgstr "Упозорење" + +#: directorymergewindow.cpp:815 directorymergewindow.cpp:3404 +#, kde-format +msgid "Rescan" +msgstr "Поново скенирај" + +#: directorymergewindow.cpp:816 pdiff.cpp:1054 +#, kde-format +msgid "Continue Merging" +msgstr "Настави стапање" + +#: directorymergewindow.cpp:983 +#, kde-format +msgid "Opening of directories failed:" +msgstr "Отварање фасцикли није успело:" + +#: directorymergewindow.cpp:987 +#, kde-format +msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgstr "Фасцикла А „%1“ не постоји или није фасцикла.\n" + +#: directorymergewindow.cpp:992 +#, kde-format +msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgstr "Фасцикла Б „%1“ не постоји или није фасцикла.\n" + +#: directorymergewindow.cpp:997 +#, kde-format +msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgstr "Фасцикла Ц „%1“ не постоји или није фасцикла.\n" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Directory Open Error" +msgstr "Грешка при отварању фасцикле" + +#: directorymergewindow.cpp:1008 +#, kde-format +msgid "" +"The destination directory must not be the same as A or B when three " +"directories are merged.\n" +"Check again before continuing." +msgstr "" +"Одредишна фасцикла не сме бити иста као А или Б када се стапају три " +"фасцикле.\n" +"Проверите поново пре него што наставите." + +#: directorymergewindow.cpp:1010 +#, kde-format +msgid "Parameter Warning" +msgstr "Упозорење о параметрима" + +#: directorymergewindow.cpp:1015 +#, kde-format +msgid "Scanning directories..." +msgstr "Скенирам фасцикле..." + +#: directorymergewindow.cpp:1041 +#, kde-format +msgid "Reading Directory A" +msgstr "Читам фасциклу А" + +#: directorymergewindow.cpp:1050 +#, kde-format +msgid "Reading Directory B" +msgstr "Читам фасциклу Б" + +#: directorymergewindow.cpp:1060 +#, kde-format +msgid "Reading Directory C" +msgstr "Читам фасциклу Ц" + +# >! Merge sentence. +#: directorymergewindow.cpp:1076 +#, kde-format +msgid "Some subdirectories were not readable in" +msgstr "Неке потфасцикле нису биле читљиве у" + +#: directorymergewindow.cpp:1081 +#, kde-format +msgid "Check the permissions of the subdirectories." +msgstr "Проверите дозволе потфасцикли." + +#: directorymergewindow.cpp:1118 kdiff3.cpp:665 kdiff3.cpp:752 kdiff3.cpp:776 +#: kdiff3.cpp:1072 kdiff3.cpp:1093 pdiff.cpp:1136 pdiff.cpp:1190 pdiff.cpp:1238 +#: pdiff.cpp:1254 pdiff.cpp:1297 pdiff.cpp:1321 +#, kde-format +msgid "Ready." +msgstr "Спреман." + +#: directorymergewindow.cpp:1133 +#, kde-format +msgid "" +"Directory Comparison Status\n" +"\n" +"Number of subdirectories: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1140 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Број ручних стапања:" + +#: directorymergewindow.cpp:1406 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ово утиче на све поступке стапања." + +# >> @title:window +#: directorymergewindow.cpp:1407 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Мењање свих поступака стапања" + +# >! Merge sentence. +#: directorymergewindow.cpp:1707 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Обрађујем " + +#: directorymergewindow.cpp:1750 directorymergewindow.cpp:1754 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Овај поступак тренутно није могућ." + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 directorymergewindow.cpp:2563 +#, kde-format +msgid "Operation Not Possible" +msgstr "Поступак није могућ" + +#: directorymergewindow.cpp:2330 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Грешка у току копирања.\n" + +#: directorymergewindow.cpp:2331 directorymergewindow.cpp:2770 +#, kde-format +msgid "Merge Error" +msgstr "Грешка стапања" + +#: directorymergewindow.cpp:2408 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Непознат поступак стапања. (Ово никада не сме да се догоди!)" + +#: directorymergewindow.cpp:2453 +#, kde-format +msgid "Unknown merge operation." +msgstr "Непозната поступак стапања." + +#: directorymergewindow.cpp:2466 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Стапање ће управо почети.\n" +"\n" +"Изаберите „Уради“ ако сте прочитали инструкције и знате шта радите.\n" +"Изаберите „Симулирај“ ако бисте прво да видите шта би се догодило.\n" +"\n" +"Пазите да је програм још увек у стању бете и нема апсолутно НИКАКВИХ " +"ГАРАНЦИЈА! Направите резерве важних података!" + +# >> @title:window +#: directorymergewindow.cpp:2471 +#, kde-format +msgid "Starting Merge" +msgstr "Почетак стапања" + +#: directorymergewindow.cpp:2472 +#, kde-format +msgid "Do It" +msgstr "Уради" + +#: directorymergewindow.cpp:2473 +#, kde-format +msgid "Simulate It" +msgstr "Симулирај" + +#: directorymergewindow.cpp:2499 +#, kde-format +msgid "" +"The highlighted item has a different type in the different directories. " +"Select what to do." +msgstr "" +"Истакнута ставка има различит тип у различитим фасциклама. Изаберите шта " +"урадити." + +#: directorymergewindow.cpp:2503 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Датуми измене фајла су једнаки али фајлови нису. Изаберите шта урадити." + +#: directorymergewindow.cpp:2507 +#, kde-format +msgid "" +"The highlighted item was changed in one directory and deleted in the other. " +"Select what to do." +msgstr "" +"Истакнута ставка је измењена у једној фасцикли а обрисана у другој. " +"Изаберите шта урадити." + +#: directorymergewindow.cpp:2563 +#, kde-format +msgid "" +"This operation is currently not possible because directory merge is " +"currently running." +msgstr "Овај поступак тренутно није могућ зато што је у току стапање фасцикли." + +#: directorymergewindow.cpp:2620 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Грешка у последњем кораку.\n" +"Желите ли да наставите са ставком која је изазвала грешку или да је " +"прескочите?" + +# >> @title:window +#: directorymergewindow.cpp:2622 +#, kde-format +msgid "Continue merge after an error" +msgstr "Настављање стапања после грешке" + +#: directorymergewindow.cpp:2623 +#, kde-format +msgid "Continue With Last Item" +msgstr "Настави са последњом ставком" + +#: directorymergewindow.cpp:2624 +#, kde-format +msgid "Skip Item" +msgstr "Прескочи ставку" + +#: directorymergewindow.cpp:2720 +#, kde-format +msgid "Merge operation complete." +msgstr "Поступак стапања је завршен." + +#: directorymergewindow.cpp:2720 directorymergewindow.cpp:2723 +#, kde-format +msgid "Merge Complete" +msgstr "Стапање завршено" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Симулирано стапање је завршено: проверите да ли вам одговарају предложени " +"поступци." + +#: directorymergewindow.cpp:2769 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Дошло је до грешке. Кликните на „У реду“ да добијете детаљне информације.\n" + +#: directorymergewindow.cpp:2802 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Грешка: у току брисања %1, прављење резерве није успело." + +#: directorymergewindow.cpp:2809 +#, kde-format +msgid "delete directory recursively( %1 )" +msgstr "рекурзивно брисање фасцикле (%1)" + +#: directorymergewindow.cpp:2811 +#, kde-format +msgid "delete( %1 )" +msgstr "брисање (%1)" + +#: directorymergewindow.cpp:2826 +#, kde-format +msgid "Error: delete dir operation failed while trying to read the directory." +msgstr "Грешка: поступак брисања фасцикле није успео на месту читања фасцикле." + +#: directorymergewindow.cpp:2845 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Грешка: поступак уклањања фасцикле (%1) није успео." + +#: directorymergewindow.cpp:2855 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Грешка: поступак брисања није успео." + +#: directorymergewindow.cpp:2881 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ручно стапање (%1, %2, %3 → %4)" + +#: directorymergewindow.cpp:2884 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Напомена: после ручног стапања корисник треба да настави притиском на " +"F7." + +#: directorymergewindow.cpp:2911 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Грешка: копирање (%1 → %2) није успело, брисање постојећег одредишта није " +"успело." + +#: directorymergewindow.cpp:2920 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "копирање везе (%1 → %2 )" + +#: directorymergewindow.cpp:2929 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Грешка: копирање везе није успело, удаљене везе још нису подржане." + +#: directorymergewindow.cpp:2939 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Грешка: копирање везе није успело." + +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "копирање (%1 → %2)" + +#: directorymergewindow.cpp:2990 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Грешка у току преименовања (%1 → %2), постојеће одредиште не може да се " +"обрише." + +#: directorymergewindow.cpp:2997 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "преименовање (%1 → %2)" + +#: directorymergewindow.cpp:3006 +#, kde-format +msgid "Error: Rename failed." +msgstr "Грешка: преименовање није успело." + +#: directorymergewindow.cpp:3024 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Грешка у току прављења фасцикле (%1), постојећи фајл не може да се обрише." + +#: directorymergewindow.cpp:3041 +#, kde-format +msgid "makeDir( %1 )" +msgstr "прављење фасцикле (%1)" + +#: directorymergewindow.cpp:3051 +#, kde-format +msgid "Error while creating directory." +msgstr "Грешка у току прављења фасцикле." + +#: directorymergewindow.cpp:3087 directorymergewindow.cpp:3206 +#, kde-format +msgid "Dest" +msgstr "Одредиште" + +# >> @title:column +#: directorymergewindow.cpp:3095 directorymergewindow.cpp:3124 +#, kde-format +msgid "Dir" +msgstr "фасцикла" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Type" +msgstr "тип" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Size" +msgstr "величина" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Attr" +msgstr "атрибути" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Last Modification" +msgstr "последња измена" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Link-Destination" +msgstr "одредиште везе" + +# >! Merge whole string. +# >> @item:intext +#: directorymergewindow.cpp:3124 +#, kde-format +msgid "File" +msgstr "фајл" + +#: directorymergewindow.cpp:3124 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Веза: " + +#: directorymergewindow.cpp:3130 +#, kde-format +msgid "not available" +msgstr "недоступно" + +#: directorymergewindow.cpp:3148 +#, kde-format +msgid "A (Dest): " +msgstr "А (одредиште): " + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A (Base): " +msgstr "А (база): " + +#: directorymergewindow.cpp:3158 +#, kde-format +msgid "B (Dest): " +msgstr "Б (одредиште): " + +#: directorymergewindow.cpp:3162 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:3167 +#, kde-format +msgid "C (Dest): " +msgstr "Ц (одредиште): " + +#: directorymergewindow.cpp:3171 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:3174 +#, kde-format +msgid "Dest: " +msgstr "Одредиште: " + +# >> @title:window +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:3249 +#, kde-format +msgid "Save Directory Merge State As..." +msgstr "Уписивање стања стапања фасцикли као..." + +#: directorymergewindow.cpp:3398 +#, kde-format +msgid "Start/Continue Directory Merge" +msgstr "Покрени/настави стапање фасцикли" + +#: directorymergewindow.cpp:3399 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Изврши поступак за текућу ставку" + +#: directorymergewindow.cpp:3400 +#, kde-format +msgid "Compare Selected File" +msgstr "Упореди изабрани фајл" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "Merge Current File" +msgstr "Стопи текући фајл" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Стопи\n" +"фајл" + +#: directorymergewindow.cpp:3402 +#, kde-format +msgid "Fold All Subdirs" +msgstr "Сажми све потфасцикле" + +#: directorymergewindow.cpp:3403 +#, kde-format +msgid "Unfold All Subdirs" +msgstr "Рашири све потфасцикле" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:3407 +#, kde-format +msgid "Choose A for All Items" +msgstr "Изабери А за све ставке" + +#: directorymergewindow.cpp:3408 +#, kde-format +msgid "Choose B for All Items" +msgstr "Изабери Б за све ставке" + +#: directorymergewindow.cpp:3409 +#, kde-format +msgid "Choose C for All Items" +msgstr "Изабери Ц за све ставке" + +#: directorymergewindow.cpp:3410 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Аутоматски изабери поступак за све ставке" + +#: directorymergewindow.cpp:3411 +#, kde-format +msgid "No Operation for All Items" +msgstr "Нема поступка за све ставке" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "Show Identical Files" +msgstr "Прикажи истоветне фајлове" + +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Истоветни\n" +"фајлови" + +#: directorymergewindow.cpp:3417 +#, kde-format +msgid "Show Different Files" +msgstr "Прикажи различите фајлове" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "Show Files only in A" +msgstr "Прикажи фајлове само у А" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Фајлови\n" +"само у А" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "Show Files only in B" +msgstr "Прикажи фајлове само у Б" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Фајлови\n" +"само у Б" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "Show Files only in C" +msgstr "Прикажи фајлове само у Ц" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Фајлови\n" +"само у Ц" + +#: directorymergewindow.cpp:3424 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Упореди изричито изабране фајлове" + +#: directorymergewindow.cpp:3425 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Стопи изричито изабране фајлове" + +#: directorymergewindow.cpp:3427 directorymergewindow.cpp:3434 +#, kde-format +msgid "Do Nothing" +msgstr "Не ради ништа" + +#: directorymergewindow.cpp:3439 +#, kde-format +msgid "Delete A && B" +msgstr "Обриши А и Б" + +#: directorymergewindow.cpp:3442 +#, kde-format +msgid "Merge to A && B" +msgstr "Стопи у А и Б" + +#: fileaccess.cpp:301 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:482 SourceData.cpp:506 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Читам фајл: %1" + +#: fileaccess.cpp:624 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Прављење привремене копије фајла %1 није успело." + +#: fileaccess.cpp:632 fileaccess.cpp:637 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Отварање фајла %1 није успело." + +#: fileaccess.cpp:656 fileaccess.cpp:664 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Грешка при читању из %1" + +#: fileaccess.cpp:788 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"При покушају прављења резерве, брисање старије резерве није успело.\n" +"Име фајла: " + +#: fileaccess.cpp:795 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"При покушају прављења резерве, преименовање није успело.\n" +"Имена фајлова: " + +#: fileaccess.cpp:865 +#, kde-format +msgid "Getting file status: %1" +msgstr "Добављам стање фајла: %1" + +#: fileaccess.cpp:906 +#, kde-format +msgid "Reading file: %1" +msgstr "Читам фајл: %1" + +#: fileaccess.cpp:944 +#, kde-format +msgid "Writing file: %1" +msgstr "Пишем фајл: %1" + +#: fileaccess.cpp:977 +#, kde-format +msgid "Out of memory" +msgstr "Нема више меморије" + +#: fileaccess.cpp:1013 +#, kde-format +msgid "Making directory: %1" +msgstr "Правим фасциклу: %1" + +#: fileaccess.cpp:1034 +#, kde-format +msgid "Removing directory: %1" +msgstr "Уклањам фасциклу: %1" + +#: fileaccess.cpp:1049 +#, kde-format +msgid "Removing file: %1" +msgstr "Уклањам фајл: %1" + +#: fileaccess.cpp:1065 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Правим симболичку везу: %1 → %2" + +#: fileaccess.cpp:1089 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Преименујем фајл: %1 → %2" + +#: fileaccess.cpp:1123 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Копирам фајл: %1 → %2" + +#: fileaccess.cpp:1145 +#, fuzzy, kde-format +#| msgid "Reading directory: " +msgid "Reading directory: %1" +msgstr "Читам фасциклу: " + +#: fileaccess.cpp:1202 +#, kde-format +msgid "Listing directory: %1" +msgstr "Листам фасциклу: %1" + +#: kdiff3.cpp:182 +#, kde-format +msgid "Current Configuration:" +msgstr "Тренутна постава:" + +#: kdiff3.cpp:187 +#, kde-format +msgid "Config Option Error:" +msgstr "Грешка поставне опције:" + +#: kdiff3.cpp:246 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Опција --auto је употребљена, али није наведен излазни фајл." + +#: kdiff3.cpp:405 +#, kde-format +msgid "Option --auto ignored for directory comparison." +msgstr "Опција --auto се игнорише за поређење фасцикли." + +#: kdiff3.cpp:449 +#, kde-format +msgid "Saving failed." +msgstr "Уписивање није успело." + +#: kdiff3.cpp:494 pdiff.cpp:395 pdiff.cpp:1117 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Отварање ових фајлова није успело:" + +#: kdiff3.cpp:503 pdiff.cpp:404 pdiff.cpp:1126 +#, kde-format +msgid "File open error" +msgstr "Грешка при отварању фајла" + +# >> @info:tooltip +#: kdiff3.cpp:532 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Отвара документе за поређење." + +#: kdiff3.cpp:534 +#, kde-format +msgid "Reload" +msgstr "Учитај поново" + +# >> @info:tooltip +#: kdiff3.cpp:537 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Уписује резултат стапања. Сви сукоби морају бити разрешени." + +# >> @info:tooltip +#: kdiff3.cpp:539 +#, kde-format +msgid "Saves the current document as..." +msgstr "Уписује текуће документе под именом." + +# >> @info:tooltip +#: kdiff3.cpp:542 +#, kde-format +msgid "Print the differences" +msgstr "Штампа разлике." + +# >> @info:tooltip +#: kdiff3.cpp:545 +#, kde-format +msgid "Quits the application" +msgstr "Напушта програм." + +# >> @info:tooltip +#: kdiff3.cpp:548 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Исеца изабрани одељак и ставља га у клипборд." + +# >> @info:tooltip +#: kdiff3.cpp:551 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Копира изабрани одељак у клипборд." + +# >> @info:tooltip +#: kdiff3.cpp:553 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Налепљује садржај клипборда на тренутном положају." + +# >> @info:tooltip +#: kdiff3.cpp:556 +#, kde-format +msgid "Select everything in current window" +msgstr "Изабира све у текућем прозору." + +# >> @info:tooltip +#: kdiff3.cpp:559 +#, kde-format +msgid "Search for a string" +msgstr "Тражи ниску." + +# >> @info:tooltip +#: kdiff3.cpp:561 +#, kde-format +msgid "Search again for the string" +msgstr "Поново тражи ниску." + +# >> @info:tooltip +#: kdiff3.cpp:566 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Укључује/искључује траку стања." + +#: kdiff3.cpp:570 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Подеси К‑диф3..." + +#: kdiff3.cpp:589 +#, kde-format +msgid "Go to Current Delta" +msgstr "Иди на текућу делту" + +#: kdiff3.cpp:589 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Текућа\n" +"делта" + +#: kdiff3.cpp:591 +#, kde-format +msgid "Go to First Delta" +msgstr "Иди на прву делту" + +#: kdiff3.cpp:591 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Прва\n" +"делта" + +#: kdiff3.cpp:593 +#, kde-format +msgid "Go to Last Delta" +msgstr "Иди на последњу делту" + +#: kdiff3.cpp:593 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Последња\n" +"делта" + +#: kdiff3.cpp:595 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Прескаче разлике у празнинама ако је „Прикажи празнине“ искључено.)" + +#: kdiff3.cpp:596 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Не прескаче разлике празнинама ни када је „Прикажи празнине“ искључено.)" + +#: kdiff3.cpp:597 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Иди на претходну делту" + +#: kdiff3.cpp:597 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Претходна\n" +"делта" + +#: kdiff3.cpp:599 +#, kde-format +msgid "Go to Next Delta" +msgstr "Иди на следећу делту" + +#: kdiff3.cpp:599 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Следећа\n" +"делта" + +#: kdiff3.cpp:601 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Иди на претходни сукоб" + +#: kdiff3.cpp:601 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Претходни\n" +"сукоб" + +#: kdiff3.cpp:603 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Иди на следећи сукоб" + +#: kdiff3.cpp:603 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Следећи\n" +"сукоб" + +#: kdiff3.cpp:605 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Иди на претходни нерешени сукоб" + +#: kdiff3.cpp:605 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Претходни\n" +"нерешени" + +#: kdiff3.cpp:607 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Иди на следећи нерешени сукоб" + +#: kdiff3.cpp:607 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Следећи\n" +"нерешени" + +#: kdiff3.cpp:609 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Изаберите редове из А" + +#: kdiff3.cpp:609 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Изаберите\n" +"А" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Изаберите редове из Б" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Изаберите\n" +"Б" + +#: kdiff3.cpp:611 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Изаберите редове из Ц" + +#: kdiff3.cpp:611 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Изаберите\n" +"Ц" + +#: kdiff3.cpp:612 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Аутоматски иди на следећи нерешени сукоб после избора извора" + +#: kdiff3.cpp:612 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Аутоматски\n" +"следећи" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Прикажи знакове размака и табулатора за разлике" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Знакови\n" +"празнина" + +#: kdiff3.cpp:615 +#, kde-format +msgid "Show White Space" +msgstr "Прикажи празнине" + +#: kdiff3.cpp:615 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Делте\n" +"празнина" + +#: kdiff3.cpp:617 +#, kde-format +msgid "Show Line Numbers" +msgstr "Прикажи бројеве редова" + +#: kdiff3.cpp:617 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Бројеви\n" +"редова" + +#: kdiff3.cpp:619 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Аутоматски реши једноставне сукобе" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Постави делте на сукобе" + +#: kdiff3.cpp:621 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Аутоматски стопи по регуларним изразима" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Аутоматски реши сукобе историјата" + +#: kdiff3.cpp:623 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Подели разлику на избору" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Споји изабране разлике" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Show Window A" +msgstr "Прикажи прозор А" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Show Window B" +msgstr "Прикажи прозор Б" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Show Window C" +msgstr "Прикажи прозор Ц" + +#: kdiff3.cpp:630 +#, kde-format +msgid "Normal Overview" +msgstr "Нормалан преглед" + +#: kdiff3.cpp:631 +#, kde-format +msgid "A vs. B Overview" +msgstr "Преглед А према Б" + +#: kdiff3.cpp:632 +#, kde-format +msgid "A vs. C Overview" +msgstr "Преглед А према Ц" + +#: kdiff3.cpp:633 +#, kde-format +msgid "B vs. C Overview" +msgstr "Преглед Б према Ц" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Прелом речи у прозорима разлика" + +#: kdiff3.cpp:635 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Додај ручно поравнање разлика" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Очисти сва ручна поравнања разлика" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Focus Next Window" +msgstr "Фокусирај следећи прозор" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Focus Prev Window" +msgstr "Фокусирај претходни прозор" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Пребаци оријентацију поделе" + +#: kdiff3.cpp:642 +#, kde-format +msgid "Dir && Text Split Screen View" +msgstr "Подељени приказ екрана на фасциклу и текст" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Toggle Between Dir && Text View" +msgstr "Пребаци приказ фасцикле и текста" + +#: kdiff3.cpp:696 pdiff.cpp:1929 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Резултат стапања није сачуван." + +#: kdiff3.cpp:698 +#, kde-format +msgid "Save && Quit" +msgstr "Сачувај и напусти" + +#: kdiff3.cpp:699 +#, kde-format +msgid "Quit Without Saving" +msgstr "Напусти без уписивања" + +#: kdiff3.cpp:707 pdiff.cpp:1940 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Уписивање резултата стапања није успело." + +#: kdiff3.cpp:718 pdiff.cpp:1051 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort?" +msgstr "Тренутно стапате фасцикле. Желите ли заиста да обуставите ово?" + +#: kdiff3.cpp:741 +#, kde-format +msgid "Saving file..." +msgstr "Уписујем фајл..." + +#: kdiff3.cpp:758 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Уписујем фајл под новим именом..." + +# >> @title:window +#: kdiff3.cpp:760 +#, kde-format +msgid "Save As..." +msgstr "Уписивање као" + +#: kdiff3.cpp:819 +#, kde-format +msgid "Printing not implemented." +msgstr "Штампање није изведено." + +#: kdiff3.cpp:858 +#, kde-format +msgid "Printing..." +msgstr "Штампам..." + +#: kdiff3.cpp:948 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:1006 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Избор" + +#: kdiff3.cpp:1034 +#, kde-format +msgid "Printing completed." +msgstr "Штампање завршено." + +#: kdiff3.cpp:1038 +#, kde-format +msgid "Printing aborted." +msgstr "Штампање обустављено." + +#: kdiff3.cpp:1045 +#, kde-format +msgid "Exiting..." +msgstr "Напуштам..." + +#: kdiff3.cpp:1056 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Пребацујем траку алатки..." + +#: kdiff3.cpp:1077 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Пребацујем траку стања..." + +#: kdiff3_part.cpp:45 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "К‑диф3 део" + +#: kdiff3_part.cpp:46 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:48 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:49 +#, kde-format +msgid "Joachim Eibl" +msgstr "Јоахим Ајбл" + +#: kdiff3_part.cpp:172 kdiff3_part.cpp:253 +#, fuzzy, kde-format +#| msgid "Couldn't find files for comparison." +msgid "Could not find files for comparison." +msgstr "Не могу да нађем фајлове за поређење." + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&К‑диф3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Подеси К‑диф3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:89 +#, kde-format +msgid "KDiff3" +msgstr "&К‑диф3" + +#: kdiff3_shell.cpp:74 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Не могу да припремим К‑диф3 део.\n" +"Ово је обично проблем у инсталацији. Прочитајте фајл ‘README’ из изворног " +"пакета за више детаља." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Фајл" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "&Directory" +msgstr "Ф&асцикла" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Поступак стапања текуће ставке" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Поступак синхронизовања текуће ставке" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Кретање" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Приказ &разлике" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Стопи" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Про&зор" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Главна трака" + +#: main.cpp:69 main.cpp:73 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Игнорисано (кориснички дефинисано)." + +#: main.cpp:93 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:95 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:96 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Directories" +msgstr "Алатка за поређење и стапање фајлова и фасцикли" + +#: main.cpp:97 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:113 +#, kde-format +msgid "Merge the input." +msgstr "Стопи улаз." + +#: main.cpp:114 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Изричит базни фајл. За сагласност са појединим алаткама." + +#: main.cpp:115 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Излазни фајл. Имплицира -m. Нпр: -o novifajl.txt" + +#: main.cpp:116 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Излазни фајл, поново. За сагласност са појединим алаткама." + +#: main.cpp:118 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "Без ГУИ‑ја ако су сви сукоби решиви аутоматски. Захтева -o fajl." + +#: main.cpp:120 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:122 +#, fuzzy, kde-format +#| msgid "Don't solve conflicts automatically. (For compatibility...)" +msgid "Do not solve conflicts automatically." +msgstr "Не решавај сукобе аутоматски. За сагласност..." + +#: main.cpp:123 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Замена видљивог имена за улазни фајл 1 (базни)." + +#: main.cpp:124 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Замена видљивог имена за улазни фајл 2." + +#: main.cpp:125 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Замена видљивог имена за улазни фајл 3." + +#: main.cpp:126 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Алтернативна замена видљивог имена. Задајте ово једном за сваки улаз." + +#: main.cpp:127 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Потисни поставку из поставе. Употребите једном за сваку поставку. Нпр: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:128 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Наброји поставке и тренутне вредности из поставе." + +#: main.cpp:129 +#, kde-format +msgid "Use a different config file." +msgstr "Употреби други поставни фајл." + +#: main.cpp:132 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Фајл 1 за отварање (базни, ако није наведен преко --base)." + +#: main.cpp:133 +#, kde-format +msgid "file2 to open" +msgstr "Фајл 2 за отварање." + +#: main.cpp:134 +#, kde-format +msgid "file3 to open" +msgstr "Фајл 3 за отварање." + +#: main.cpp:158 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: mergeresultwindow.cpp:171 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Свуда изабери А" + +#: mergeresultwindow.cpp:172 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Свуда изабери Б" + +#: mergeresultwindow.cpp:173 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Свуда изабери Ц" + +#: mergeresultwindow.cpp:174 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Изабери А за све нерешене сукобе" + +#: mergeresultwindow.cpp:175 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Изабери Б за све нерешене сукобе" + +#: mergeresultwindow.cpp:176 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Изабери Ц за све нерешене сукобе" + +#: mergeresultwindow.cpp:177 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Изабери А за све нерешене сукобе празнина" + +#: mergeresultwindow.cpp:178 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Изабери Б за све нерешене сукобе празнина" + +#: mergeresultwindow.cpp:179 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Изабери Ц за све нерешене сукобе празнина" + +#: mergeresultwindow.cpp:204 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Број преосталих нерешених сукоба: %1 (од чега %2 празнине)." + +#: mergeresultwindow.cpp:398 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Излаз је измењен.\n" +"Ако наставите измене ће бити изгубљене." + +#: mergeresultwindow.cpp:964 pdiff.cpp:838 +#, kde-format +msgid "All input files are binary equal." +msgstr "Сви улазни фајлови бинарно су једнаки." + +#: mergeresultwindow.cpp:966 +#, kde-format +msgid "All input files contain the same text." +msgstr "Сви улазни фајлови садрже исти текст." + +#: mergeresultwindow.cpp:970 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:978 pdiff.cpp:844 pdiff.cpp:848 pdiff.cpp:852 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Фајлови %1 и %2 бинарно су једнаки.\n" + +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:976 +#: mergeresultwindow.cpp:980 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Фајлови %1 и %2 садрже исти текст.\n" + +#: mergeresultwindow.cpp:986 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Nr of automatically solved conflicts: %2\n" +"Nr of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:992 +#, kde-format +msgid "Conflicts" +msgstr "Сукоби" + +#: mergeresultwindow.cpp:1901 +#, kde-format +msgid "" +msgstr "<нема изворног реда>" + +#: mergeresultwindow.cpp:1909 +#, kde-format +msgid "" +msgstr "<сукоб стапања (само празнине)>" + +#: mergeresultwindow.cpp:1911 mergeresultwindow.cpp:2783 +#, kde-format +msgid "" +msgstr "<сукоб стапања>" + +#: mergeresultwindow.cpp:2995 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Још нису решени сви сукоби.\n" +"Фајл није сачуван.\n" + +#: mergeresultwindow.cpp:2997 mergeresultwindow.cpp:3006 +#, kde-format +msgid "Conflicts Left" +msgstr "Преостали сукоби" + +#: mergeresultwindow.cpp:3004 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Сукоб у стилу завршетака редова. Изаберите ручно стил завршетка редова.\n" +"Фајл није сачуван.\n" + +#: mergeresultwindow.cpp:3018 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Прављење резерве није успело. Фајл није сачуван." + +#: mergeresultwindow.cpp:3018 mergeresultwindow.cpp:3066 +#, kde-format +msgid "File Save Error" +msgstr "Грешка уписивања фајла" + +#: mergeresultwindow.cpp:3066 +#, kde-format +msgid "Error while writing." +msgstr "Грешка при писању." + +#: mergeresultwindow.cpp:3138 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Излаз" + +#: mergeresultwindow.cpp:3151 mergeresultwindow.cpp:3343 +#, kde-format +msgid "[Modified]" +msgstr "[измењен]" + +#: mergeresultwindow.cpp:3158 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Кодирање за уписивање" + +#: mergeresultwindow.cpp:3258 +#, kde-format +msgid "Conflict" +msgstr "Сукоб" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3290 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Кодирање из" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3292 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Кодирање из" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3294 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Кодирање из" + +#: optiondialog.cpp:121 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:137 optiondialog.cpp:147 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:390 +#, kde-format +msgid "Unicode" +msgstr "уникод" + +#: optiondialog.cpp:391 +#, kde-format +msgid "Latin1" +msgstr "латиница‑1" + +#: optiondialog.cpp:410 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Измените ово ако су не‑аски знакови погрешно приказани." + +# >> @title:window +#: optiondialog.cpp:495 +#, kde-format +msgid "Configure" +msgstr "Подешавање" + +#: optiondialog.cpp:573 +#, kde-format +msgid "Font" +msgstr "Фонт" + +#: optiondialog.cpp:575 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Фонт уређивача и излаза разлике" + +#: optiondialog.cpp:594 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:599 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Грешка уписивања фајла" + +#: optiondialog.cpp:618 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Боја" + +#: optiondialog.cpp:619 +#, kde-format +msgid "Colors Settings" +msgstr "Поставке боја" + +#: optiondialog.cpp:644 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Уређивач и прикази разлика:" + +#: optiondialog.cpp:652 +#, kde-format +msgid "Foreground color:" +msgstr "Боја текста:" + +#: optiondialog.cpp:660 +#, kde-format +msgid "Background color:" +msgstr "Боја позадине:" + +#: optiondialog.cpp:670 +#, kde-format +msgid "Diff background color:" +msgstr "Боја позадине разлика:" + +#: optiondialog.cpp:679 +#, kde-format +msgid "Color A:" +msgstr "Боја А:" + +#: optiondialog.cpp:688 +#, kde-format +msgid "Color B:" +msgstr "Боја Б:" + +#: optiondialog.cpp:697 +#, kde-format +msgid "Color C:" +msgstr "Боја Ц:" + +#: optiondialog.cpp:705 +#, kde-format +msgid "Conflict color:" +msgstr "Боја сукоба:" + +#: optiondialog.cpp:714 +#, kde-format +msgid "Current range background color:" +msgstr "Позадинска боја текућег опсега:" + +#: optiondialog.cpp:723 +#, kde-format +msgid "Current range diff background color:" +msgstr "Позадинска боја текућег опсега разлика:" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Боја ручно поравнатих опсега разлика:" + +#: optiondialog.cpp:738 +#, kde-format +msgid "Directory Comparison View:" +msgstr "Приказ поређења фасцикли:" + +#: optiondialog.cpp:744 +#, kde-format +msgid "Newest file color:" +msgstr "Боја најновијег фајла:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next directory " +"comparison." +msgstr "Измена ове боје ступиће на снагу од првог наредног поређења фасцикли." + +#: optiondialog.cpp:754 +#, kde-format +msgid "Oldest file color:" +msgstr "Боја најстаријег фајла:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Middle age file color:" +msgstr "Боја фајла средње старости:" + +#: optiondialog.cpp:772 +#, kde-format +msgid "Color for missing files:" +msgstr "Боја за недостајуће фајлове:" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Editor" +msgstr "Уређивач" + +#: optiondialog.cpp:787 +#, kde-format +msgid "Editor Behavior" +msgstr "Понашање уређивача" + +# skip-rule: t-tab +#: optiondialog.cpp:809 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab умеће размаке" + +# rewrite-msgid: /generate/insert/ +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Укључено: притиском Tab‑а умеће се одговарајући број размака.\n" +"Искључено: умеће се знак табулатора." + +#: optiondialog.cpp:818 +#, kde-format +msgid "Tab size:" +msgstr "Величина табулатора:" + +#: optiondialog.cpp:825 +#, kde-format +msgid "Auto indentation" +msgstr "Аутоматско увлачење" + +#: optiondialog.cpp:829 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Укључено: увлачење претходног реда узима се за нови ред.\n" + +#: optiondialog.cpp:832 +#, kde-format +msgid "Auto copy selection" +msgstr "Аутоматско копирање избора" + +#: optiondialog.cpp:836 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Укључено: сваки избор се одмах уписује у клипборд.\n" +"Искључено: морате изричито копирати, нпр. помоћу Ctrl+C." + +#: optiondialog.cpp:851 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Поставља завршетке редова када се измењени фајл сачува.\n" +"ДОС/Виндоуз CR+LF, Уникс LF, где је CR=0D, LF=0A." + +#: optiondialog.cpp:861 +#, kde-format +msgid "Diff" +msgstr "Разликовање" + +#: optiondialog.cpp:862 +#, kde-format +msgid "Diff Settings" +msgstr "Поставке разликовања" + +# >! Merge sentence. +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options.m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:896 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Третирај као празнине." + +#: optiondialog.cpp:900 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Игнориши цифарске знакове у фази поклапања редова (слично игнорисању " +"празнина).\n" +"Може бити корисно при поређењу фајлова са нумеричким подацима." + +#: optiondialog.cpp:904 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Третирај Ц/Ц++ коментаре као празнине." + +#: optiondialog.cpp:907 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Третирај Ц/Ц++ коментаре као празнине." + +# >! Merge sentence. +#: optiondialog.cpp:910 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Третирај као празнине." + +#: optiondialog.cpp:914 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Третира разлику у величини као промене у празнинама (‘а’ једнако ‘А’)." + +#: optiondialog.cpp:917 +#, kde-format +msgid "Preprocessor command:" +msgstr "Предобрадна наредба:" + +#: optiondialog.cpp:922 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Кориснички дефинисана предобрада. Погледајте документацију за детаље." + +#: optiondialog.cpp:925 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Предобрадна наредба за поклапање редова:" + +#: optiondialog.cpp:930 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Предобрада се користи само током поклапања редова.\n" +"Погледајте документацију за детаље." + +#: optiondialog.cpp:933 +#, kde-format +msgid "Try hard (slower)" +msgstr "Потруди се (спорије)" + +#: optiondialog.cpp:937 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Укључује опцију --minimal за спољашње разликовање.\n" +"Анализа великих фајлова ће бити много спорија." + +#: optiondialog.cpp:941 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Поравнај Б и Ц за три улазна фајла" + +#: optiondialog.cpp:945 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Покушава да поравна Б и Ц при поређењу или стапању тре улазна фајла.\n" +"Није препоручљиво за стапање зато што га може учинити сложенијим.\n" +"Подразумевано је искључено." + +#: optiondialog.cpp:956 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Стопи" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Merge Settings" +msgstr "Поставке стапања" + +#: optiondialog.cpp:980 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Застој аутоматског напредовања (ms):" + +#: optiondialog.cpp:986 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"У режиму аутоматског напредовања резултат текућег избора приказује се \n" +"задато време пре скока на следећи сукоб. Опсег: 0–2000 ms." + +#: optiondialog.cpp:990 +#, kde-format +msgid "Show info dialogs" +msgstr "Приказуј информативне дијалоге" + +#: optiondialog.cpp:993 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Приказује дијалог са информацијом о броју сукоба." + +#: optiondialog.cpp:996 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Подразумевано стапање празнина два фајла:" + +#: optiondialog.cpp:1001 optiondialog.cpp:1014 +#, kde-format +msgid "Manual Choice" +msgstr "Ручни избор" + +#: optiondialog.cpp:1005 optiondialog.cpp:1019 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Дозвољава алгоритму стапања да аутоматски изабере улаз за измене само у " +"празнинама." + +#: optiondialog.cpp:1009 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Подразумевано стапање празнина три фајла:" + +#: optiondialog.cpp:1023 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Регуларни израз за аутоматско стапање" + +#: optiondialog.cpp:1031 smalldialogs.cpp:459 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Регуларни израз за аутоматско стапање:" + +#: optiondialog.cpp:1036 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Регуларни израз за редове где К‑диф3 треба да аутоматски изабере један од " +"извора. Кад регуларни израз поклопи ред са сукобом бира се Ц ако га има, " +"иначе Б." + +#: optiondialog.cpp:1042 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Аутоматски стопи по регуларном изразу на почетку стапања" + +#: optiondialog.cpp:1045 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "Спроводи стапање регуларним изразом чим стапање почне.\n" + +#: optiondialog.cpp:1050 +#, kde-format +msgid "Version Control History Merging" +msgstr "Стапање историјата управљања верзијама" + +#: optiondialog.cpp:1058 smalldialogs.cpp:486 +#, kde-format +msgid "History start regular expression:" +msgstr "Регуларни израз за почетак историјата:" + +# literal-segment: Log +#: optiondialog.cpp:1063 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Регуларни израз за почетак уноса у историјату управљања верзијама.\n" +"Овај ред обично садржи кључну реч „$Log$“.\n" +"Подразумевана вредност је „.*\\$Log.*\\$.*“." + +#: optiondialog.cpp:1069 smalldialogs.cpp:514 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Регуларни израз за почетак уноса историјата:" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Унос у историјату управљања верзијама чини неколико редова.\n" +"Задајте регуларни израз за откривање првог реда (без водећег коментара).\n" +"Користите заграде да групишете кључеве по којима ће се ређати.\n" +"Ако се остави празно, К‑диф3 узима да су уноси историјата раздвојени празним " +"редовима.\n" +"Детаље потражите у документацији." + +#: optiondialog.cpp:1090 +#, kde-format +msgid "History merge sorting" +msgstr "Ређање у стапању историјата" + +#: optiondialog.cpp:1093 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ређа историјат управљања верзијама по кључу." + +#: optiondialog.cpp:1103 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Редослед ређања за кључеве уноса историјата:" + +#: optiondialog.cpp:1108 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Сваки пар заграда употребљен у регуларном изразу за почетак уноса историјата " +"групише кључ који може послужити за ређање.\n" +"Задајте списак кључева (нумерисаних по реду појављивања почев од 1) са " +"запетом као раздвајачем (нпр. „4,5,6,1,2,3,7“).\n" +"Ако се остави празно, ређање се не спроводи.\n" +"Детаље потражите у документацији." + +#: optiondialog.cpp:1119 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Стопи историјат управљања верзијама на почетку стапања" + +#: optiondialog.cpp:1122 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Аутоматски стапа историјат управљања верзијама на почетку стапања." + +#: optiondialog.cpp:1126 +#, kde-format +msgid "Max number of history entries:" +msgstr "Највећи број уноса историјата:" + +# skip-rule: t-cut +#: optiondialog.cpp:1130 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Одсеца изнад задатог броја. Ставите -1 за неограничен број уноса." + +# >> @action:button +#: optiondialog.cpp:1134 +#, kde-format +msgid "Test your regular expressions" +msgstr "Испробај регуларне изразе" + +#: optiondialog.cpp:1139 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Наредба при безначајном стапању:" + +#: optiondialog.cpp:1144 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Ако се зада, ова скрипта се позива кад после аутоматског стапања нема " +"никаквих преосталих измена.\n" +"Позива се са аргументима: име‑фајла‑1 име‑фајла‑2 име‑фајла‑3" + +#: optiondialog.cpp:1149 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Аутоматски сачувај и напусти при стапању без сукоба" + +#: optiondialog.cpp:1153 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Ако се К‑диф3 покрене из командне линије ради стапања фајлова, и сви сукоби " +"су разрешиви без интервенисања корисника, тада се аутоматски резултати " +"уписују и програм напушта.\n" +"Слично опцији командне линије --auto." + +#: optiondialog.cpp:1164 optiondialog.cpp:1165 +#, kde-format +msgid "Directory" +msgstr "Фасцикла" + +#: optiondialog.cpp:1185 +#, kde-format +msgid "Recursive directories" +msgstr "Рекурзивно кроз фасцикле" + +#: optiondialog.cpp:1188 +#, kde-format +msgid "Whether to analyze subdirectories or not." +msgstr "Да ли анализирати потфасцикле." + +#: optiondialog.cpp:1190 +#, kde-format +msgid "File pattern(s):" +msgstr "Обрасци фајлова:" + +#: optiondialog.cpp:1196 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Обрасци за фајлове које треба анализирати.\n" +"Џокери: ‘*’ и ‘?’\n" +"Више образаца наводите са тачка-запетом као раздвајачем." + +#: optiondialog.cpp:1201 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Противобрасци фајлова:" + +#: optiondialog.cpp:1207 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Обрасци за фајлове које треба искључити из анализе.\n" +"Џокери: ‘*’ и ‘?’\n" +"Више образаца наводите са тачка-запетом као раздвајачем." + +#: optiondialog.cpp:1212 +#, kde-format +msgid "Dir-anti-pattern(s):" +msgstr "Противобрасци фасцикли:" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "" +"Pattern(s) of directories to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Обрасци за фасцикле које треба искључити из анализе.\n" +"Џокери: ‘*’ и ‘?’\n" +"Више образаца наводите са тачка-запетом као раздвајачем." + +#: optiondialog.cpp:1223 +#, kde-format +msgid "Use .cvsignore" +msgstr "Користи .cvsignore" + +#: optiondialog.cpp:1227 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by CVS.\n" +"Via local \".cvsignore\" files this can be directory specific." +msgstr "" +"Проширује противобрасце на све што би игнорисао ЦВС.\n" +"Преко локалних фајлова .cvsignore ово може бити посебно по фасцикли." + +#: optiondialog.cpp:1231 +#, kde-format +msgid "Find hidden files and directories" +msgstr "Пронађи скривене фајлове и фасцикле" + +#: optiondialog.cpp:1234 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and directories." +msgstr "Пронађи скривене фајлове и фасцикле" + +#: optiondialog.cpp:1237 +#, kde-format +msgid "Follow file links" +msgstr "Прати везе фајлова" + +#: optiondialog.cpp:1241 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Укључено: пореди фајлове на које показују везе.\n" +"Искључено: пореди везе." + +#: optiondialog.cpp:1245 +#, kde-format +msgid "Follow directory links" +msgstr "Прати везе фасцикли" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "" +"On: Compare the directory the link points to.\n" +"Off: Compare the links." +msgstr "" +"Укључено: пореди фасцикле на које показују везе.\n" +"Искључено: пореди везе." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Поређење имена фајлова разликује величину слова" + +#: optiondialog.cpp:1262 +#, kde-format +msgid "" +"The directory comparison will compare files or directories when their names " +"match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Поређење фасцикли упоређује фајлове и фасцикле чија се имена поклапају. " +"Задајте ову опцију имена треба да се поклапају и по величини слова. " +"Подразумевано је искључено под Виндоузом, иначе је укључено." + +#: optiondialog.cpp:1266 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subdirectories on load" +msgstr "Рашири све потфасцикле" + +#: optiondialog.cpp:1270 +#, kde-format +msgid "" +"On: Unfold all subdirectories when starting a directory diff.\n" +"Off: Leave subdirectories folded." +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "Skip directory status report" +msgstr "" + +#: optiondialog.cpp:1278 +#, kde-format +msgid "" +"On: Do not show the Directory Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1282 +#, kde-format +msgid "File Comparison Mode" +msgstr "Режим поређења фајлова" + +#: optiondialog.cpp:1287 +#, kde-format +msgid "Binary comparison" +msgstr "Бинарно поређење" + +#: optiondialog.cpp:1289 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Бинарно поређење за сваки фајл (подразумевано)." + +#: optiondialog.cpp:1292 +#, kde-format +msgid "Full analysis" +msgstr "Пуна анализа" + +#: optiondialog.cpp:1294 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Спроводи пуну анализу и даје статистичке податке у додатним колонама.\n" +"Спорије него бинарно поређење, много спорије за бинарне фајлове." + +#: optiondialog.cpp:1298 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Веруј величини и датуму измене (несигурно)" + +#: optiondialog.cpp:1300 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big directories or slow networks." +msgstr "" +"Претпоставља да су фајлови једнаки ако су им једнаки датуми измене и " +"величине.\n" +"Фајлови са истим садржајем али различитим датумом измене сматраће се " +"различитим.\n" +"Корисно за велике фасцикле или споре мреже." + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Веруј величини и датуму, али бинарно упореди ако се датум не поклапа " +"(несигурно)" + +#: optiondialog.cpp:1307 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big directories or slow networks." +msgstr "" +"Претпоставља да су фајлови једнаки ако су им једнаки датуми измене и " +"величине.\n" +"Ако датуми нису исти али величина јесте, бинарно упоређује.\n" +"Корисно за велике фасцикле или споре мреже." + +#: optiondialog.cpp:1312 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Веруј величини (несигурно)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big directories or slow networks when the date is modified during " +"download." +msgstr "" +"Претпоставља да су фајлови једнаки ако им једнаке величине.\n" +"Корисно за велике фасцикле или споре мреже када се датум измени током " +"преузимања." + +#: optiondialog.cpp:1321 +#, kde-format +msgid "Synchronize directories" +msgstr "Синхронизуј фасцикле" + +#: optiondialog.cpp:1325 +#, kde-format +msgid "" +"Offers to store files in both directories so that\n" +"both directories are the same afterwards.\n" +"Works only when comparing two directories without specifying a destination." +msgstr "" +"Нуди да складишти фајлове у обе фасцикле тако да испадну исте после тога.\n" +"Ради само када се пореде две фасцикле без задавања одредишта." + +#: optiondialog.cpp:1331 +#, kde-format +msgid "White space differences considered equal" +msgstr "Разлике у празнинама сматрају се једнаким" + +#: optiondialog.cpp:1335 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Ако се фајлови разликују само у празнинама, сматрају се једнаким.\n" +"Ово је активно само када се изабере пуна анализа." + +# >> copy newer file +#: optiondialog.cpp:1341 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Копирај новији уместо стапања (несигурно)" + +#: optiondialog.cpp:1345 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two directories." +msgstr "" +"Не гледа садржај, само узима новији фајл.\n" +"Користите ово само ако знате шта радите!\n" +"Има ефекта само при поређењу две фасцикле." + +#: optiondialog.cpp:1350 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Прави резерве фајлова (.orig)" + +#: optiondialog.cpp:1354 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Када фајл треба да буде сачуван преко старог фајла, стари фајл бива " +"преименован са наставком .orig уместо да буде обрисан." + +# rewrite-msgid: /Regional/Locale/ +#: optiondialog.cpp:1430 optiondialog.cpp:1431 +#, kde-format +msgid "Regional Settings" +msgstr "Поставке локалитета" + +#: optiondialog.cpp:1454 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Исто кодирање за све:" + +#: optiondialog.cpp:1458 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Укључивањем овог можете променити сва кодирања променом само првог.\n" +"Искључите ово ако поједине поставке треба да буду различите." + +# >! Merge sentence. +#: optiondialog.cpp:1462 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Напомена: локално кодирање је " + +#: optiondialog.cpp:1466 +#, kde-format +msgid "File Encoding for A:" +msgstr "Кодирање фајла за А:" + +#: optiondialog.cpp:1473 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ако је укључено, биће откривана уникодске (УТФ‑16 или УТФ‑8) кодирања.\n" +"Ако фајл није уникодски изабрано кодирање ће бити употребљено као одступно.\n" +"Откривање уникода зависи од првих бајтова у фајлу." + +#: optiondialog.cpp:1476 optiondialog.cpp:1487 optiondialog.cpp:1498 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Аутоматски откриј уникод" + +#: optiondialog.cpp:1482 +#, kde-format +msgid "File Encoding for B:" +msgstr "Кодирање фајла за Б:" + +#: optiondialog.cpp:1493 +#, kde-format +msgid "File Encoding for C:" +msgstr "Кодирање фајла за Ц:" + +#: optiondialog.cpp:1504 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Кодирање фајла за стопљени излаз и уписивање:" + +#: optiondialog.cpp:1509 +#, kde-format +msgid "Auto Select" +msgstr "Аутоматски изабери" + +#: optiondialog.cpp:1513 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ако је укључено, узима се кодирање према улазним фајловима.\n" +"У двосмисленим случајевима издаје се дијалог где корисник бира кодирање за " +"уписивање." + +#: optiondialog.cpp:1516 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Кодирање фајла за предобрадне фајлове:" + +#: optiondialog.cpp:1528 +#, kde-format +msgid "Right To Left Language" +msgstr "Језици здесна улево" + +#: optiondialog.cpp:1532 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Неки језици се читају здесна улево.\n" +"Ова поставка прилагођава томе приказивач и уређивач." + +#: optiondialog.cpp:1542 +#, kde-format +msgid "Integration" +msgstr "Уклапање" + +#: optiondialog.cpp:1543 +#, kde-format +msgid "Integration Settings" +msgstr "Поставке уклапања" + +#: optiondialog.cpp:1564 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Занемари опције командне линије:" + +#: optiondialog.cpp:1570 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Списак опција командне линије које треба занемарити када се К‑диф3 позива " +"кроз друге алатке.\n" +"Више вредности можете задати раздвојене тачка-запетом.\n" +"Овим се сузбија грешка „непозната опција“." + +#: optiondialog.cpp:1575 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Напуштање и преко тастера Esc" + +#: optiondialog.cpp:1579 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Брз начин напуштања.\n" +"За оне навикнуте на тастер Esc у ову сврху." + +#: optiondialog.cpp:1653 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Ово ресетује све опције, и то не само оне у текућој теми." + +#: pdiff.cpp:78 pdiff.cpp:92 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Грешка, губитак података:\n" +"Ако је можете поновити, контактирајте аутора.\n" + +#: pdiff.cpp:80 pdiff.cpp:94 +#, kde-format +msgid "Severe Internal Error" +msgstr "Озбиљна унутрашња грешка" + +#: pdiff.cpp:122 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Наредба предобраде: " + +#: pdiff.cpp:127 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Следеће опције које сте изабрали могу изменити податке:\n" + +#: pdiff.cpp:128 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Врло вероватно не желите ово приликом стапања.\n" +"Желите ли да искључите ове поставке или да наставите даље са њима?" + +#: pdiff.cpp:130 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Опција несигурна за стапање" + +#: pdiff.cpp:131 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Користи ове опције при стапању" + +#: pdiff.cpp:132 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Искључи несигурне опције" + +# >> @info:progress +#: pdiff.cpp:160 +#, kde-format +msgid "Loading A" +msgstr "Учитавам А" + +# >> @info:progress +#: pdiff.cpp:162 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Учитавам А" + +# >> @info:progress +#: pdiff.cpp:170 +#, kde-format +msgid "Loading B" +msgstr "Учитавам Б" + +# >> @info:progress +#: pdiff.cpp:201 pdiff.cpp:237 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Разликујем А и Б" + +# >> @info:progress +#: pdiff.cpp:207 pdiff.cpp:275 pdiff.cpp:289 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Разликујем редове А и Б" + +# >> @info:progress +#: pdiff.cpp:224 +#, kde-format +msgid "Loading C" +msgstr "Учитавам Ц" + +# >> @info:progress +#: pdiff.cpp:246 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Разликујем А и Ц" + +# >> @info:progress +#: pdiff.cpp:257 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Разликујем Б и Ц" + +# >> @info:progress +#: pdiff.cpp:279 pdiff.cpp:293 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Разликујем редове Б и Ц" + +# >> @info:progress +#: pdiff.cpp:283 pdiff.cpp:297 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Разликујем редове А и Ц" + +#: pdiff.cpp:840 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Сви улазни фајлови садрже исти текст, али нису бинарно једнаки." + +#: pdiff.cpp:846 pdiff.cpp:850 pdiff.cpp:854 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Фајлови %1 и %2 имају исти текст али нису бинарно једнаки.\n" + +#: pdiff.cpp:864 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Изгледа да неки улазни фајлови нису чисто текстуални.\n" +"Имајте на уму да стапање у К‑диф3 није намењено бинарним подацима.\n" +"Наставите на сопствену одговорност." + +#: pdiff.cpp:874 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:876 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:878 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Неке улазни знакови не могу да се претворе у уникод.\n" +"Можда сте изабрали погрешно кодирање (нпр. УТФ‑8 за не‑УТФ‑8 фајлове).\n" +"Не уписујте резултат ако нисте сигурни. Наставите на сопствену одговорност.\n" +"Погођени улазни фајлови налазе се у %1." + +#: pdiff.cpp:1053 +#, kde-format +msgid "Abort" +msgstr "Обустави" + +#: pdiff.cpp:1059 pdiff.cpp:1150 +#, kde-format +msgid "Opening files..." +msgstr "Отварам фајлове..." + +#: pdiff.cpp:1222 +#, kde-format +msgid "Cutting selection..." +msgstr "Исецам изабрано..." + +#: pdiff.cpp:1243 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Копирам избор у клипборд..." + +#: pdiff.cpp:1259 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Умећем садржај клипборда..." + +#: pdiff.cpp:1715 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1716 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1931 +#, kde-format +msgid "Save && Continue" +msgstr "Сачувај и настави" + +#: pdiff.cpp:1932 +#, kde-format +msgid "Continue Without Saving" +msgstr "Настави без уписивања" + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search complete." +msgstr "Претрага је готова." + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search Complete" +msgstr "Претрага завршена" + +#: pdiff.cpp:2395 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ништа није изабрано ни у једном прозору улаза разлике." + +#: pdiff.cpp:2395 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Грешка при додавању ручног опсега разлике" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Одустани" + +#: smalldialogs.cpp:61 +#, kde-format +msgid "A (Base):" +msgstr "А (база):" + +#: smalldialogs.cpp:71 smalldialogs.cpp:90 smalldialogs.cpp:109 +#: smalldialogs.cpp:154 +#, kde-format +msgid "File..." +msgstr "Фајл..." + +#: smalldialogs.cpp:73 smalldialogs.cpp:92 smalldialogs.cpp:111 +#: smalldialogs.cpp:156 +#, kde-format +msgid "Dir..." +msgstr "Фасцикла..." + +#: smalldialogs.cpp:103 +#, kde-format +msgid "C (Optional):" +msgstr "Ц (опционо):" + +#: smalldialogs.cpp:126 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Размени/копирај имена..." + +#: smalldialogs.cpp:131 smalldialogs.cpp:132 smalldialogs.cpp:133 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Размени %1 и %2" + +#: smalldialogs.cpp:134 smalldialogs.cpp:135 smalldialogs.cpp:136 +#, kde-format +msgid "Copy %1->Output" +msgstr "Копирај %1 у излаз" + +#: smalldialogs.cpp:137 smalldialogs.cpp:138 smalldialogs.cpp:139 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Размени %1 и излаз" + +#: smalldialogs.cpp:148 +#, kde-format +msgid "Output (optional):" +msgstr "Излаз (опционо):" + +#: smalldialogs.cpp:178 +#, kde-format +msgid "Configure..." +msgstr "Подеси..." + +#: smalldialogs.cpp:243 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Open Directory" +msgstr "Фасцикла" + +#: smalldialogs.cpp:244 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:403 +#, kde-format +msgid "Search text:" +msgstr "Тражени текст:" + +#: smalldialogs.cpp:410 +#, kde-format +msgid "Case sensitive" +msgstr "Разликуј величину слова" + +#: smalldialogs.cpp:413 +#, kde-format +msgid "Search A" +msgstr "Претражи А" + +#: smalldialogs.cpp:418 +#, kde-format +msgid "Search B" +msgstr "Претражи Б" + +#: smalldialogs.cpp:423 +#, kde-format +msgid "Search C" +msgstr "Претражи Ц" + +#: smalldialogs.cpp:428 +#, kde-format +msgid "Search output" +msgstr "Излаз претраге" + +#: smalldialogs.cpp:435 +#, kde-format +msgid "&Search" +msgstr "&Тражи" + +#: smalldialogs.cpp:454 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Проба регуларних израза" + +#: smalldialogs.cpp:467 +#, kde-format +msgid "Example auto merge line:" +msgstr "Пример реда за аутоматско стапање:" + +#: smalldialogs.cpp:469 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"За пробу аутоматског стапања, копирајте ред какав се налази у фајловима." + +#: smalldialogs.cpp:475 smalldialogs.cpp:503 smalldialogs.cpp:539 +#, kde-format +msgid "Match result:" +msgstr "Резултат поклапања:" + +#: smalldialogs.cpp:494 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Пример почетног реда историјата (са водећим коментаром):" + +#: smalldialogs.cpp:496 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Копирајте почетни ред историјата какав се налази у фајловима, укључујући и " +"водећи коментар." + +#: smalldialogs.cpp:522 +#, kde-format +msgid "History sort key order:" +msgstr "Редослед ређања кључева историјата:" + +#: smalldialogs.cpp:530 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Пример почетног реда ставке историјата (без водећег коментара):" + +#: smalldialogs.cpp:532 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Копирајте почетни ред ставке историјата какав се налази у фајловима, али " +"изостављајући водећи коментар." + +#: smalldialogs.cpp:546 +#, kde-format +msgid "Sort key result:" +msgstr "Резултат ређања кључева:" + +#: smalldialogs.cpp:594 smalldialogs.cpp:604 smalldialogs.cpp:624 +#, kde-format +msgid "Match success." +msgstr "Поклапање је успело." + +#: smalldialogs.cpp:598 smalldialogs.cpp:608 smalldialogs.cpp:630 +#, kde-format +msgid "Match failed." +msgstr "Поклапање није успело." + +#: smalldialogs.cpp:615 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Не поклапају се отворене и затворене заграде у регуларном изразу." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Уписивање података из клипборда у привремени фајл није успело." + +#: SourceData.cpp:157 +#, kde-format +msgid "From Clipboard" +msgstr "Из клипборда" + +#: SourceData.cpp:348 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Мешавина веза и нормалних фајлова." + +#: SourceData.cpp:440 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:445 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Изгледа да је предобрада пропала. Проверите ову наредбу:\n" +"\n" +" %1\n" +"\n" +"Наредба предобраде ће сада бити деактивирана." + +#: SourceData.cpp:456 SourceData.cpp:525 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:500 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Изгледа да је предобрада поклапања редова пропала. Проверите ову наредбу:\n" +"\n" +" %1\n" +"\n" +"Предобрада поклапања редова сада ће бити деактивирана." + +#: Utils.cpp:77 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Очекиван размак после затвореног апострофа." + +#: Utils.cpp:80 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:89 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Неочекиван апостроф унутар аргумента." + +#: Utils.cpp:96 +#, kde-format +msgid "No program specified." +msgstr "Наредба није задата." \ No newline at end of file diff --git a/po/sr/kdiff3fileitemactionplugin.po b/po/sr/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..dd97308 --- /dev/null +++ b/po/sr/kdiff3fileitemactionplugin.po @@ -0,0 +1,124 @@ +# Translation of kdiff3fileitemactionplugin.po into Serbian. +# Chusslove Illich , 2012, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-30 07:40+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kdiff3fileitemaction.cpp:92 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "К‑диф3..." + +# >> %1 file path +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "Compare with %1" +msgstr "Упореди са %1" + +# >> %1 file path +#: kdiff3fileitemaction.cpp:130 +#, kde-format +msgid "Merge with %1" +msgstr "Стопи са %1" + +#: kdiff3fileitemaction.cpp:136 +#, kde-format +msgid "Save '%1' for later" +msgstr "Сачувај „%1“ за касније" + +#: kdiff3fileitemaction.cpp:142 +#, kde-format +msgid "3-way merge with base" +msgstr "Тространо стопи са базом" + +#: kdiff3fileitemaction.cpp:149 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Упореди са..." + +#: kdiff3fileitemaction.cpp:161 +#, kde-format +msgid "Clear list" +msgstr "Очисти списак" + +#: kdiff3fileitemaction.cpp:169 +#, kde-format +msgid "Compare" +msgstr "Упореди" + +#: kdiff3fileitemaction.cpp:175 +#, kde-format +msgid "3 way comparison" +msgstr "Тространо упореди" + +#: kdiff3fileitemaction.cpp:179 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "О прикључку менија за К‑диф3..." + +#: kdiff3fileitemaction.cpp:287 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Прикључак за радње над фајловима К‑диф3: © 2011, Јоахим Ајбл\n" +"Домаћа страница К‑диф3: http://kdiff3.sourceforge.net\n" +"\n" + +# >! Wtf: ...then the branch to merge... +#: kdiff3fileitemaction.cpp:288 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to directory comparison and merge." +msgstr "" +"Коришћење проширења контекстног менија:\n" +"За једноставно поређење, изаберите „Упореди“.\n" +"Ако је други фајл негде другде, прво сачувајте први фајл. Појавиће се у " +"подменију „Упореди са...“. Затим употребите „Упореди са...“ над другим " +"фајлом.\n" +"За тространо стапање, прво сачувајте базни фајл, затим на грану за стапање, " +"па „Тространо стопи са базом“ на другој грани која ће бити одредиште.\n" +"Исто важи за поређење и стапање фасцикли." + +#: kdiff3fileitemaction.cpp:296 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "О прикључку за радње над фајловима К‑диф3" \ No newline at end of file diff --git a/po/sr@ijekavian/kdiff3.po b/po/sr@ijekavian/kdiff3.po new file mode 100644 index 0000000..91c32af --- /dev/null +++ b/po/sr@ijekavian/kdiff3.po @@ -0,0 +1,3594 @@ +# Translation of kdiff3.po into Serbian. +# Slobodan Simic , 2009. +# Chusslove Illich , 2010, 2011, 2012, 2015, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-15 06:48+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavian\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Generator: KBabel 1.11.4\n" +"X-Environment: kde\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Слободан Симић,Часлав Илић" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "slsimic@gmail.com,caslav.ilic@gmx.net" + +#: difftextwindow.cpp:414 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:416 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "ред недоступан" + +#: difftextwindow.cpp:1778 +#, kde-format +msgid "Encoding:" +msgstr "Кодирање:" + +#: difftextwindow.cpp:1781 mergeresultwindow.cpp:3166 optiondialog.cpp:840 +#, kde-format +msgid "Line end style:" +msgstr "Стил краја редова:" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:383 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:525 +#: directorymergewindow.cpp:3069 directorymergewindow.cpp:3200 +#: directorymergewindow.cpp:3428 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:1842 +#: mergeresultwindow.cpp:3198 mergeresultwindow.cpp:3205 optiondialog.cpp:1002 +#: optiondialog.cpp:1015 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:848 +#: pdiff.cpp:850 pdiff.cpp:872 smalldialogs.cpp:131 smalldialogs.cpp:133 +#: smalldialogs.cpp:134 smalldialogs.cpp:137 +#, kde-format +msgid "A" +msgstr "А" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:385 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:527 +#: directorymergewindow.cpp:3075 directorymergewindow.cpp:3201 +#: directorymergewindow.cpp:3429 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1844 +#: mergeresultwindow.cpp:3200 mergeresultwindow.cpp:3207 optiondialog.cpp:1003 +#: optiondialog.cpp:1016 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:852 +#: pdiff.cpp:854 pdiff.cpp:874 smalldialogs.cpp:131 smalldialogs.cpp:132 +#: smalldialogs.cpp:135 smalldialogs.cpp:138 +#, kde-format +msgid "B" +msgstr "Б" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:387 +#: directorymergewindow.cpp:440 directorymergewindow.cpp:529 +#: directorymergewindow.cpp:3081 directorymergewindow.cpp:3202 +#: directorymergewindow.cpp:3430 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1846 +#: mergeresultwindow.cpp:3202 mergeresultwindow.cpp:3209 optiondialog.cpp:1017 +#: pdiff.cpp:848 pdiff.cpp:850 pdiff.cpp:852 pdiff.cpp:854 pdiff.cpp:876 +#: smalldialogs.cpp:132 smalldialogs.cpp:133 smalldialogs.cpp:136 +#: smalldialogs.cpp:139 +#, kde-format +msgid "C" +msgstr "Ц" + +#: difftextwindow.cpp:1809 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "А (база):" + +#: difftextwindow.cpp:1811 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Кодирање:" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3211 +#, kde-format +msgid "Unix" +msgstr "Уникс" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3212 +#, kde-format +msgid "DOS" +msgstr "ДОС" + +#: difftextwindow.cpp:1812 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Стил краја редова:" + +# >! Merge whole string. +#: difftextwindow.cpp:1834 kdiff3.cpp:874 +#, kde-format +msgid "Top line" +msgstr "Први ред" + +#: difftextwindow.cpp:1843 +#, kde-format +msgid "End" +msgstr "Крај" + +#: difftextwindow.cpp:1901 smalldialogs.cpp:245 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Отварам фајлове..." + +#: difftextwindow.cpp:1943 optiondialog.cpp:389 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "уникод, 8‑битни" + +#: difftextwindow.cpp:1958 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:3435 +#, kde-format +msgid "Copy A to B" +msgstr "Копирај А у Б" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:3436 +#, kde-format +msgid "Copy B to A" +msgstr "Копирај Б у А" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:3437 +#, kde-format +msgid "Delete A" +msgstr "Обриши А" + +#: directorymergewindow.cpp:419 directorymergewindow.cpp:3438 +#, kde-format +msgid "Delete B" +msgstr "Обриши Б" + +#: directorymergewindow.cpp:422 +#, kde-format +msgid "Delete A & B" +msgstr "Обриши А и Б" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:3440 +#, kde-format +msgid "Merge to A" +msgstr "Стопи у А" + +#: directorymergewindow.cpp:428 directorymergewindow.cpp:3441 +#, kde-format +msgid "Merge to B" +msgstr "Стопи у Б" + +#: directorymergewindow.cpp:431 +#, kde-format +msgid "Merge to A & B" +msgstr "Стопи у А и Б" + +#: directorymergewindow.cpp:443 directorymergewindow.cpp:3432 +#, kde-format +msgid "Delete (if exists)" +msgstr "Обриши (ако постоји)" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#: directorymergewindow.cpp:3431 smalldialogs.cpp:120 +#, kde-format +msgid "Merge" +msgstr "Стопи" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#, kde-format +msgid "Merge (manual)" +msgstr "Стопи (ручно)" + +#: directorymergewindow.cpp:452 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Грешка: сукобљени типови фајлова." + +#: directorymergewindow.cpp:455 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Грешка: измењено и обрисано." + +#: directorymergewindow.cpp:458 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Грешка: датуми су једнаки али фајлови нису." + +#: directorymergewindow.cpp:472 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Готово." + +#: directorymergewindow.cpp:474 +#, kde-format +msgid "Error" +msgstr "Грешка" + +#: directorymergewindow.cpp:476 +#, kde-format +msgid "Skipped." +msgstr "Прескочено." + +#: directorymergewindow.cpp:478 +#, kde-format +msgid "Not saved." +msgstr "Није сачувано." + +#: directorymergewindow.cpp:480 +#, kde-format +msgid "In progress..." +msgstr "У току..." + +#: directorymergewindow.cpp:482 +#, kde-format +msgid "To do." +msgstr "Урадити." + +# >> @title:column +#: directorymergewindow.cpp:523 +#, kde-format +msgid "Name" +msgstr "име" + +# >> @title:column +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Operation" +msgstr "поступак" + +# >> @title:column +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Status" +msgstr "стање" + +# >> @title:column +#: directorymergewindow.cpp:535 +#, kde-format +msgid "Unsolved" +msgstr "нерешено" + +# >> @title:column +#: directorymergewindow.cpp:537 +#, kde-format +msgid "Solved" +msgstr "решено" + +# >> non-whitespace +# >> @title:column +#: directorymergewindow.cpp:539 +#, kde-format +msgid "Nonwhite" +msgstr "непразно" + +# >> whitespace +# >> @title:column +#: directorymergewindow.cpp:541 +#, kde-format +msgid "White" +msgstr "празно" + +#: directorymergewindow.cpp:676 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: directorymergewindow.cpp:690 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Мешавина веза и нормалних фајлова." + +#: directorymergewindow.cpp:697 +#, kde-format +msgid "Link: " +msgstr "Веза: " + +#: directorymergewindow.cpp:706 +#, kde-format +msgid "Size. " +msgstr "Величина: " + +#: directorymergewindow.cpp:720 directorymergewindow.cpp:730 +#, kde-format +msgid "Date & Size: " +msgstr "Датум и величина: " + +#: directorymergewindow.cpp:751 +#, kde-format +msgid "Comparing file..." +msgstr "Упоређујем фајл..." + +#: directorymergewindow.cpp:813 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort " +"the merge and rescan the directory?" +msgstr "" +"Тренутно стапате фасцикле. Желите ли заиста да прекинете стапање и поново " +"скенирате фасциклу?" + +#: directorymergewindow.cpp:814 kdiff3.cpp:697 kdiff3.cpp:707 kdiff3.cpp:719 +#: mergeresultwindow.cpp:400 pdiff.cpp:1052 pdiff.cpp:1930 pdiff.cpp:1940 +#, kde-format +msgid "Warning" +msgstr "Упозорење" + +#: directorymergewindow.cpp:815 directorymergewindow.cpp:3404 +#, kde-format +msgid "Rescan" +msgstr "Поново скенирај" + +#: directorymergewindow.cpp:816 pdiff.cpp:1054 +#, kde-format +msgid "Continue Merging" +msgstr "Настави стапање" + +#: directorymergewindow.cpp:983 +#, kde-format +msgid "Opening of directories failed:" +msgstr "Отварање фасцикли није успело:" + +#: directorymergewindow.cpp:987 +#, kde-format +msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgstr "Фасцикла А „%1“ не постоји или није фасцикла.\n" + +#: directorymergewindow.cpp:992 +#, kde-format +msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgstr "Фасцикла Б „%1“ не постоји или није фасцикла.\n" + +#: directorymergewindow.cpp:997 +#, kde-format +msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgstr "Фасцикла Ц „%1“ не постоји или није фасцикла.\n" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Directory Open Error" +msgstr "Грешка при отварању фасцикле" + +#: directorymergewindow.cpp:1008 +#, kde-format +msgid "" +"The destination directory must not be the same as A or B when three " +"directories are merged.\n" +"Check again before continuing." +msgstr "" +"Одредишна фасцикла не сме бити иста као А или Б када се стапају три " +"фасцикле.\n" +"Проверите поново пре него што наставите." + +#: directorymergewindow.cpp:1010 +#, kde-format +msgid "Parameter Warning" +msgstr "Упозорење о параметрима" + +#: directorymergewindow.cpp:1015 +#, kde-format +msgid "Scanning directories..." +msgstr "Скенирам фасцикле..." + +#: directorymergewindow.cpp:1041 +#, kde-format +msgid "Reading Directory A" +msgstr "Читам фасциклу А" + +#: directorymergewindow.cpp:1050 +#, kde-format +msgid "Reading Directory B" +msgstr "Читам фасциклу Б" + +#: directorymergewindow.cpp:1060 +#, kde-format +msgid "Reading Directory C" +msgstr "Читам фасциклу Ц" + +# >! Merge sentence. +#: directorymergewindow.cpp:1076 +#, kde-format +msgid "Some subdirectories were not readable in" +msgstr "Неке потфасцикле нису биле читљиве у" + +#: directorymergewindow.cpp:1081 +#, kde-format +msgid "Check the permissions of the subdirectories." +msgstr "Проверите дозволе потфасцикли." + +#: directorymergewindow.cpp:1118 kdiff3.cpp:665 kdiff3.cpp:752 kdiff3.cpp:776 +#: kdiff3.cpp:1072 kdiff3.cpp:1093 pdiff.cpp:1136 pdiff.cpp:1190 pdiff.cpp:1238 +#: pdiff.cpp:1254 pdiff.cpp:1297 pdiff.cpp:1321 +#, kde-format +msgid "Ready." +msgstr "Спреман." + +#: directorymergewindow.cpp:1133 +#, kde-format +msgid "" +"Directory Comparison Status\n" +"\n" +"Number of subdirectories: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1140 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Број ручних стапања:" + +#: directorymergewindow.cpp:1406 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ово утиче на све поступке стапања." + +# >> @title:window +#: directorymergewindow.cpp:1407 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Мењање свих поступака стапања" + +# >! Merge sentence. +#: directorymergewindow.cpp:1707 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Обрађујем " + +#: directorymergewindow.cpp:1750 directorymergewindow.cpp:1754 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Овај поступак тренутно није могућ." + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 directorymergewindow.cpp:2563 +#, kde-format +msgid "Operation Not Possible" +msgstr "Поступак није могућ" + +#: directorymergewindow.cpp:2330 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Грешка у току копирања.\n" + +#: directorymergewindow.cpp:2331 directorymergewindow.cpp:2770 +#, kde-format +msgid "Merge Error" +msgstr "Грешка стапања" + +#: directorymergewindow.cpp:2408 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Непознат поступак стапања. (Ово никада не сме да се догоди!)" + +#: directorymergewindow.cpp:2453 +#, kde-format +msgid "Unknown merge operation." +msgstr "Непозната поступак стапања." + +#: directorymergewindow.cpp:2466 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Стапање ће управо почети.\n" +"\n" +"Изаберите „Уради“ ако сте прочитали инструкције и знате шта радите.\n" +"Изаберите „Симулирај“ ако бисте прво да видите шта би се догодило.\n" +"\n" +"Пазите да је програм још увек у стању бете и нема апсолутно НИКАКВИХ " +"ГАРАНЦИЈА! Направите резерве важних података!" + +# >> @title:window +#: directorymergewindow.cpp:2471 +#, kde-format +msgid "Starting Merge" +msgstr "Почетак стапања" + +#: directorymergewindow.cpp:2472 +#, kde-format +msgid "Do It" +msgstr "Уради" + +#: directorymergewindow.cpp:2473 +#, kde-format +msgid "Simulate It" +msgstr "Симулирај" + +#: directorymergewindow.cpp:2499 +#, kde-format +msgid "" +"The highlighted item has a different type in the different directories. " +"Select what to do." +msgstr "" +"Истакнута ставка има различит тип у различитим фасциклама. Изаберите шта " +"урадити." + +#: directorymergewindow.cpp:2503 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Датуми измене фајла су једнаки али фајлови нису. Изаберите шта урадити." + +#: directorymergewindow.cpp:2507 +#, kde-format +msgid "" +"The highlighted item was changed in one directory and deleted in the other. " +"Select what to do." +msgstr "" +"Истакнута ставка је измењена у једној фасцикли а обрисана у другој. " +"Изаберите шта урадити." + +#: directorymergewindow.cpp:2563 +#, kde-format +msgid "" +"This operation is currently not possible because directory merge is " +"currently running." +msgstr "Овај поступак тренутно није могућ зато што је у току стапање фасцикли." + +#: directorymergewindow.cpp:2620 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Грешка у последњем кораку.\n" +"Желите ли да наставите са ставком која је изазвала грешку или да је " +"прескочите?" + +# >> @title:window +#: directorymergewindow.cpp:2622 +#, kde-format +msgid "Continue merge after an error" +msgstr "Настављање стапања после грешке" + +#: directorymergewindow.cpp:2623 +#, kde-format +msgid "Continue With Last Item" +msgstr "Настави са последњом ставком" + +#: directorymergewindow.cpp:2624 +#, kde-format +msgid "Skip Item" +msgstr "Прескочи ставку" + +#: directorymergewindow.cpp:2720 +#, kde-format +msgid "Merge operation complete." +msgstr "Поступак стапања је завршен." + +#: directorymergewindow.cpp:2720 directorymergewindow.cpp:2723 +#, kde-format +msgid "Merge Complete" +msgstr "Стапање завршено" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Симулирано стапање је завршено: проверите да ли вам одговарају предложени " +"поступци." + +#: directorymergewindow.cpp:2769 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Дошло је до грешке. Кликните на „У реду“ да добијете детаљне информације.\n" + +#: directorymergewindow.cpp:2802 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Грешка: у току брисања %1, прављење резерве није успело." + +#: directorymergewindow.cpp:2809 +#, kde-format +msgid "delete directory recursively( %1 )" +msgstr "рекурзивно брисање фасцикле (%1)" + +#: directorymergewindow.cpp:2811 +#, kde-format +msgid "delete( %1 )" +msgstr "брисање (%1)" + +#: directorymergewindow.cpp:2826 +#, kde-format +msgid "Error: delete dir operation failed while trying to read the directory." +msgstr "Грешка: поступак брисања фасцикле није успео на месту читања фасцикле." + +#: directorymergewindow.cpp:2845 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Грешка: поступак уклањања фасцикле (%1) није успео." + +#: directorymergewindow.cpp:2855 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Грешка: поступак брисања није успео." + +#: directorymergewindow.cpp:2881 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ручно стапање (%1, %2, %3 → %4)" + +#: directorymergewindow.cpp:2884 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Напомена: после ручног стапања корисник треба да настави притиском на " +"F7." + +#: directorymergewindow.cpp:2911 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Грешка: копирање (%1 → %2) није успело, брисање постојећег одредишта није " +"успело." + +#: directorymergewindow.cpp:2920 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "копирање везе (%1 → %2 )" + +#: directorymergewindow.cpp:2929 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Грешка: копирање везе није успело, удаљене везе још нису подржане." + +#: directorymergewindow.cpp:2939 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Грешка: копирање везе није успело." + +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "копирање (%1 → %2)" + +#: directorymergewindow.cpp:2990 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Грешка у току преименовања (%1 → %2), постојеће одредиште не може да се " +"обрише." + +#: directorymergewindow.cpp:2997 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "преименовање (%1 → %2)" + +#: directorymergewindow.cpp:3006 +#, kde-format +msgid "Error: Rename failed." +msgstr "Грешка: преименовање није успело." + +#: directorymergewindow.cpp:3024 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Грешка у току прављења фасцикле (%1), постојећи фајл не може да се обрише." + +#: directorymergewindow.cpp:3041 +#, kde-format +msgid "makeDir( %1 )" +msgstr "прављење фасцикле (%1)" + +#: directorymergewindow.cpp:3051 +#, kde-format +msgid "Error while creating directory." +msgstr "Грешка у току прављења фасцикле." + +#: directorymergewindow.cpp:3087 directorymergewindow.cpp:3206 +#, kde-format +msgid "Dest" +msgstr "Одредиште" + +# >> @title:column +#: directorymergewindow.cpp:3095 directorymergewindow.cpp:3124 +#, kde-format +msgid "Dir" +msgstr "фасцикла" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Type" +msgstr "тип" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Size" +msgstr "величина" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Attr" +msgstr "атрибути" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Last Modification" +msgstr "последња измена" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Link-Destination" +msgstr "одредиште везе" + +# >! Merge whole string. +# >> @item:intext +#: directorymergewindow.cpp:3124 +#, kde-format +msgid "File" +msgstr "фајл" + +#: directorymergewindow.cpp:3124 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Веза: " + +#: directorymergewindow.cpp:3130 +#, kde-format +msgid "not available" +msgstr "недоступно" + +#: directorymergewindow.cpp:3148 +#, kde-format +msgid "A (Dest): " +msgstr "А (одредиште): " + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A (Base): " +msgstr "А (база): " + +#: directorymergewindow.cpp:3158 +#, kde-format +msgid "B (Dest): " +msgstr "Б (одредиште): " + +#: directorymergewindow.cpp:3162 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:3167 +#, kde-format +msgid "C (Dest): " +msgstr "Ц (одредиште): " + +#: directorymergewindow.cpp:3171 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:3174 +#, kde-format +msgid "Dest: " +msgstr "Одредиште: " + +# >> @title:window +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:3249 +#, kde-format +msgid "Save Directory Merge State As..." +msgstr "Уписивање стања стапања фасцикли као..." + +#: directorymergewindow.cpp:3398 +#, kde-format +msgid "Start/Continue Directory Merge" +msgstr "Покрени/настави стапање фасцикли" + +#: directorymergewindow.cpp:3399 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Изврши поступак за текућу ставку" + +#: directorymergewindow.cpp:3400 +#, kde-format +msgid "Compare Selected File" +msgstr "Упореди изабрани фајл" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "Merge Current File" +msgstr "Стопи текући фајл" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Стопи\n" +"фајл" + +#: directorymergewindow.cpp:3402 +#, kde-format +msgid "Fold All Subdirs" +msgstr "Сажми све потфасцикле" + +#: directorymergewindow.cpp:3403 +#, kde-format +msgid "Unfold All Subdirs" +msgstr "Рашири све потфасцикле" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:3407 +#, kde-format +msgid "Choose A for All Items" +msgstr "Изабери А за све ставке" + +#: directorymergewindow.cpp:3408 +#, kde-format +msgid "Choose B for All Items" +msgstr "Изабери Б за све ставке" + +#: directorymergewindow.cpp:3409 +#, kde-format +msgid "Choose C for All Items" +msgstr "Изабери Ц за све ставке" + +#: directorymergewindow.cpp:3410 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Аутоматски изабери поступак за све ставке" + +#: directorymergewindow.cpp:3411 +#, kde-format +msgid "No Operation for All Items" +msgstr "Нема поступка за све ставке" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "Show Identical Files" +msgstr "Прикажи истоветне фајлове" + +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Истоветни\n" +"фајлови" + +#: directorymergewindow.cpp:3417 +#, kde-format +msgid "Show Different Files" +msgstr "Прикажи различите фајлове" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "Show Files only in A" +msgstr "Прикажи фајлове само у А" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Фајлови\n" +"само у А" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "Show Files only in B" +msgstr "Прикажи фајлове само у Б" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Фајлови\n" +"само у Б" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "Show Files only in C" +msgstr "Прикажи фајлове само у Ц" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Фајлови\n" +"само у Ц" + +#: directorymergewindow.cpp:3424 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Упореди изричито изабране фајлове" + +#: directorymergewindow.cpp:3425 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Стопи изричито изабране фајлове" + +#: directorymergewindow.cpp:3427 directorymergewindow.cpp:3434 +#, kde-format +msgid "Do Nothing" +msgstr "Не ради ништа" + +#: directorymergewindow.cpp:3439 +#, kde-format +msgid "Delete A && B" +msgstr "Обриши А и Б" + +#: directorymergewindow.cpp:3442 +#, kde-format +msgid "Merge to A && B" +msgstr "Стопи у А и Б" + +#: fileaccess.cpp:301 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:482 SourceData.cpp:506 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Читам фајл: %1" + +#: fileaccess.cpp:624 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Прављење привремене копије фајла %1 није успело." + +#: fileaccess.cpp:632 fileaccess.cpp:637 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Отварање фајла %1 није успело." + +#: fileaccess.cpp:656 fileaccess.cpp:664 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Грешка при читању из %1" + +#: fileaccess.cpp:788 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"При покушају прављења резерве, брисање старије резерве није успело.\n" +"Име фајла: " + +#: fileaccess.cpp:795 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"При покушају прављења резерве, преименовање није успело.\n" +"Имена фајлова: " + +#: fileaccess.cpp:865 +#, kde-format +msgid "Getting file status: %1" +msgstr "Добављам стање фајла: %1" + +#: fileaccess.cpp:906 +#, kde-format +msgid "Reading file: %1" +msgstr "Читам фајл: %1" + +#: fileaccess.cpp:944 +#, kde-format +msgid "Writing file: %1" +msgstr "Пишем фајл: %1" + +#: fileaccess.cpp:977 +#, kde-format +msgid "Out of memory" +msgstr "Нема више меморије" + +#: fileaccess.cpp:1013 +#, kde-format +msgid "Making directory: %1" +msgstr "Правим фасциклу: %1" + +#: fileaccess.cpp:1034 +#, kde-format +msgid "Removing directory: %1" +msgstr "Уклањам фасциклу: %1" + +#: fileaccess.cpp:1049 +#, kde-format +msgid "Removing file: %1" +msgstr "Уклањам фајл: %1" + +#: fileaccess.cpp:1065 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Правим симболичку везу: %1 → %2" + +#: fileaccess.cpp:1089 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Преименујем фајл: %1 → %2" + +#: fileaccess.cpp:1123 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Копирам фајл: %1 → %2" + +#: fileaccess.cpp:1145 +#, fuzzy, kde-format +#| msgid "Reading directory: " +msgid "Reading directory: %1" +msgstr "Читам фасциклу: " + +#: fileaccess.cpp:1202 +#, kde-format +msgid "Listing directory: %1" +msgstr "Листам фасциклу: %1" + +#: kdiff3.cpp:182 +#, kde-format +msgid "Current Configuration:" +msgstr "Тренутна постава:" + +#: kdiff3.cpp:187 +#, kde-format +msgid "Config Option Error:" +msgstr "Грешка поставне опције:" + +#: kdiff3.cpp:246 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Опција --auto је употребљена, али није наведен излазни фајл." + +#: kdiff3.cpp:405 +#, kde-format +msgid "Option --auto ignored for directory comparison." +msgstr "Опција --auto се игнорише за поређење фасцикли." + +#: kdiff3.cpp:449 +#, kde-format +msgid "Saving failed." +msgstr "Уписивање није успело." + +#: kdiff3.cpp:494 pdiff.cpp:395 pdiff.cpp:1117 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Отварање ових фајлова није успело:" + +#: kdiff3.cpp:503 pdiff.cpp:404 pdiff.cpp:1126 +#, kde-format +msgid "File open error" +msgstr "Грешка при отварању фајла" + +# >> @info:tooltip +#: kdiff3.cpp:532 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Отвара документе за поређење." + +#: kdiff3.cpp:534 +#, kde-format +msgid "Reload" +msgstr "Учитај поново" + +# >> @info:tooltip +#: kdiff3.cpp:537 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Уписује резултат стапања. Сви сукоби морају бити разрешени." + +# >> @info:tooltip +#: kdiff3.cpp:539 +#, kde-format +msgid "Saves the current document as..." +msgstr "Уписује текуће документе под именом." + +# >> @info:tooltip +#: kdiff3.cpp:542 +#, kde-format +msgid "Print the differences" +msgstr "Штампа разлике." + +# >> @info:tooltip +#: kdiff3.cpp:545 +#, kde-format +msgid "Quits the application" +msgstr "Напушта програм." + +# >> @info:tooltip +#: kdiff3.cpp:548 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Исеца изабрани одељак и ставља га у клипборд." + +# >> @info:tooltip +#: kdiff3.cpp:551 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Копира изабрани одељак у клипборд." + +# >> @info:tooltip +#: kdiff3.cpp:553 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Налепљује садржај клипборда на тренутном положају." + +# >> @info:tooltip +#: kdiff3.cpp:556 +#, kde-format +msgid "Select everything in current window" +msgstr "Изабира све у текућем прозору." + +# >> @info:tooltip +#: kdiff3.cpp:559 +#, kde-format +msgid "Search for a string" +msgstr "Тражи ниску." + +# >> @info:tooltip +#: kdiff3.cpp:561 +#, kde-format +msgid "Search again for the string" +msgstr "Поново тражи ниску." + +# >> @info:tooltip +#: kdiff3.cpp:566 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Укључује/искључује траку стања." + +#: kdiff3.cpp:570 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Подеси К‑диф3..." + +#: kdiff3.cpp:589 +#, kde-format +msgid "Go to Current Delta" +msgstr "Иди на текућу делту" + +#: kdiff3.cpp:589 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Текућа\n" +"делта" + +#: kdiff3.cpp:591 +#, kde-format +msgid "Go to First Delta" +msgstr "Иди на прву делту" + +#: kdiff3.cpp:591 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Прва\n" +"делта" + +#: kdiff3.cpp:593 +#, kde-format +msgid "Go to Last Delta" +msgstr "Иди на последњу делту" + +#: kdiff3.cpp:593 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Последња\n" +"делта" + +#: kdiff3.cpp:595 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Прескаче разлике у празнинама ако је „Прикажи празнине“ искључено.)" + +#: kdiff3.cpp:596 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Не прескаче разлике празнинама ни када је „Прикажи празнине“ искључено.)" + +#: kdiff3.cpp:597 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Иди на претходну делту" + +#: kdiff3.cpp:597 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Претходна\n" +"делта" + +#: kdiff3.cpp:599 +#, kde-format +msgid "Go to Next Delta" +msgstr "Иди на следећу делту" + +#: kdiff3.cpp:599 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Следећа\n" +"делта" + +#: kdiff3.cpp:601 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Иди на претходни сукоб" + +#: kdiff3.cpp:601 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Претходни\n" +"сукоб" + +#: kdiff3.cpp:603 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Иди на следећи сукоб" + +#: kdiff3.cpp:603 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Следећи\n" +"сукоб" + +#: kdiff3.cpp:605 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Иди на претходни нерешени сукоб" + +#: kdiff3.cpp:605 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Претходни\n" +"нерешени" + +#: kdiff3.cpp:607 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Иди на следећи нерешени сукоб" + +#: kdiff3.cpp:607 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Следећи\n" +"нерешени" + +#: kdiff3.cpp:609 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Изаберите редове из А" + +#: kdiff3.cpp:609 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Изаберите\n" +"А" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Изаберите редове из Б" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Изаберите\n" +"Б" + +#: kdiff3.cpp:611 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Изаберите редове из Ц" + +#: kdiff3.cpp:611 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Изаберите\n" +"Ц" + +#: kdiff3.cpp:612 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Аутоматски иди на следећи нерешени сукоб после избора извора" + +#: kdiff3.cpp:612 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Аутоматски\n" +"следећи" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Прикажи знакове размака и табулатора за разлике" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Знакови\n" +"празнина" + +#: kdiff3.cpp:615 +#, kde-format +msgid "Show White Space" +msgstr "Прикажи празнине" + +#: kdiff3.cpp:615 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Делте\n" +"празнина" + +#: kdiff3.cpp:617 +#, kde-format +msgid "Show Line Numbers" +msgstr "Прикажи бројеве редова" + +#: kdiff3.cpp:617 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Бројеви\n" +"редова" + +#: kdiff3.cpp:619 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Аутоматски реши једноставне сукобе" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Постави делте на сукобе" + +#: kdiff3.cpp:621 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Аутоматски стопи по регуларним изразима" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Аутоматски реши сукобе историјата" + +#: kdiff3.cpp:623 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Подели разлику на избору" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Споји изабране разлике" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Show Window A" +msgstr "Прикажи прозор А" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Show Window B" +msgstr "Прикажи прозор Б" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Show Window C" +msgstr "Прикажи прозор Ц" + +#: kdiff3.cpp:630 +#, kde-format +msgid "Normal Overview" +msgstr "Нормалан преглед" + +#: kdiff3.cpp:631 +#, kde-format +msgid "A vs. B Overview" +msgstr "Преглед А према Б" + +#: kdiff3.cpp:632 +#, kde-format +msgid "A vs. C Overview" +msgstr "Преглед А према Ц" + +#: kdiff3.cpp:633 +#, kde-format +msgid "B vs. C Overview" +msgstr "Преглед Б према Ц" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Прелом речи у прозорима разлика" + +#: kdiff3.cpp:635 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Додај ручно поравнање разлика" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Очисти сва ручна поравнања разлика" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Focus Next Window" +msgstr "Фокусирај следећи прозор" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Focus Prev Window" +msgstr "Фокусирај претходни прозор" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Пребаци оријентацију поделе" + +#: kdiff3.cpp:642 +#, kde-format +msgid "Dir && Text Split Screen View" +msgstr "Подељени приказ екрана на фасциклу и текст" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Toggle Between Dir && Text View" +msgstr "Пребаци приказ фасцикле и текста" + +#: kdiff3.cpp:696 pdiff.cpp:1929 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Резултат стапања није сачуван." + +#: kdiff3.cpp:698 +#, kde-format +msgid "Save && Quit" +msgstr "Сачувај и напусти" + +#: kdiff3.cpp:699 +#, kde-format +msgid "Quit Without Saving" +msgstr "Напусти без уписивања" + +#: kdiff3.cpp:707 pdiff.cpp:1940 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Уписивање резултата стапања није успело." + +#: kdiff3.cpp:718 pdiff.cpp:1051 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort?" +msgstr "Тренутно стапате фасцикле. Желите ли заиста да обуставите ово?" + +#: kdiff3.cpp:741 +#, kde-format +msgid "Saving file..." +msgstr "Уписујем фајл..." + +#: kdiff3.cpp:758 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Уписујем фајл под новим именом..." + +# >> @title:window +#: kdiff3.cpp:760 +#, kde-format +msgid "Save As..." +msgstr "Уписивање као" + +#: kdiff3.cpp:819 +#, kde-format +msgid "Printing not implemented." +msgstr "Штампање није изведено." + +#: kdiff3.cpp:858 +#, kde-format +msgid "Printing..." +msgstr "Штампам..." + +#: kdiff3.cpp:948 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:1006 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Избор" + +#: kdiff3.cpp:1034 +#, kde-format +msgid "Printing completed." +msgstr "Штампање завршено." + +#: kdiff3.cpp:1038 +#, kde-format +msgid "Printing aborted." +msgstr "Штампање обустављено." + +#: kdiff3.cpp:1045 +#, kde-format +msgid "Exiting..." +msgstr "Напуштам..." + +#: kdiff3.cpp:1056 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Пребацујем траку алатки..." + +#: kdiff3.cpp:1077 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Пребацујем траку стања..." + +#: kdiff3_part.cpp:45 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "К‑диф3 део" + +#: kdiff3_part.cpp:46 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:48 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:49 +#, kde-format +msgid "Joachim Eibl" +msgstr "Јоахим Ајбл" + +#: kdiff3_part.cpp:172 kdiff3_part.cpp:253 +#, fuzzy, kde-format +#| msgid "Couldn't find files for comparison." +msgid "Could not find files for comparison." +msgstr "Не могу да нађем фајлове за поређење." + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&К‑диф3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Подеси К‑диф3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:89 +#, kde-format +msgid "KDiff3" +msgstr "&К‑диф3" + +#: kdiff3_shell.cpp:74 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Не могу да припремим К‑диф3 део.\n" +"Ово је обично проблем у инсталацији. Прочитајте фајл ‘README’ из изворног " +"пакета за више детаља." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Фајл" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "&Directory" +msgstr "Ф&асцикла" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Поступак стапања текуће ставке" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Поступак синхронизовања текуће ставке" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Кретање" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Приказ &разлике" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Стопи" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Про&зор" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Главна трака" + +#: main.cpp:69 main.cpp:73 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Игнорисано (кориснички дефинисано)." + +#: main.cpp:93 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:95 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:96 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Directories" +msgstr "Алатка за поређење и стапање фајлова и фасцикли" + +#: main.cpp:97 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:113 +#, kde-format +msgid "Merge the input." +msgstr "Стопи улаз." + +#: main.cpp:114 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Изричит базни фајл. За сагласност са појединим алаткама." + +#: main.cpp:115 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Излазни фајл. Имплицира -m. Нпр: -o novifajl.txt" + +#: main.cpp:116 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Излазни фајл, поново. За сагласност са појединим алаткама." + +#: main.cpp:118 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "Без ГУИ‑ја ако су сви сукоби решиви аутоматски. Захтева -o fajl." + +#: main.cpp:120 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:122 +#, fuzzy, kde-format +#| msgid "Don't solve conflicts automatically. (For compatibility...)" +msgid "Do not solve conflicts automatically." +msgstr "Не решавај сукобе аутоматски. За сагласност..." + +#: main.cpp:123 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Замена видљивог имена за улазни фајл 1 (базни)." + +#: main.cpp:124 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Замена видљивог имена за улазни фајл 2." + +#: main.cpp:125 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Замена видљивог имена за улазни фајл 3." + +#: main.cpp:126 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Алтернативна замена видљивог имена. Задајте ово једном за сваки улаз." + +#: main.cpp:127 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Потисни поставку из поставе. Употребите једном за сваку поставку. Нпр: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:128 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Наброји поставке и тренутне вредности из поставе." + +#: main.cpp:129 +#, kde-format +msgid "Use a different config file." +msgstr "Употреби други поставни фајл." + +#: main.cpp:132 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Фајл 1 за отварање (базни, ако није наведен преко --base)." + +#: main.cpp:133 +#, kde-format +msgid "file2 to open" +msgstr "Фајл 2 за отварање." + +#: main.cpp:134 +#, kde-format +msgid "file3 to open" +msgstr "Фајл 3 за отварање." + +#: main.cpp:158 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: mergeresultwindow.cpp:171 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Свуда изабери А" + +#: mergeresultwindow.cpp:172 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Свуда изабери Б" + +#: mergeresultwindow.cpp:173 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Свуда изабери Ц" + +#: mergeresultwindow.cpp:174 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Изабери А за све нерешене сукобе" + +#: mergeresultwindow.cpp:175 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Изабери Б за све нерешене сукобе" + +#: mergeresultwindow.cpp:176 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Изабери Ц за све нерешене сукобе" + +#: mergeresultwindow.cpp:177 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Изабери А за све нерешене сукобе празнина" + +#: mergeresultwindow.cpp:178 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Изабери Б за све нерешене сукобе празнина" + +#: mergeresultwindow.cpp:179 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Изабери Ц за све нерешене сукобе празнина" + +#: mergeresultwindow.cpp:204 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Број преосталих нерешених сукоба: %1 (од чега %2 празнине)." + +#: mergeresultwindow.cpp:398 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Излаз је измењен.\n" +"Ако наставите измене ће бити изгубљене." + +#: mergeresultwindow.cpp:964 pdiff.cpp:838 +#, kde-format +msgid "All input files are binary equal." +msgstr "Сви улазни фајлови бинарно су једнаки." + +#: mergeresultwindow.cpp:966 +#, kde-format +msgid "All input files contain the same text." +msgstr "Сви улазни фајлови садрже исти текст." + +#: mergeresultwindow.cpp:970 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:978 pdiff.cpp:844 pdiff.cpp:848 pdiff.cpp:852 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Фајлови %1 и %2 бинарно су једнаки.\n" + +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:976 +#: mergeresultwindow.cpp:980 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Фајлови %1 и %2 садрже исти текст.\n" + +#: mergeresultwindow.cpp:986 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Nr of automatically solved conflicts: %2\n" +"Nr of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:992 +#, kde-format +msgid "Conflicts" +msgstr "Сукоби" + +#: mergeresultwindow.cpp:1901 +#, kde-format +msgid "" +msgstr "<нема изворног реда>" + +#: mergeresultwindow.cpp:1909 +#, kde-format +msgid "" +msgstr "<сукоб стапања (само празнине)>" + +#: mergeresultwindow.cpp:1911 mergeresultwindow.cpp:2783 +#, kde-format +msgid "" +msgstr "<сукоб стапања>" + +#: mergeresultwindow.cpp:2995 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Још нису решени сви сукоби.\n" +"Фајл није сачуван.\n" + +#: mergeresultwindow.cpp:2997 mergeresultwindow.cpp:3006 +#, kde-format +msgid "Conflicts Left" +msgstr "Преостали сукоби" + +#: mergeresultwindow.cpp:3004 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Сукоб у стилу завршетака редова. Изаберите ручно стил завршетка редова.\n" +"Фајл није сачуван.\n" + +#: mergeresultwindow.cpp:3018 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Прављење резерве није успело. Фајл није сачуван." + +#: mergeresultwindow.cpp:3018 mergeresultwindow.cpp:3066 +#, kde-format +msgid "File Save Error" +msgstr "Грешка уписивања фајла" + +#: mergeresultwindow.cpp:3066 +#, kde-format +msgid "Error while writing." +msgstr "Грешка при писању." + +#: mergeresultwindow.cpp:3138 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Излаз" + +#: mergeresultwindow.cpp:3151 mergeresultwindow.cpp:3343 +#, kde-format +msgid "[Modified]" +msgstr "[измењен]" + +#: mergeresultwindow.cpp:3158 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Кодирање за уписивање" + +#: mergeresultwindow.cpp:3258 +#, kde-format +msgid "Conflict" +msgstr "Сукоб" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3290 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Кодирање из" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3292 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Кодирање из" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3294 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Кодирање из" + +#: optiondialog.cpp:121 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:137 optiondialog.cpp:147 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:390 +#, kde-format +msgid "Unicode" +msgstr "уникод" + +#: optiondialog.cpp:391 +#, kde-format +msgid "Latin1" +msgstr "латиница‑1" + +#: optiondialog.cpp:410 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Измените ово ако су не‑аски знакови погрешно приказани." + +# >> @title:window +#: optiondialog.cpp:495 +#, kde-format +msgid "Configure" +msgstr "Подешавање" + +#: optiondialog.cpp:573 +#, kde-format +msgid "Font" +msgstr "Фонт" + +#: optiondialog.cpp:575 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Фонт уређивача и излаза разлике" + +#: optiondialog.cpp:594 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:599 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Грешка уписивања фајла" + +#: optiondialog.cpp:618 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Боја" + +#: optiondialog.cpp:619 +#, kde-format +msgid "Colors Settings" +msgstr "Поставке боја" + +#: optiondialog.cpp:644 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Уређивач и прикази разлика:" + +#: optiondialog.cpp:652 +#, kde-format +msgid "Foreground color:" +msgstr "Боја текста:" + +#: optiondialog.cpp:660 +#, kde-format +msgid "Background color:" +msgstr "Боја позадине:" + +#: optiondialog.cpp:670 +#, kde-format +msgid "Diff background color:" +msgstr "Боја позадине разлика:" + +#: optiondialog.cpp:679 +#, kde-format +msgid "Color A:" +msgstr "Боја А:" + +#: optiondialog.cpp:688 +#, kde-format +msgid "Color B:" +msgstr "Боја Б:" + +#: optiondialog.cpp:697 +#, kde-format +msgid "Color C:" +msgstr "Боја Ц:" + +#: optiondialog.cpp:705 +#, kde-format +msgid "Conflict color:" +msgstr "Боја сукоба:" + +#: optiondialog.cpp:714 +#, kde-format +msgid "Current range background color:" +msgstr "Позадинска боја текућег опсега:" + +#: optiondialog.cpp:723 +#, kde-format +msgid "Current range diff background color:" +msgstr "Позадинска боја текућег опсега разлика:" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Боја ручно поравнатих опсега разлика:" + +#: optiondialog.cpp:738 +#, kde-format +msgid "Directory Comparison View:" +msgstr "Приказ поређења фасцикли:" + +#: optiondialog.cpp:744 +#, kde-format +msgid "Newest file color:" +msgstr "Боја најновијег фајла:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next directory " +"comparison." +msgstr "Измена ове боје ступиће на снагу од првог наредног поређења фасцикли." + +#: optiondialog.cpp:754 +#, kde-format +msgid "Oldest file color:" +msgstr "Боја најстаријег фајла:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Middle age file color:" +msgstr "Боја фајла средње старости:" + +#: optiondialog.cpp:772 +#, kde-format +msgid "Color for missing files:" +msgstr "Боја за недостајуће фајлове:" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Editor" +msgstr "Уређивач" + +#: optiondialog.cpp:787 +#, kde-format +msgid "Editor Behavior" +msgstr "Понашање уређивача" + +# skip-rule: t-tab +#: optiondialog.cpp:809 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab умеће размаке" + +# rewrite-msgid: /generate/insert/ +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Укључено: притиском Tab‑а умеће се одговарајући број размака.\n" +"Искључено: умеће се знак табулатора." + +#: optiondialog.cpp:818 +#, kde-format +msgid "Tab size:" +msgstr "Величина табулатора:" + +#: optiondialog.cpp:825 +#, kde-format +msgid "Auto indentation" +msgstr "Аутоматско увлачење" + +#: optiondialog.cpp:829 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Укључено: увлачење претходног реда узима се за нови ред.\n" + +#: optiondialog.cpp:832 +#, kde-format +msgid "Auto copy selection" +msgstr "Аутоматско копирање избора" + +#: optiondialog.cpp:836 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Укључено: сваки избор се одмах уписује у клипборд.\n" +"Искључено: морате изричито копирати, нпр. помоћу Ctrl+C." + +#: optiondialog.cpp:851 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Поставља завршетке редова када се измењени фајл сачува.\n" +"ДОС/Виндоуз CR+LF, Уникс LF, где је CR=0D, LF=0A." + +#: optiondialog.cpp:861 +#, kde-format +msgid "Diff" +msgstr "Разликовање" + +#: optiondialog.cpp:862 +#, kde-format +msgid "Diff Settings" +msgstr "Поставке разликовања" + +# >! Merge sentence. +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options.m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:896 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Третирај као празнине." + +#: optiondialog.cpp:900 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Игнориши цифарске знакове у фази поклапања редова (слично игнорисању " +"празнина).\n" +"Може бити корисно при поређењу фајлова са нумеричким подацима." + +#: optiondialog.cpp:904 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Третирај Ц/Ц++ коментаре као празнине." + +#: optiondialog.cpp:907 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Третирај Ц/Ц++ коментаре као празнине." + +# >! Merge sentence. +#: optiondialog.cpp:910 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Третирај као празнине." + +#: optiondialog.cpp:914 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Третира разлику у величини као промене у празнинама (‘а’ једнако ‘А’)." + +#: optiondialog.cpp:917 +#, kde-format +msgid "Preprocessor command:" +msgstr "Предобрадна наредба:" + +#: optiondialog.cpp:922 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Кориснички дефинисана предобрада. Погледајте документацију за детаље." + +#: optiondialog.cpp:925 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Предобрадна наредба за поклапање редова:" + +#: optiondialog.cpp:930 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Предобрада се користи само током поклапања редова.\n" +"Погледајте документацију за детаље." + +#: optiondialog.cpp:933 +#, kde-format +msgid "Try hard (slower)" +msgstr "Потруди се (спорије)" + +#: optiondialog.cpp:937 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Укључује опцију --minimal за спољашње разликовање.\n" +"Анализа великих фајлова ће бити много спорија." + +#: optiondialog.cpp:941 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Поравнај Б и Ц за три улазна фајла" + +#: optiondialog.cpp:945 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Покушава да поравна Б и Ц при поређењу или стапању тре улазна фајла.\n" +"Није препоручљиво за стапање зато што га може учинити сложенијим.\n" +"Подразумевано је искључено." + +#: optiondialog.cpp:956 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Стопи" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Merge Settings" +msgstr "Поставке стапања" + +#: optiondialog.cpp:980 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Застој аутоматског напредовања (ms):" + +#: optiondialog.cpp:986 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"У режиму аутоматског напредовања резултат текућег избора приказује се \n" +"задато време пре скока на следећи сукоб. Опсег: 0–2000 ms." + +#: optiondialog.cpp:990 +#, kde-format +msgid "Show info dialogs" +msgstr "Приказуј информативне дијалоге" + +#: optiondialog.cpp:993 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Приказује дијалог са информацијом о броју сукоба." + +#: optiondialog.cpp:996 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Подразумевано стапање празнина два фајла:" + +#: optiondialog.cpp:1001 optiondialog.cpp:1014 +#, kde-format +msgid "Manual Choice" +msgstr "Ручни избор" + +#: optiondialog.cpp:1005 optiondialog.cpp:1019 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Дозвољава алгоритму стапања да аутоматски изабере улаз за измене само у " +"празнинама." + +#: optiondialog.cpp:1009 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Подразумевано стапање празнина три фајла:" + +#: optiondialog.cpp:1023 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Регуларни израз за аутоматско стапање" + +#: optiondialog.cpp:1031 smalldialogs.cpp:459 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Регуларни израз за аутоматско стапање:" + +#: optiondialog.cpp:1036 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Регуларни израз за редове где К‑диф3 треба да аутоматски изабере један од " +"извора. Кад регуларни израз поклопи ред са сукобом бира се Ц ако га има, " +"иначе Б." + +#: optiondialog.cpp:1042 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Аутоматски стопи по регуларном изразу на почетку стапања" + +#: optiondialog.cpp:1045 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "Спроводи стапање регуларним изразом чим стапање почне.\n" + +#: optiondialog.cpp:1050 +#, kde-format +msgid "Version Control History Merging" +msgstr "Стапање историјата управљања верзијама" + +#: optiondialog.cpp:1058 smalldialogs.cpp:486 +#, kde-format +msgid "History start regular expression:" +msgstr "Регуларни израз за почетак историјата:" + +# literal-segment: Log +#: optiondialog.cpp:1063 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Регуларни израз за почетак уноса у историјату управљања верзијама.\n" +"Овај ред обично садржи кључну реч „$Log$“.\n" +"Подразумевана вредност је „.*\\$Log.*\\$.*“." + +#: optiondialog.cpp:1069 smalldialogs.cpp:514 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Регуларни израз за почетак уноса историјата:" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Унос у историјату управљања верзијама чини неколико редова.\n" +"Задајте регуларни израз за откривање првог реда (без водећег коментара).\n" +"Користите заграде да групишете кључеве по којима ће се ређати.\n" +"Ако се остави празно, К‑диф3 узима да су уноси историјата раздвојени празним " +"редовима.\n" +"Детаље потражите у документацији." + +#: optiondialog.cpp:1090 +#, kde-format +msgid "History merge sorting" +msgstr "Ређање у стапању историјата" + +#: optiondialog.cpp:1093 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ређа историјат управљања верзијама по кључу." + +#: optiondialog.cpp:1103 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Редослед ређања за кључеве уноса историјата:" + +#: optiondialog.cpp:1108 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Сваки пар заграда употребљен у регуларном изразу за почетак уноса историјата " +"групише кључ који може послужити за ређање.\n" +"Задајте списак кључева (нумерисаних по реду појављивања почев од 1) са " +"запетом као раздвајачем (нпр. „4,5,6,1,2,3,7“).\n" +"Ако се остави празно, ређање се не спроводи.\n" +"Детаље потражите у документацији." + +#: optiondialog.cpp:1119 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Стопи историјат управљања верзијама на почетку стапања" + +#: optiondialog.cpp:1122 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Аутоматски стапа историјат управљања верзијама на почетку стапања." + +#: optiondialog.cpp:1126 +#, kde-format +msgid "Max number of history entries:" +msgstr "Највећи број уноса историјата:" + +# skip-rule: t-cut +#: optiondialog.cpp:1130 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Одсеца изнад задатог броја. Ставите -1 за неограничен број уноса." + +# >> @action:button +#: optiondialog.cpp:1134 +#, kde-format +msgid "Test your regular expressions" +msgstr "Испробај регуларне изразе" + +#: optiondialog.cpp:1139 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Наредба при безначајном стапању:" + +#: optiondialog.cpp:1144 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Ако се зада, ова скрипта се позива кад после аутоматског стапања нема " +"никаквих преосталих измена.\n" +"Позива се са аргументима: име‑фајла‑1 име‑фајла‑2 име‑фајла‑3" + +#: optiondialog.cpp:1149 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Аутоматски сачувај и напусти при стапању без сукоба" + +#: optiondialog.cpp:1153 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Ако се К‑диф3 покрене из командне линије ради стапања фајлова, и сви сукоби " +"су разрешиви без интервенисања корисника, тада се аутоматски резултати " +"уписују и програм напушта.\n" +"Слично опцији командне линије --auto." + +#: optiondialog.cpp:1164 optiondialog.cpp:1165 +#, kde-format +msgid "Directory" +msgstr "Фасцикла" + +#: optiondialog.cpp:1185 +#, kde-format +msgid "Recursive directories" +msgstr "Рекурзивно кроз фасцикле" + +#: optiondialog.cpp:1188 +#, kde-format +msgid "Whether to analyze subdirectories or not." +msgstr "Да ли анализирати потфасцикле." + +#: optiondialog.cpp:1190 +#, kde-format +msgid "File pattern(s):" +msgstr "Обрасци фајлова:" + +#: optiondialog.cpp:1196 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Обрасци за фајлове које треба анализирати.\n" +"Џокери: ‘*’ и ‘?’\n" +"Више образаца наводите са тачка-запетом као раздвајачем." + +#: optiondialog.cpp:1201 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Противобрасци фајлова:" + +#: optiondialog.cpp:1207 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Обрасци за фајлове које треба искључити из анализе.\n" +"Џокери: ‘*’ и ‘?’\n" +"Више образаца наводите са тачка-запетом као раздвајачем." + +#: optiondialog.cpp:1212 +#, kde-format +msgid "Dir-anti-pattern(s):" +msgstr "Противобрасци фасцикли:" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "" +"Pattern(s) of directories to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Обрасци за фасцикле које треба искључити из анализе.\n" +"Џокери: ‘*’ и ‘?’\n" +"Више образаца наводите са тачка-запетом као раздвајачем." + +#: optiondialog.cpp:1223 +#, kde-format +msgid "Use .cvsignore" +msgstr "Користи .cvsignore" + +#: optiondialog.cpp:1227 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by CVS.\n" +"Via local \".cvsignore\" files this can be directory specific." +msgstr "" +"Проширује противобрасце на све што би игнорисао ЦВС.\n" +"Преко локалних фајлова .cvsignore ово може бити посебно по фасцикли." + +#: optiondialog.cpp:1231 +#, kde-format +msgid "Find hidden files and directories" +msgstr "Пронађи скривене фајлове и фасцикле" + +#: optiondialog.cpp:1234 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and directories." +msgstr "Пронађи скривене фајлове и фасцикле" + +#: optiondialog.cpp:1237 +#, kde-format +msgid "Follow file links" +msgstr "Прати везе фајлова" + +#: optiondialog.cpp:1241 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Укључено: пореди фајлове на које показују везе.\n" +"Искључено: пореди везе." + +#: optiondialog.cpp:1245 +#, kde-format +msgid "Follow directory links" +msgstr "Прати везе фасцикли" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "" +"On: Compare the directory the link points to.\n" +"Off: Compare the links." +msgstr "" +"Укључено: пореди фасцикле на које показују везе.\n" +"Искључено: пореди везе." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Поређење имена фајлова разликује величину слова" + +#: optiondialog.cpp:1262 +#, kde-format +msgid "" +"The directory comparison will compare files or directories when their names " +"match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Поређење фасцикли упоређује фајлове и фасцикле чија се имена поклапају. " +"Задајте ову опцију имена треба да се поклапају и по величини слова. " +"Подразумевано је искључено под Виндоузом, иначе је укључено." + +#: optiondialog.cpp:1266 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subdirectories on load" +msgstr "Рашири све потфасцикле" + +#: optiondialog.cpp:1270 +#, kde-format +msgid "" +"On: Unfold all subdirectories when starting a directory diff.\n" +"Off: Leave subdirectories folded." +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "Skip directory status report" +msgstr "" + +#: optiondialog.cpp:1278 +#, kde-format +msgid "" +"On: Do not show the Directory Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1282 +#, kde-format +msgid "File Comparison Mode" +msgstr "Режим поређења фајлова" + +#: optiondialog.cpp:1287 +#, kde-format +msgid "Binary comparison" +msgstr "Бинарно поређење" + +#: optiondialog.cpp:1289 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Бинарно поређење за сваки фајл (подразумевано)." + +#: optiondialog.cpp:1292 +#, kde-format +msgid "Full analysis" +msgstr "Пуна анализа" + +#: optiondialog.cpp:1294 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Спроводи пуну анализу и даје статистичке податке у додатним колонама.\n" +"Спорије него бинарно поређење, много спорије за бинарне фајлове." + +#: optiondialog.cpp:1298 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Веруј величини и датуму измене (несигурно)" + +#: optiondialog.cpp:1300 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big directories or slow networks." +msgstr "" +"Претпоставља да су фајлови једнаки ако су им једнаки датуми измене и " +"величине.\n" +"Фајлови са истим садржајем али различитим датумом измене сматраће се " +"различитим.\n" +"Корисно за велике фасцикле или споре мреже." + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Веруј величини и датуму, али бинарно упореди ако се датум не поклапа " +"(несигурно)" + +#: optiondialog.cpp:1307 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big directories or slow networks." +msgstr "" +"Претпоставља да су фајлови једнаки ако су им једнаки датуми измене и " +"величине.\n" +"Ако датуми нису исти али величина јесте, бинарно упоређује.\n" +"Корисно за велике фасцикле или споре мреже." + +#: optiondialog.cpp:1312 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Веруј величини (несигурно)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big directories or slow networks when the date is modified during " +"download." +msgstr "" +"Претпоставља да су фајлови једнаки ако им једнаке величине.\n" +"Корисно за велике фасцикле или споре мреже када се датум измени током " +"преузимања." + +#: optiondialog.cpp:1321 +#, kde-format +msgid "Synchronize directories" +msgstr "Синхронизуј фасцикле" + +#: optiondialog.cpp:1325 +#, kde-format +msgid "" +"Offers to store files in both directories so that\n" +"both directories are the same afterwards.\n" +"Works only when comparing two directories without specifying a destination." +msgstr "" +"Нуди да складишти фајлове у обе фасцикле тако да испадну исте после тога.\n" +"Ради само када се пореде две фасцикле без задавања одредишта." + +#: optiondialog.cpp:1331 +#, kde-format +msgid "White space differences considered equal" +msgstr "Разлике у празнинама сматрају се једнаким" + +#: optiondialog.cpp:1335 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Ако се фајлови разликују само у празнинама, сматрају се једнаким.\n" +"Ово је активно само када се изабере пуна анализа." + +# >> copy newer file +#: optiondialog.cpp:1341 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Копирај новији уместо стапања (несигурно)" + +#: optiondialog.cpp:1345 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two directories." +msgstr "" +"Не гледа садржај, само узима новији фајл.\n" +"Користите ово само ако знате шта радите!\n" +"Има ефекта само при поређењу две фасцикле." + +#: optiondialog.cpp:1350 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Прави резерве фајлова (.orig)" + +#: optiondialog.cpp:1354 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Када фајл треба да буде сачуван преко старог фајла, стари фајл бива " +"преименован са наставком .orig уместо да буде обрисан." + +# rewrite-msgid: /Regional/Locale/ +#: optiondialog.cpp:1430 optiondialog.cpp:1431 +#, kde-format +msgid "Regional Settings" +msgstr "Поставке локалитета" + +#: optiondialog.cpp:1454 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Исто кодирање за све:" + +#: optiondialog.cpp:1458 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Укључивањем овог можете променити сва кодирања променом само првог.\n" +"Искључите ово ако поједине поставке треба да буду различите." + +# >! Merge sentence. +#: optiondialog.cpp:1462 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Напомена: локално кодирање је " + +#: optiondialog.cpp:1466 +#, kde-format +msgid "File Encoding for A:" +msgstr "Кодирање фајла за А:" + +#: optiondialog.cpp:1473 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ако је укључено, биће откривана уникодске (УТФ‑16 или УТФ‑8) кодирања.\n" +"Ако фајл није уникодски изабрано кодирање ће бити употребљено као одступно.\n" +"Откривање уникода зависи од првих бајтова у фајлу." + +#: optiondialog.cpp:1476 optiondialog.cpp:1487 optiondialog.cpp:1498 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Аутоматски откриј уникод" + +#: optiondialog.cpp:1482 +#, kde-format +msgid "File Encoding for B:" +msgstr "Кодирање фајла за Б:" + +#: optiondialog.cpp:1493 +#, kde-format +msgid "File Encoding for C:" +msgstr "Кодирање фајла за Ц:" + +#: optiondialog.cpp:1504 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Кодирање фајла за стопљени излаз и уписивање:" + +#: optiondialog.cpp:1509 +#, kde-format +msgid "Auto Select" +msgstr "Аутоматски изабери" + +#: optiondialog.cpp:1513 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ако је укључено, узима се кодирање према улазним фајловима.\n" +"У двосмисленим случајевима издаје се дијалог где корисник бира кодирање за " +"уписивање." + +#: optiondialog.cpp:1516 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Кодирање фајла за предобрадне фајлове:" + +#: optiondialog.cpp:1528 +#, kde-format +msgid "Right To Left Language" +msgstr "Језици здесна улево" + +#: optiondialog.cpp:1532 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Неки језици се читају здесна улево.\n" +"Ова поставка прилагођава томе приказивач и уређивач." + +#: optiondialog.cpp:1542 +#, kde-format +msgid "Integration" +msgstr "Уклапање" + +#: optiondialog.cpp:1543 +#, kde-format +msgid "Integration Settings" +msgstr "Поставке уклапања" + +#: optiondialog.cpp:1564 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Занемари опције командне линије:" + +#: optiondialog.cpp:1570 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Списак опција командне линије које треба занемарити када се К‑диф3 позива " +"кроз друге алатке.\n" +"Више вредности можете задати раздвојене тачка-запетом.\n" +"Овим се сузбија грешка „непозната опција“." + +#: optiondialog.cpp:1575 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Напуштање и преко тастера Esc" + +#: optiondialog.cpp:1579 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Брз начин напуштања.\n" +"За оне навикнуте на тастер Esc у ову сврху." + +#: optiondialog.cpp:1653 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Ово ресетује све опције, и то не само оне у текућој теми." + +#: pdiff.cpp:78 pdiff.cpp:92 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Грешка, губитак података:\n" +"Ако је можете поновити, контактирајте аутора.\n" + +#: pdiff.cpp:80 pdiff.cpp:94 +#, kde-format +msgid "Severe Internal Error" +msgstr "Озбиљна унутрашња грешка" + +#: pdiff.cpp:122 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Наредба предобраде: " + +#: pdiff.cpp:127 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Следеће опције које сте изабрали могу изменити податке:\n" + +#: pdiff.cpp:128 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Врло вероватно не желите ово приликом стапања.\n" +"Желите ли да искључите ове поставке или да наставите даље са њима?" + +#: pdiff.cpp:130 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Опција несигурна за стапање" + +#: pdiff.cpp:131 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Користи ове опције при стапању" + +#: pdiff.cpp:132 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Искључи несигурне опције" + +# >> @info:progress +#: pdiff.cpp:160 +#, kde-format +msgid "Loading A" +msgstr "Учитавам А" + +# >> @info:progress +#: pdiff.cpp:162 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Учитавам А" + +# >> @info:progress +#: pdiff.cpp:170 +#, kde-format +msgid "Loading B" +msgstr "Учитавам Б" + +# >> @info:progress +#: pdiff.cpp:201 pdiff.cpp:237 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Разликујем А и Б" + +# >> @info:progress +#: pdiff.cpp:207 pdiff.cpp:275 pdiff.cpp:289 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Разликујем редове А и Б" + +# >> @info:progress +#: pdiff.cpp:224 +#, kde-format +msgid "Loading C" +msgstr "Учитавам Ц" + +# >> @info:progress +#: pdiff.cpp:246 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Разликујем А и Ц" + +# >> @info:progress +#: pdiff.cpp:257 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Разликујем Б и Ц" + +# >> @info:progress +#: pdiff.cpp:279 pdiff.cpp:293 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Разликујем редове Б и Ц" + +# >> @info:progress +#: pdiff.cpp:283 pdiff.cpp:297 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Разликујем редове А и Ц" + +#: pdiff.cpp:840 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Сви улазни фајлови садрже исти текст, али нису бинарно једнаки." + +#: pdiff.cpp:846 pdiff.cpp:850 pdiff.cpp:854 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Фајлови %1 и %2 имају исти текст али нису бинарно једнаки.\n" + +#: pdiff.cpp:864 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Изгледа да неки улазни фајлови нису чисто текстуални.\n" +"Имајте на уму да стапање у К‑диф3 није намењено бинарним подацима.\n" +"Наставите на сопствену одговорност." + +#: pdiff.cpp:874 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:876 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:878 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Неке улазни знакови не могу да се претворе у уникод.\n" +"Можда сте изабрали погрешно кодирање (нпр. УТФ‑8 за не‑УТФ‑8 фајлове).\n" +"Не уписујте резултат ако нисте сигурни. Наставите на сопствену одговорност.\n" +"Погођени улазни фајлови налазе се у %1." + +#: pdiff.cpp:1053 +#, kde-format +msgid "Abort" +msgstr "Обустави" + +#: pdiff.cpp:1059 pdiff.cpp:1150 +#, kde-format +msgid "Opening files..." +msgstr "Отварам фајлове..." + +#: pdiff.cpp:1222 +#, kde-format +msgid "Cutting selection..." +msgstr "Исецам изабрано..." + +#: pdiff.cpp:1243 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Копирам избор у клипборд..." + +#: pdiff.cpp:1259 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Умећем садржај клипборда..." + +#: pdiff.cpp:1715 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1716 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1931 +#, kde-format +msgid "Save && Continue" +msgstr "Сачувај и настави" + +#: pdiff.cpp:1932 +#, kde-format +msgid "Continue Without Saving" +msgstr "Настави без уписивања" + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search complete." +msgstr "Претрага је готова." + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search Complete" +msgstr "Претрага завршена" + +#: pdiff.cpp:2395 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ништа није изабрано ни у једном прозору улаза разлике." + +#: pdiff.cpp:2395 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Грешка при додавању ручног опсега разлике" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Одустани" + +#: smalldialogs.cpp:61 +#, kde-format +msgid "A (Base):" +msgstr "А (база):" + +#: smalldialogs.cpp:71 smalldialogs.cpp:90 smalldialogs.cpp:109 +#: smalldialogs.cpp:154 +#, kde-format +msgid "File..." +msgstr "Фајл..." + +#: smalldialogs.cpp:73 smalldialogs.cpp:92 smalldialogs.cpp:111 +#: smalldialogs.cpp:156 +#, kde-format +msgid "Dir..." +msgstr "Фасцикла..." + +#: smalldialogs.cpp:103 +#, kde-format +msgid "C (Optional):" +msgstr "Ц (опционо):" + +#: smalldialogs.cpp:126 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Размени/копирај имена..." + +#: smalldialogs.cpp:131 smalldialogs.cpp:132 smalldialogs.cpp:133 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Размени %1 и %2" + +#: smalldialogs.cpp:134 smalldialogs.cpp:135 smalldialogs.cpp:136 +#, kde-format +msgid "Copy %1->Output" +msgstr "Копирај %1 у излаз" + +#: smalldialogs.cpp:137 smalldialogs.cpp:138 smalldialogs.cpp:139 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Размени %1 и излаз" + +#: smalldialogs.cpp:148 +#, kde-format +msgid "Output (optional):" +msgstr "Излаз (опционо):" + +#: smalldialogs.cpp:178 +#, kde-format +msgid "Configure..." +msgstr "Подеси..." + +#: smalldialogs.cpp:243 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Open Directory" +msgstr "Фасцикла" + +#: smalldialogs.cpp:244 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:403 +#, kde-format +msgid "Search text:" +msgstr "Тражени текст:" + +#: smalldialogs.cpp:410 +#, kde-format +msgid "Case sensitive" +msgstr "Разликуј величину слова" + +#: smalldialogs.cpp:413 +#, kde-format +msgid "Search A" +msgstr "Претражи А" + +#: smalldialogs.cpp:418 +#, kde-format +msgid "Search B" +msgstr "Претражи Б" + +#: smalldialogs.cpp:423 +#, kde-format +msgid "Search C" +msgstr "Претражи Ц" + +#: smalldialogs.cpp:428 +#, kde-format +msgid "Search output" +msgstr "Излаз претраге" + +#: smalldialogs.cpp:435 +#, kde-format +msgid "&Search" +msgstr "&Тражи" + +#: smalldialogs.cpp:454 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Проба регуларних израза" + +#: smalldialogs.cpp:467 +#, kde-format +msgid "Example auto merge line:" +msgstr "Пример реда за аутоматско стапање:" + +#: smalldialogs.cpp:469 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"За пробу аутоматског стапања, копирајте ред какав се налази у фајловима." + +#: smalldialogs.cpp:475 smalldialogs.cpp:503 smalldialogs.cpp:539 +#, kde-format +msgid "Match result:" +msgstr "Резултат поклапања:" + +#: smalldialogs.cpp:494 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Пример почетног реда историјата (са водећим коментаром):" + +#: smalldialogs.cpp:496 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Копирајте почетни ред историјата какав се налази у фајловима, укључујући и " +"водећи коментар." + +#: smalldialogs.cpp:522 +#, kde-format +msgid "History sort key order:" +msgstr "Редослед ређања кључева историјата:" + +#: smalldialogs.cpp:530 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Пример почетног реда ставке историјата (без водећег коментара):" + +#: smalldialogs.cpp:532 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Копирајте почетни ред ставке историјата какав се налази у фајловима, али " +"изостављајући водећи коментар." + +#: smalldialogs.cpp:546 +#, kde-format +msgid "Sort key result:" +msgstr "Резултат ређања кључева:" + +#: smalldialogs.cpp:594 smalldialogs.cpp:604 smalldialogs.cpp:624 +#, kde-format +msgid "Match success." +msgstr "Поклапање је успело." + +#: smalldialogs.cpp:598 smalldialogs.cpp:608 smalldialogs.cpp:630 +#, kde-format +msgid "Match failed." +msgstr "Поклапање није успело." + +#: smalldialogs.cpp:615 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Не поклапају се отворене и затворене заграде у регуларном изразу." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Уписивање података из клипборда у привремени фајл није успело." + +#: SourceData.cpp:157 +#, kde-format +msgid "From Clipboard" +msgstr "Из клипборда" + +#: SourceData.cpp:348 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Мешавина веза и нормалних фајлова." + +#: SourceData.cpp:440 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:445 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Изгледа да је предобрада пропала. Проверите ову наредбу:\n" +"\n" +" %1\n" +"\n" +"Наредба предобраде ће сада бити деактивирана." + +#: SourceData.cpp:456 SourceData.cpp:525 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:500 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Изгледа да је предобрада поклапања редова пропала. Проверите ову наредбу:\n" +"\n" +" %1\n" +"\n" +"Предобрада поклапања редова сада ће бити деактивирана." + +#: Utils.cpp:77 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Очекиван размак после затвореног апострофа." + +#: Utils.cpp:80 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:89 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Неочекиван апостроф унутар аргумента." + +#: Utils.cpp:96 +#, kde-format +msgid "No program specified." +msgstr "Наредба није задата." \ No newline at end of file diff --git a/po/sr@ijekavian/kdiff3fileitemactionplugin.po b/po/sr@ijekavian/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..1099ad2 --- /dev/null +++ b/po/sr@ijekavian/kdiff3fileitemactionplugin.po @@ -0,0 +1,124 @@ +# Translation of kdiff3fileitemactionplugin.po into Serbian. +# Chusslove Illich , 2012, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-30 07:40+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavian\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kdiff3fileitemaction.cpp:92 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "К‑диф3..." + +# >> %1 file path +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "Compare with %1" +msgstr "Упореди са %1" + +# >> %1 file path +#: kdiff3fileitemaction.cpp:130 +#, kde-format +msgid "Merge with %1" +msgstr "Стопи са %1" + +#: kdiff3fileitemaction.cpp:136 +#, kde-format +msgid "Save '%1' for later" +msgstr "Сачувај „%1“ за касније" + +#: kdiff3fileitemaction.cpp:142 +#, kde-format +msgid "3-way merge with base" +msgstr "Тространо стопи са базом" + +#: kdiff3fileitemaction.cpp:149 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Упореди са..." + +#: kdiff3fileitemaction.cpp:161 +#, kde-format +msgid "Clear list" +msgstr "Очисти списак" + +#: kdiff3fileitemaction.cpp:169 +#, kde-format +msgid "Compare" +msgstr "Упореди" + +#: kdiff3fileitemaction.cpp:175 +#, kde-format +msgid "3 way comparison" +msgstr "Тространо упореди" + +#: kdiff3fileitemaction.cpp:179 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "О прикључку менија за К‑диф3..." + +#: kdiff3fileitemaction.cpp:287 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Прикључак за радње над фајловима К‑диф3: © 2011, Јоахим Ајбл\n" +"Домаћа страница К‑диф3: http://kdiff3.sourceforge.net\n" +"\n" + +# >! Wtf: ...then the branch to merge... +#: kdiff3fileitemaction.cpp:288 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to directory comparison and merge." +msgstr "" +"Коришћење проширења контекстног менија:\n" +"За једноставно поређење, изаберите „Упореди“.\n" +"Ако је други фајл негде другде, прво сачувајте први фајл. Појавиће се у " +"подменију „Упореди са...“. Затим употребите „Упореди са...“ над другим " +"фајлом.\n" +"За тространо стапање, прво сачувајте базни фајл, затим на грану за стапање, " +"па „Тространо стопи са базом“ на другој грани која ће бити одредиште.\n" +"Исто важи за поређење и стапање фасцикли." + +#: kdiff3fileitemaction.cpp:296 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "О прикључку за радње над фајловима К‑диф3" \ No newline at end of file diff --git a/po/sr@ijekavianlatin/kdiff3.po b/po/sr@ijekavianlatin/kdiff3.po new file mode 100644 index 0000000..09c018e --- /dev/null +++ b/po/sr@ijekavianlatin/kdiff3.po @@ -0,0 +1,3596 @@ +# Translation of kdiff3.po into Serbian. +# Slobodan Simic , 2009. +# Chusslove Illich , 2010, 2011, 2012, 2015, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-15 06:48+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavianlatin\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Generator: KBabel 1.11.4\n" +"X-Environment: kde\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Slobodan Simić,Časlav Ilić" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "slsimic@gmail.com,caslav.ilic@gmx.net" + +#: difftextwindow.cpp:414 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:416 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "red nedostupan" + +#: difftextwindow.cpp:1778 +#, kde-format +msgid "Encoding:" +msgstr "Kodiranje:" + +#: difftextwindow.cpp:1781 mergeresultwindow.cpp:3166 optiondialog.cpp:840 +#, kde-format +msgid "Line end style:" +msgstr "Stil kraja redova:" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:383 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:525 +#: directorymergewindow.cpp:3069 directorymergewindow.cpp:3200 +#: directorymergewindow.cpp:3428 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:1842 +#: mergeresultwindow.cpp:3198 mergeresultwindow.cpp:3205 optiondialog.cpp:1002 +#: optiondialog.cpp:1015 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:848 +#: pdiff.cpp:850 pdiff.cpp:872 smalldialogs.cpp:131 smalldialogs.cpp:133 +#: smalldialogs.cpp:134 smalldialogs.cpp:137 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:385 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:527 +#: directorymergewindow.cpp:3075 directorymergewindow.cpp:3201 +#: directorymergewindow.cpp:3429 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1844 +#: mergeresultwindow.cpp:3200 mergeresultwindow.cpp:3207 optiondialog.cpp:1003 +#: optiondialog.cpp:1016 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:852 +#: pdiff.cpp:854 pdiff.cpp:874 smalldialogs.cpp:131 smalldialogs.cpp:132 +#: smalldialogs.cpp:135 smalldialogs.cpp:138 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:387 +#: directorymergewindow.cpp:440 directorymergewindow.cpp:529 +#: directorymergewindow.cpp:3081 directorymergewindow.cpp:3202 +#: directorymergewindow.cpp:3430 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1846 +#: mergeresultwindow.cpp:3202 mergeresultwindow.cpp:3209 optiondialog.cpp:1017 +#: pdiff.cpp:848 pdiff.cpp:850 pdiff.cpp:852 pdiff.cpp:854 pdiff.cpp:876 +#: smalldialogs.cpp:132 smalldialogs.cpp:133 smalldialogs.cpp:136 +#: smalldialogs.cpp:139 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1809 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (baza):" + +#: difftextwindow.cpp:1811 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Kodiranje:" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3211 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3212 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1812 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Stil kraja redova:" + +# >! Merge whole string. +#: difftextwindow.cpp:1834 kdiff3.cpp:874 +#, kde-format +msgid "Top line" +msgstr "Prvi red" + +#: difftextwindow.cpp:1843 +#, kde-format +msgid "End" +msgstr "Kraj" + +#: difftextwindow.cpp:1901 smalldialogs.cpp:245 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Otvaram fajlove..." + +#: difftextwindow.cpp:1943 optiondialog.cpp:389 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8‑bitni" + +#: difftextwindow.cpp:1958 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:3435 +#, kde-format +msgid "Copy A to B" +msgstr "Kopiraj A u B" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:3436 +#, kde-format +msgid "Copy B to A" +msgstr "Kopiraj B u A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:3437 +#, kde-format +msgid "Delete A" +msgstr "Obriši A" + +#: directorymergewindow.cpp:419 directorymergewindow.cpp:3438 +#, kde-format +msgid "Delete B" +msgstr "Obriši B" + +#: directorymergewindow.cpp:422 +#, kde-format +msgid "Delete A & B" +msgstr "Obriši A i B" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:3440 +#, kde-format +msgid "Merge to A" +msgstr "Stopi u A" + +#: directorymergewindow.cpp:428 directorymergewindow.cpp:3441 +#, kde-format +msgid "Merge to B" +msgstr "Stopi u B" + +#: directorymergewindow.cpp:431 +#, kde-format +msgid "Merge to A & B" +msgstr "Stopi u A i B" + +#: directorymergewindow.cpp:443 directorymergewindow.cpp:3432 +#, kde-format +msgid "Delete (if exists)" +msgstr "Obriši (ako postoji)" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#: directorymergewindow.cpp:3431 smalldialogs.cpp:120 +#, kde-format +msgid "Merge" +msgstr "Stopi" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#, kde-format +msgid "Merge (manual)" +msgstr "Stopi (ručno)" + +#: directorymergewindow.cpp:452 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Greška: sukobljeni tipovi fajlova." + +#: directorymergewindow.cpp:455 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Greška: izmenjeno i obrisano." + +#: directorymergewindow.cpp:458 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Greška: datumi su jednaki ali fajlovi nisu." + +#: directorymergewindow.cpp:472 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Gotovo." + +#: directorymergewindow.cpp:474 +#, kde-format +msgid "Error" +msgstr "Greška" + +#: directorymergewindow.cpp:476 +#, kde-format +msgid "Skipped." +msgstr "Preskočeno." + +#: directorymergewindow.cpp:478 +#, kde-format +msgid "Not saved." +msgstr "Nije sačuvano." + +#: directorymergewindow.cpp:480 +#, kde-format +msgid "In progress..." +msgstr "U toku..." + +#: directorymergewindow.cpp:482 +#, kde-format +msgid "To do." +msgstr "Uraditi." + +# >> @title:column +#: directorymergewindow.cpp:523 +#, kde-format +msgid "Name" +msgstr "ime" + +# >> @title:column +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Operation" +msgstr "postupak" + +# >> @title:column +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Status" +msgstr "stanje" + +# >> @title:column +#: directorymergewindow.cpp:535 +#, kde-format +msgid "Unsolved" +msgstr "nerešeno" + +# >> @title:column +#: directorymergewindow.cpp:537 +#, kde-format +msgid "Solved" +msgstr "rešeno" + +# >> non-whitespace +# >> @title:column +#: directorymergewindow.cpp:539 +#, kde-format +msgid "Nonwhite" +msgstr "neprazno" + +# >> whitespace +# >> @title:column +#: directorymergewindow.cpp:541 +#, kde-format +msgid "White" +msgstr "prazno" + +#: directorymergewindow.cpp:676 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: directorymergewindow.cpp:690 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mešavina veza i normalnih fajlova." + +#: directorymergewindow.cpp:697 +#, kde-format +msgid "Link: " +msgstr "Veza: " + +#: directorymergewindow.cpp:706 +#, kde-format +msgid "Size. " +msgstr "Veličina: " + +#: directorymergewindow.cpp:720 directorymergewindow.cpp:730 +#, kde-format +msgid "Date & Size: " +msgstr "Datum i veličina: " + +#: directorymergewindow.cpp:751 +#, kde-format +msgid "Comparing file..." +msgstr "Upoređujem fajl..." + +#: directorymergewindow.cpp:813 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort " +"the merge and rescan the directory?" +msgstr "" +"Trenutno stapate fascikle. Želite li zaista da prekinete stapanje i ponovo " +"skenirate fasciklu?" + +#: directorymergewindow.cpp:814 kdiff3.cpp:697 kdiff3.cpp:707 kdiff3.cpp:719 +#: mergeresultwindow.cpp:400 pdiff.cpp:1052 pdiff.cpp:1930 pdiff.cpp:1940 +#, kde-format +msgid "Warning" +msgstr "Upozorenje" + +#: directorymergewindow.cpp:815 directorymergewindow.cpp:3404 +#, kde-format +msgid "Rescan" +msgstr "Ponovo skeniraj" + +#: directorymergewindow.cpp:816 pdiff.cpp:1054 +#, kde-format +msgid "Continue Merging" +msgstr "Nastavi stapanje" + +#: directorymergewindow.cpp:983 +#, kde-format +msgid "Opening of directories failed:" +msgstr "Otvaranje fascikli nije uspelo:" + +#: directorymergewindow.cpp:987 +#, kde-format +msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgstr "Fascikla A „%1“ ne postoji ili nije fascikla.\n" + +#: directorymergewindow.cpp:992 +#, kde-format +msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgstr "Fascikla B „%1“ ne postoji ili nije fascikla.\n" + +#: directorymergewindow.cpp:997 +#, kde-format +msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgstr "Fascikla C „%1“ ne postoji ili nije fascikla.\n" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Directory Open Error" +msgstr "Greška pri otvaranju fascikle" + +#: directorymergewindow.cpp:1008 +#, kde-format +msgid "" +"The destination directory must not be the same as A or B when three " +"directories are merged.\n" +"Check again before continuing." +msgstr "" +"Odredišna fascikla ne sme biti ista kao A ili B kada se stapaju tri " +"fascikle.\n" +"Proverite ponovo pre nego što nastavite." + +#: directorymergewindow.cpp:1010 +#, kde-format +msgid "Parameter Warning" +msgstr "Upozorenje o parametrima" + +#: directorymergewindow.cpp:1015 +#, kde-format +msgid "Scanning directories..." +msgstr "Skeniram fascikle..." + +#: directorymergewindow.cpp:1041 +#, kde-format +msgid "Reading Directory A" +msgstr "Čitam fasciklu A" + +#: directorymergewindow.cpp:1050 +#, kde-format +msgid "Reading Directory B" +msgstr "Čitam fasciklu B" + +#: directorymergewindow.cpp:1060 +#, kde-format +msgid "Reading Directory C" +msgstr "Čitam fasciklu C" + +# >! Merge sentence. +#: directorymergewindow.cpp:1076 +#, kde-format +msgid "Some subdirectories were not readable in" +msgstr "Neke potfascikle nisu bile čitljive u" + +#: directorymergewindow.cpp:1081 +#, kde-format +msgid "Check the permissions of the subdirectories." +msgstr "Proverite dozvole potfascikli." + +#: directorymergewindow.cpp:1118 kdiff3.cpp:665 kdiff3.cpp:752 kdiff3.cpp:776 +#: kdiff3.cpp:1072 kdiff3.cpp:1093 pdiff.cpp:1136 pdiff.cpp:1190 pdiff.cpp:1238 +#: pdiff.cpp:1254 pdiff.cpp:1297 pdiff.cpp:1321 +#, kde-format +msgid "Ready." +msgstr "Spreman." + +#: directorymergewindow.cpp:1133 +#, kde-format +msgid "" +"Directory Comparison Status\n" +"\n" +"Number of subdirectories: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1140 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Broj ručnih stapanja:" + +#: directorymergewindow.cpp:1406 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ovo utiče na sve postupke stapanja." + +# >> @title:window +#: directorymergewindow.cpp:1407 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Menjanje svih postupaka stapanja" + +# >! Merge sentence. +#: directorymergewindow.cpp:1707 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Obrađujem " + +#: directorymergewindow.cpp:1750 directorymergewindow.cpp:1754 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Ovaj postupak trenutno nije moguć." + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 directorymergewindow.cpp:2563 +#, kde-format +msgid "Operation Not Possible" +msgstr "Postupak nije moguć" + +#: directorymergewindow.cpp:2330 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Greška u toku kopiranja.\n" + +#: directorymergewindow.cpp:2331 directorymergewindow.cpp:2770 +#, kde-format +msgid "Merge Error" +msgstr "Greška stapanja" + +#: directorymergewindow.cpp:2408 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Nepoznat postupak stapanja. (Ovo nikada ne sme da se dogodi!)" + +#: directorymergewindow.cpp:2453 +#, kde-format +msgid "Unknown merge operation." +msgstr "Nepoznata postupak stapanja." + +#: directorymergewindow.cpp:2466 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Stapanje će upravo početi.\n" +"\n" +"Izaberite „Uradi“ ako ste pročitali instrukcije i znate šta radite.\n" +"Izaberite „Simuliraj“ ako biste prvo da vidite šta bi se dogodilo.\n" +"\n" +"Pazite da je program još uvek u stanju bete i nema apsolutno NIKAKVIH " +"GARANCIJA! Napravite rezerve važnih podataka!" + +# >> @title:window +#: directorymergewindow.cpp:2471 +#, kde-format +msgid "Starting Merge" +msgstr "Početak stapanja" + +#: directorymergewindow.cpp:2472 +#, kde-format +msgid "Do It" +msgstr "Uradi" + +#: directorymergewindow.cpp:2473 +#, kde-format +msgid "Simulate It" +msgstr "Simuliraj" + +#: directorymergewindow.cpp:2499 +#, kde-format +msgid "" +"The highlighted item has a different type in the different directories. " +"Select what to do." +msgstr "" +"Istaknuta stavka ima različit tip u različitim fasciklama. Izaberite šta " +"uraditi." + +#: directorymergewindow.cpp:2503 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Datumi izmene fajla su jednaki ali fajlovi nisu. Izaberite šta uraditi." + +#: directorymergewindow.cpp:2507 +#, kde-format +msgid "" +"The highlighted item was changed in one directory and deleted in the other. " +"Select what to do." +msgstr "" +"Istaknuta stavka je izmenjena u jednoj fascikli a obrisana u drugoj. " +"Izaberite šta uraditi." + +#: directorymergewindow.cpp:2563 +#, kde-format +msgid "" +"This operation is currently not possible because directory merge is " +"currently running." +msgstr "" +"Ovaj postupak trenutno nije moguć zato što je u toku stapanje fascikli." + +#: directorymergewindow.cpp:2620 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Greška u poslednjem koraku.\n" +"Želite li da nastavite sa stavkom koja je izazvala grešku ili da je " +"preskočite?" + +# >> @title:window +#: directorymergewindow.cpp:2622 +#, kde-format +msgid "Continue merge after an error" +msgstr "Nastavljanje stapanja posle greške" + +#: directorymergewindow.cpp:2623 +#, kde-format +msgid "Continue With Last Item" +msgstr "Nastavi sa poslednjom stavkom" + +#: directorymergewindow.cpp:2624 +#, kde-format +msgid "Skip Item" +msgstr "Preskoči stavku" + +#: directorymergewindow.cpp:2720 +#, kde-format +msgid "Merge operation complete." +msgstr "Postupak stapanja je završen." + +#: directorymergewindow.cpp:2720 directorymergewindow.cpp:2723 +#, kde-format +msgid "Merge Complete" +msgstr "Stapanje završeno" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulirano stapanje je završeno: proverite da li vam odgovaraju predloženi " +"postupci." + +#: directorymergewindow.cpp:2769 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Došlo je do greške. Kliknite na „U redu“ da dobijete detaljne informacije.\n" + +#: directorymergewindow.cpp:2802 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Greška: u toku brisanja %1, pravljenje rezerve nije uspelo." + +#: directorymergewindow.cpp:2809 +#, kde-format +msgid "delete directory recursively( %1 )" +msgstr "rekurzivno brisanje fascikle (%1)" + +#: directorymergewindow.cpp:2811 +#, kde-format +msgid "delete( %1 )" +msgstr "brisanje (%1)" + +#: directorymergewindow.cpp:2826 +#, kde-format +msgid "Error: delete dir operation failed while trying to read the directory." +msgstr "" +"Greška: postupak brisanja fascikle nije uspeo na mestu čitanja fascikle." + +#: directorymergewindow.cpp:2845 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Greška: postupak uklanjanja fascikle (%1) nije uspeo." + +#: directorymergewindow.cpp:2855 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Greška: postupak brisanja nije uspeo." + +#: directorymergewindow.cpp:2881 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ručno stapanje (%1, %2, %3 → %4)" + +#: directorymergewindow.cpp:2884 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Napomena: posle ručnog stapanja korisnik treba da nastavi pritiskom na " +"F7." + +#: directorymergewindow.cpp:2911 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Greška: kopiranje (%1 → %2) nije uspelo, brisanje postojećeg odredišta nije " +"uspelo." + +#: directorymergewindow.cpp:2920 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "kopiranje veze (%1 → %2 )" + +#: directorymergewindow.cpp:2929 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Greška: kopiranje veze nije uspelo, udaljene veze još nisu podržane." + +#: directorymergewindow.cpp:2939 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Greška: kopiranje veze nije uspelo." + +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopiranje (%1 → %2)" + +#: directorymergewindow.cpp:2990 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Greška u toku preimenovanja (%1 → %2), postojeće odredište ne može da se " +"obriše." + +#: directorymergewindow.cpp:2997 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "preimenovanje (%1 → %2)" + +#: directorymergewindow.cpp:3006 +#, kde-format +msgid "Error: Rename failed." +msgstr "Greška: preimenovanje nije uspelo." + +#: directorymergewindow.cpp:3024 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Greška u toku pravljenja fascikle (%1), postojeći fajl ne može da se obriše." + +#: directorymergewindow.cpp:3041 +#, kde-format +msgid "makeDir( %1 )" +msgstr "pravljenje fascikle (%1)" + +#: directorymergewindow.cpp:3051 +#, kde-format +msgid "Error while creating directory." +msgstr "Greška u toku pravljenja fascikle." + +#: directorymergewindow.cpp:3087 directorymergewindow.cpp:3206 +#, kde-format +msgid "Dest" +msgstr "Odredište" + +# >> @title:column +#: directorymergewindow.cpp:3095 directorymergewindow.cpp:3124 +#, kde-format +msgid "Dir" +msgstr "fascikla" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Type" +msgstr "tip" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Size" +msgstr "veličina" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Attr" +msgstr "atributi" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Last Modification" +msgstr "poslednja izmena" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Link-Destination" +msgstr "odredište veze" + +# >! Merge whole string. +# >> @item:intext +#: directorymergewindow.cpp:3124 +#, kde-format +msgid "File" +msgstr "fajl" + +#: directorymergewindow.cpp:3124 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Veza: " + +#: directorymergewindow.cpp:3130 +#, kde-format +msgid "not available" +msgstr "nedostupno" + +#: directorymergewindow.cpp:3148 +#, kde-format +msgid "A (Dest): " +msgstr "A (odredište): " + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A (Base): " +msgstr "A (baza): " + +#: directorymergewindow.cpp:3158 +#, kde-format +msgid "B (Dest): " +msgstr "B (odredište): " + +#: directorymergewindow.cpp:3162 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:3167 +#, kde-format +msgid "C (Dest): " +msgstr "C (odredište): " + +#: directorymergewindow.cpp:3171 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:3174 +#, kde-format +msgid "Dest: " +msgstr "Odredište: " + +# >> @title:window +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:3249 +#, kde-format +msgid "Save Directory Merge State As..." +msgstr "Upisivanje stanja stapanja fascikli kao..." + +#: directorymergewindow.cpp:3398 +#, kde-format +msgid "Start/Continue Directory Merge" +msgstr "Pokreni/nastavi stapanje fascikli" + +#: directorymergewindow.cpp:3399 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Izvrši postupak za tekuću stavku" + +#: directorymergewindow.cpp:3400 +#, kde-format +msgid "Compare Selected File" +msgstr "Uporedi izabrani fajl" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "Merge Current File" +msgstr "Stopi tekući fajl" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Stopi\n" +"fajl" + +#: directorymergewindow.cpp:3402 +#, kde-format +msgid "Fold All Subdirs" +msgstr "Sažmi sve potfascikle" + +#: directorymergewindow.cpp:3403 +#, kde-format +msgid "Unfold All Subdirs" +msgstr "Raširi sve potfascikle" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:3407 +#, kde-format +msgid "Choose A for All Items" +msgstr "Izaberi A za sve stavke" + +#: directorymergewindow.cpp:3408 +#, kde-format +msgid "Choose B for All Items" +msgstr "Izaberi B za sve stavke" + +#: directorymergewindow.cpp:3409 +#, kde-format +msgid "Choose C for All Items" +msgstr "Izaberi C za sve stavke" + +#: directorymergewindow.cpp:3410 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Automatski izaberi postupak za sve stavke" + +#: directorymergewindow.cpp:3411 +#, kde-format +msgid "No Operation for All Items" +msgstr "Nema postupka za sve stavke" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "Show Identical Files" +msgstr "Prikaži istovetne fajlove" + +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Istovetni\n" +"fajlovi" + +#: directorymergewindow.cpp:3417 +#, kde-format +msgid "Show Different Files" +msgstr "Prikaži različite fajlove" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "Show Files only in A" +msgstr "Prikaži fajlove samo u A" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Fajlovi\n" +"samo u A" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "Show Files only in B" +msgstr "Prikaži fajlove samo u B" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Fajlovi\n" +"samo u B" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "Show Files only in C" +msgstr "Prikaži fajlove samo u C" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Fajlovi\n" +"samo u C" + +#: directorymergewindow.cpp:3424 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Uporedi izričito izabrane fajlove" + +#: directorymergewindow.cpp:3425 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Stopi izričito izabrane fajlove" + +#: directorymergewindow.cpp:3427 directorymergewindow.cpp:3434 +#, kde-format +msgid "Do Nothing" +msgstr "Ne radi ništa" + +#: directorymergewindow.cpp:3439 +#, kde-format +msgid "Delete A && B" +msgstr "Obriši A i B" + +#: directorymergewindow.cpp:3442 +#, kde-format +msgid "Merge to A && B" +msgstr "Stopi u A i B" + +#: fileaccess.cpp:301 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:482 SourceData.cpp:506 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Čitam fajl: %1" + +#: fileaccess.cpp:624 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Pravljenje privremene kopije fajla %1 nije uspelo." + +#: fileaccess.cpp:632 fileaccess.cpp:637 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Otvaranje fajla %1 nije uspelo." + +#: fileaccess.cpp:656 fileaccess.cpp:664 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Greška pri čitanju iz %1" + +#: fileaccess.cpp:788 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Pri pokušaju pravljenja rezerve, brisanje starije rezerve nije uspelo.\n" +"Ime fajla: " + +#: fileaccess.cpp:795 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Pri pokušaju pravljenja rezerve, preimenovanje nije uspelo.\n" +"Imena fajlova: " + +#: fileaccess.cpp:865 +#, kde-format +msgid "Getting file status: %1" +msgstr "Dobavljam stanje fajla: %1" + +#: fileaccess.cpp:906 +#, kde-format +msgid "Reading file: %1" +msgstr "Čitam fajl: %1" + +#: fileaccess.cpp:944 +#, kde-format +msgid "Writing file: %1" +msgstr "Pišem fajl: %1" + +#: fileaccess.cpp:977 +#, kde-format +msgid "Out of memory" +msgstr "Nema više memorije" + +#: fileaccess.cpp:1013 +#, kde-format +msgid "Making directory: %1" +msgstr "Pravim fasciklu: %1" + +#: fileaccess.cpp:1034 +#, kde-format +msgid "Removing directory: %1" +msgstr "Uklanjam fasciklu: %1" + +#: fileaccess.cpp:1049 +#, kde-format +msgid "Removing file: %1" +msgstr "Uklanjam fajl: %1" + +#: fileaccess.cpp:1065 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Pravim simboličku vezu: %1 → %2" + +#: fileaccess.cpp:1089 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Preimenujem fajl: %1 → %2" + +#: fileaccess.cpp:1123 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopiram fajl: %1 → %2" + +#: fileaccess.cpp:1145 +#, fuzzy, kde-format +#| msgid "Reading directory: " +msgid "Reading directory: %1" +msgstr "Čitam fasciklu: " + +#: fileaccess.cpp:1202 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listam fasciklu: %1" + +#: kdiff3.cpp:182 +#, kde-format +msgid "Current Configuration:" +msgstr "Trenutna postava:" + +#: kdiff3.cpp:187 +#, kde-format +msgid "Config Option Error:" +msgstr "Greška postavne opcije:" + +#: kdiff3.cpp:246 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Opcija --auto je upotrebljena, ali nije naveden izlazni fajl." + +#: kdiff3.cpp:405 +#, kde-format +msgid "Option --auto ignored for directory comparison." +msgstr "Opcija --auto se ignoriše za poređenje fascikli." + +#: kdiff3.cpp:449 +#, kde-format +msgid "Saving failed." +msgstr "Upisivanje nije uspelo." + +#: kdiff3.cpp:494 pdiff.cpp:395 pdiff.cpp:1117 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Otvaranje ovih fajlova nije uspelo:" + +#: kdiff3.cpp:503 pdiff.cpp:404 pdiff.cpp:1126 +#, kde-format +msgid "File open error" +msgstr "Greška pri otvaranju fajla" + +# >> @info:tooltip +#: kdiff3.cpp:532 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Otvara dokumente za poređenje." + +#: kdiff3.cpp:534 +#, kde-format +msgid "Reload" +msgstr "Učitaj ponovo" + +# >> @info:tooltip +#: kdiff3.cpp:537 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Upisuje rezultat stapanja. Svi sukobi moraju biti razrešeni." + +# >> @info:tooltip +#: kdiff3.cpp:539 +#, kde-format +msgid "Saves the current document as..." +msgstr "Upisuje tekuće dokumente pod imenom." + +# >> @info:tooltip +#: kdiff3.cpp:542 +#, kde-format +msgid "Print the differences" +msgstr "Štampa razlike." + +# >> @info:tooltip +#: kdiff3.cpp:545 +#, kde-format +msgid "Quits the application" +msgstr "Napušta program." + +# >> @info:tooltip +#: kdiff3.cpp:548 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Iseca izabrani odeljak i stavlja ga u klipbord." + +# >> @info:tooltip +#: kdiff3.cpp:551 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopira izabrani odeljak u klipbord." + +# >> @info:tooltip +#: kdiff3.cpp:553 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Nalepljuje sadržaj klipborda na trenutnom položaju." + +# >> @info:tooltip +#: kdiff3.cpp:556 +#, kde-format +msgid "Select everything in current window" +msgstr "Izabira sve u tekućem prozoru." + +# >> @info:tooltip +#: kdiff3.cpp:559 +#, kde-format +msgid "Search for a string" +msgstr "Traži nisku." + +# >> @info:tooltip +#: kdiff3.cpp:561 +#, kde-format +msgid "Search again for the string" +msgstr "Ponovo traži nisku." + +# >> @info:tooltip +#: kdiff3.cpp:566 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Uključuje/isključuje traku stanja." + +#: kdiff3.cpp:570 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Podesi KDiff3..." + +#: kdiff3.cpp:589 +#, kde-format +msgid "Go to Current Delta" +msgstr "Idi na tekuću deltu" + +#: kdiff3.cpp:589 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Tekuća\n" +"delta" + +#: kdiff3.cpp:591 +#, kde-format +msgid "Go to First Delta" +msgstr "Idi na prvu deltu" + +#: kdiff3.cpp:591 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Prva\n" +"delta" + +#: kdiff3.cpp:593 +#, kde-format +msgid "Go to Last Delta" +msgstr "Idi na poslednju deltu" + +#: kdiff3.cpp:593 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Poslednja\n" +"delta" + +#: kdiff3.cpp:595 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Preskače razlike u prazninama ako je „Prikaži praznine“ isključeno.)" + +#: kdiff3.cpp:596 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Ne preskače razlike prazninama ni kada je „Prikaži praznine“ isključeno.)" + +#: kdiff3.cpp:597 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Idi na prethodnu deltu" + +#: kdiff3.cpp:597 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Prethodna\n" +"delta" + +#: kdiff3.cpp:599 +#, kde-format +msgid "Go to Next Delta" +msgstr "Idi na sledeću deltu" + +#: kdiff3.cpp:599 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Sledeća\n" +"delta" + +#: kdiff3.cpp:601 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Idi na prethodni sukob" + +#: kdiff3.cpp:601 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Prethodni\n" +"sukob" + +#: kdiff3.cpp:603 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Idi na sledeći sukob" + +#: kdiff3.cpp:603 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Sledeći\n" +"sukob" + +#: kdiff3.cpp:605 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Idi na prethodni nerešeni sukob" + +#: kdiff3.cpp:605 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Prethodni\n" +"nerešeni" + +#: kdiff3.cpp:607 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Idi na sledeći nerešeni sukob" + +#: kdiff3.cpp:607 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Sledeći\n" +"nerešeni" + +#: kdiff3.cpp:609 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Izaberite redove iz A" + +#: kdiff3.cpp:609 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Izaberite\n" +"A" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Izaberite redove iz B" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Izaberite\n" +"B" + +#: kdiff3.cpp:611 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Izaberite redove iz C" + +#: kdiff3.cpp:611 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Izaberite\n" +"C" + +#: kdiff3.cpp:612 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Automatski idi na sledeći nerešeni sukob posle izbora izvora" + +#: kdiff3.cpp:612 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automatski\n" +"sledeći" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Prikaži znakove razmaka i tabulatora za razlike" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Znakovi\n" +"praznina" + +#: kdiff3.cpp:615 +#, kde-format +msgid "Show White Space" +msgstr "Prikaži praznine" + +#: kdiff3.cpp:615 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Delte\n" +"praznina" + +#: kdiff3.cpp:617 +#, kde-format +msgid "Show Line Numbers" +msgstr "Prikaži brojeve redova" + +#: kdiff3.cpp:617 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Brojevi\n" +"redova" + +#: kdiff3.cpp:619 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automatski reši jednostavne sukobe" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Postavi delte na sukobe" + +#: kdiff3.cpp:621 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Automatski stopi po regularnim izrazima" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automatski reši sukobe istorijata" + +#: kdiff3.cpp:623 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Podeli razliku na izboru" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Spoji izabrane razlike" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Show Window A" +msgstr "Prikaži prozor A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Show Window B" +msgstr "Prikaži prozor B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Show Window C" +msgstr "Prikaži prozor C" + +#: kdiff3.cpp:630 +#, kde-format +msgid "Normal Overview" +msgstr "Normalan pregled" + +#: kdiff3.cpp:631 +#, kde-format +msgid "A vs. B Overview" +msgstr "Pregled A prema B" + +#: kdiff3.cpp:632 +#, kde-format +msgid "A vs. C Overview" +msgstr "Pregled A prema C" + +#: kdiff3.cpp:633 +#, kde-format +msgid "B vs. C Overview" +msgstr "Pregled B prema C" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Prelom reči u prozorima razlika" + +#: kdiff3.cpp:635 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Dodaj ručno poravnanje razlika" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Očisti sva ručna poravnanja razlika" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokusiraj sledeći prozor" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokusiraj prethodni prozor" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Prebaci orijentaciju podele" + +#: kdiff3.cpp:642 +#, kde-format +msgid "Dir && Text Split Screen View" +msgstr "Podeljeni prikaz ekrana na fasciklu i tekst" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Toggle Between Dir && Text View" +msgstr "Prebaci prikaz fascikle i teksta" + +#: kdiff3.cpp:696 pdiff.cpp:1929 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Rezultat stapanja nije sačuvan." + +#: kdiff3.cpp:698 +#, kde-format +msgid "Save && Quit" +msgstr "Sačuvaj i napusti" + +#: kdiff3.cpp:699 +#, kde-format +msgid "Quit Without Saving" +msgstr "Napusti bez upisivanja" + +#: kdiff3.cpp:707 pdiff.cpp:1940 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Upisivanje rezultata stapanja nije uspelo." + +#: kdiff3.cpp:718 pdiff.cpp:1051 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort?" +msgstr "Trenutno stapate fascikle. Želite li zaista da obustavite ovo?" + +#: kdiff3.cpp:741 +#, kde-format +msgid "Saving file..." +msgstr "Upisujem fajl..." + +#: kdiff3.cpp:758 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Upisujem fajl pod novim imenom..." + +# >> @title:window +#: kdiff3.cpp:760 +#, kde-format +msgid "Save As..." +msgstr "Upisivanje kao" + +#: kdiff3.cpp:819 +#, kde-format +msgid "Printing not implemented." +msgstr "Štampanje nije izvedeno." + +#: kdiff3.cpp:858 +#, kde-format +msgid "Printing..." +msgstr "Štampam..." + +#: kdiff3.cpp:948 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:1006 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Izbor" + +#: kdiff3.cpp:1034 +#, kde-format +msgid "Printing completed." +msgstr "Štampanje završeno." + +#: kdiff3.cpp:1038 +#, kde-format +msgid "Printing aborted." +msgstr "Štampanje obustavljeno." + +#: kdiff3.cpp:1045 +#, kde-format +msgid "Exiting..." +msgstr "Napuštam..." + +#: kdiff3.cpp:1056 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Prebacujem traku alatki..." + +#: kdiff3.cpp:1077 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Prebacujem traku stanja..." + +#: kdiff3_part.cpp:45 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3 deo" + +#: kdiff3_part.cpp:46 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:48 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:49 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joahim Ajbl" + +#: kdiff3_part.cpp:172 kdiff3_part.cpp:253 +#, fuzzy, kde-format +#| msgid "Couldn't find files for comparison." +msgid "Could not find files for comparison." +msgstr "Ne mogu da nađem fajlove za poređenje." + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Podesi KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:89 +#, kde-format +msgid "KDiff3" +msgstr "&KDiff3" + +#: kdiff3_shell.cpp:74 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Ne mogu da pripremim KDiff3 deo.\n" +"Ovo je obično problem u instalaciji. Pročitajte fajl ‘README’ iz izvornog " +"paketa za više detalja." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fajl" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "&Directory" +msgstr "F&ascikla" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Postupak stapanja tekuće stavke" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Postupak sinhronizovanja tekuće stavke" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Kretanje" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Prikaz &razlike" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Stopi" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Pro&zor" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Glavna traka" + +#: main.cpp:69 main.cpp:73 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorisano (korisnički definisano)." + +#: main.cpp:93 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:95 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:96 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Directories" +msgstr "Alatka za poređenje i stapanje fajlova i fascikli" + +#: main.cpp:97 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:113 +#, kde-format +msgid "Merge the input." +msgstr "Stopi ulaz." + +#: main.cpp:114 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Izričit bazni fajl. Za saglasnost sa pojedinim alatkama." + +#: main.cpp:115 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Izlazni fajl. Implicira -m. Npr: -o novifajl.txt" + +#: main.cpp:116 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Izlazni fajl, ponovo. Za saglasnost sa pojedinim alatkama." + +#: main.cpp:118 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "Bez GUI‑ja ako su svi sukobi rešivi automatski. Zahteva -o fajl." + +#: main.cpp:120 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:122 +#, fuzzy, kde-format +#| msgid "Don't solve conflicts automatically. (For compatibility...)" +msgid "Do not solve conflicts automatically." +msgstr "Ne rešavaj sukobe automatski. Za saglasnost..." + +#: main.cpp:123 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Zamena vidljivog imena za ulazni fajl 1 (bazni)." + +#: main.cpp:124 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Zamena vidljivog imena za ulazni fajl 2." + +#: main.cpp:125 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Zamena vidljivog imena za ulazni fajl 3." + +#: main.cpp:126 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Alternativna zamena vidljivog imena. Zadajte ovo jednom za svaki ulaz." + +#: main.cpp:127 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Potisni postavku iz postave. Upotrebite jednom za svaku postavku. Npr: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:128 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Nabroji postavke i trenutne vrednosti iz postave." + +#: main.cpp:129 +#, kde-format +msgid "Use a different config file." +msgstr "Upotrebi drugi postavni fajl." + +#: main.cpp:132 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Fajl 1 za otvaranje (bazni, ako nije naveden preko --base)." + +#: main.cpp:133 +#, kde-format +msgid "file2 to open" +msgstr "Fajl 2 za otvaranje." + +#: main.cpp:134 +#, kde-format +msgid "file3 to open" +msgstr "Fajl 3 za otvaranje." + +#: main.cpp:158 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: mergeresultwindow.cpp:171 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Svuda izaberi A" + +#: mergeresultwindow.cpp:172 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Svuda izaberi B" + +#: mergeresultwindow.cpp:173 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Svuda izaberi C" + +#: mergeresultwindow.cpp:174 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Izaberi A za sve nerešene sukobe" + +#: mergeresultwindow.cpp:175 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Izaberi B za sve nerešene sukobe" + +#: mergeresultwindow.cpp:176 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Izaberi C za sve nerešene sukobe" + +#: mergeresultwindow.cpp:177 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Izaberi A za sve nerešene sukobe praznina" + +#: mergeresultwindow.cpp:178 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Izaberi B za sve nerešene sukobe praznina" + +#: mergeresultwindow.cpp:179 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Izaberi C za sve nerešene sukobe praznina" + +#: mergeresultwindow.cpp:204 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Broj preostalih nerešenih sukoba: %1 (od čega %2 praznine)." + +#: mergeresultwindow.cpp:398 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Izlaz je izmenjen.\n" +"Ako nastavite izmene će biti izgubljene." + +#: mergeresultwindow.cpp:964 pdiff.cpp:838 +#, kde-format +msgid "All input files are binary equal." +msgstr "Svi ulazni fajlovi binarno su jednaki." + +#: mergeresultwindow.cpp:966 +#, kde-format +msgid "All input files contain the same text." +msgstr "Svi ulazni fajlovi sadrže isti tekst." + +#: mergeresultwindow.cpp:970 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:978 pdiff.cpp:844 pdiff.cpp:848 pdiff.cpp:852 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Fajlovi %1 i %2 binarno su jednaki.\n" + +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:976 +#: mergeresultwindow.cpp:980 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Fajlovi %1 i %2 sadrže isti tekst.\n" + +#: mergeresultwindow.cpp:986 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Nr of automatically solved conflicts: %2\n" +"Nr of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:992 +#, kde-format +msgid "Conflicts" +msgstr "Sukobi" + +#: mergeresultwindow.cpp:1901 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1909 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1911 mergeresultwindow.cpp:2783 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2995 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Još nisu rešeni svi sukobi.\n" +"Fajl nije sačuvan.\n" + +#: mergeresultwindow.cpp:2997 mergeresultwindow.cpp:3006 +#, kde-format +msgid "Conflicts Left" +msgstr "Preostali sukobi" + +#: mergeresultwindow.cpp:3004 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Sukob u stilu završetaka redova. Izaberite ručno stil završetka redova.\n" +"Fajl nije sačuvan.\n" + +#: mergeresultwindow.cpp:3018 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Pravljenje rezerve nije uspelo. Fajl nije sačuvan." + +#: mergeresultwindow.cpp:3018 mergeresultwindow.cpp:3066 +#, kde-format +msgid "File Save Error" +msgstr "Greška upisivanja fajla" + +#: mergeresultwindow.cpp:3066 +#, kde-format +msgid "Error while writing." +msgstr "Greška pri pisanju." + +#: mergeresultwindow.cpp:3138 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Izlaz" + +#: mergeresultwindow.cpp:3151 mergeresultwindow.cpp:3343 +#, kde-format +msgid "[Modified]" +msgstr "[izmenjen]" + +#: mergeresultwindow.cpp:3158 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Kodiranje za upisivanje" + +#: mergeresultwindow.cpp:3258 +#, kde-format +msgid "Conflict" +msgstr "Sukob" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3290 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Kodiranje iz" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3292 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Kodiranje iz" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3294 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Kodiranje iz" + +#: optiondialog.cpp:121 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:137 optiondialog.cpp:147 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:390 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:391 +#, kde-format +msgid "Latin1" +msgstr "latinica‑1" + +#: optiondialog.cpp:410 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Izmenite ovo ako su ne-ASCII znakovi pogrešno prikazani." + +# >> @title:window +#: optiondialog.cpp:495 +#, kde-format +msgid "Configure" +msgstr "Podešavanje" + +#: optiondialog.cpp:573 +#, kde-format +msgid "Font" +msgstr "Font" + +#: optiondialog.cpp:575 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Font uređivača i izlaza razlike" + +#: optiondialog.cpp:594 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:599 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Greška upisivanja fajla" + +#: optiondialog.cpp:618 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Boja" + +#: optiondialog.cpp:619 +#, kde-format +msgid "Colors Settings" +msgstr "Postavke boja" + +#: optiondialog.cpp:644 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Uređivač i prikazi razlika:" + +#: optiondialog.cpp:652 +#, kde-format +msgid "Foreground color:" +msgstr "Boja teksta:" + +#: optiondialog.cpp:660 +#, kde-format +msgid "Background color:" +msgstr "Boja pozadine:" + +#: optiondialog.cpp:670 +#, kde-format +msgid "Diff background color:" +msgstr "Boja pozadine razlika:" + +#: optiondialog.cpp:679 +#, kde-format +msgid "Color A:" +msgstr "Boja A:" + +#: optiondialog.cpp:688 +#, kde-format +msgid "Color B:" +msgstr "Boja B:" + +#: optiondialog.cpp:697 +#, kde-format +msgid "Color C:" +msgstr "Boja C:" + +#: optiondialog.cpp:705 +#, kde-format +msgid "Conflict color:" +msgstr "Boja sukoba:" + +#: optiondialog.cpp:714 +#, kde-format +msgid "Current range background color:" +msgstr "Pozadinska boja tekućeg opsega:" + +#: optiondialog.cpp:723 +#, kde-format +msgid "Current range diff background color:" +msgstr "Pozadinska boja tekućeg opsega razlika:" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Boja ručno poravnatih opsega razlika:" + +#: optiondialog.cpp:738 +#, kde-format +msgid "Directory Comparison View:" +msgstr "Prikaz poređenja fascikli:" + +#: optiondialog.cpp:744 +#, kde-format +msgid "Newest file color:" +msgstr "Boja najnovijeg fajla:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next directory " +"comparison." +msgstr "Izmena ove boje stupiće na snagu od prvog narednog poređenja fascikli." + +#: optiondialog.cpp:754 +#, kde-format +msgid "Oldest file color:" +msgstr "Boja najstarijeg fajla:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Middle age file color:" +msgstr "Boja fajla srednje starosti:" + +#: optiondialog.cpp:772 +#, kde-format +msgid "Color for missing files:" +msgstr "Boja za nedostajuće fajlove:" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Editor" +msgstr "Uređivač" + +#: optiondialog.cpp:787 +#, kde-format +msgid "Editor Behavior" +msgstr "Ponašanje uređivača" + +# skip-rule: t-tab +#: optiondialog.cpp:809 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab umeće razmake" + +# rewrite-msgid: /generate/insert/ +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Uključeno: pritiskom Taba umeće se odgovarajući broj razmaka.\n" +"Isključeno: umeće se znak tabulatora." + +#: optiondialog.cpp:818 +#, kde-format +msgid "Tab size:" +msgstr "Veličina tabulatora:" + +#: optiondialog.cpp:825 +#, kde-format +msgid "Auto indentation" +msgstr "Automatsko uvlačenje" + +#: optiondialog.cpp:829 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Uključeno: uvlačenje prethodnog reda uzima se za novi red.\n" + +#: optiondialog.cpp:832 +#, kde-format +msgid "Auto copy selection" +msgstr "Automatsko kopiranje izbora" + +#: optiondialog.cpp:836 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Uključeno: svaki izbor se odmah upisuje u klipbord.\n" +"Isključeno: morate izričito kopirati, npr. pomoću Ctrl+C." + +#: optiondialog.cpp:851 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Postavlja završetke redova kada se izmenjeni fajl sačuva.\n" +"DOS/Windows CR+LF, Unix LF, gde je CR=0D, LF=0A." + +#: optiondialog.cpp:861 +#, kde-format +msgid "Diff" +msgstr "Razlikovanje" + +#: optiondialog.cpp:862 +#, kde-format +msgid "Diff Settings" +msgstr "Postavke razlikovanja" + +# >! Merge sentence. +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options.m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:896 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Tretiraj kao praznine." + +#: optiondialog.cpp:900 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignoriši cifarske znakove u fazi poklapanja redova (slično ignorisanju " +"praznina).\n" +"Može biti korisno pri poređenju fajlova sa numeričkim podacima." + +#: optiondialog.cpp:904 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Tretiraj C/C++ komentare kao praznine." + +#: optiondialog.cpp:907 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tretiraj C/C++ komentare kao praznine." + +# >! Merge sentence. +#: optiondialog.cpp:910 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Tretiraj kao praznine." + +#: optiondialog.cpp:914 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Tretira razliku u veličini kao promene u prazninama (‘a’ jednako ‘A’)." + +#: optiondialog.cpp:917 +#, kde-format +msgid "Preprocessor command:" +msgstr "Predobradna naredba:" + +#: optiondialog.cpp:922 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Korisnički definisana predobrada. Pogledajte dokumentaciju za detalje." + +#: optiondialog.cpp:925 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Predobradna naredba za poklapanje redova:" + +#: optiondialog.cpp:930 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Predobrada se koristi samo tokom poklapanja redova.\n" +"Pogledajte dokumentaciju za detalje." + +#: optiondialog.cpp:933 +#, kde-format +msgid "Try hard (slower)" +msgstr "Potrudi se (sporije)" + +#: optiondialog.cpp:937 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Uključuje opciju --minimal za spoljašnje razlikovanje.\n" +"Analiza velikih fajlova će biti mnogo sporija." + +#: optiondialog.cpp:941 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Poravnaj B i C za tri ulazna fajla" + +#: optiondialog.cpp:945 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Pokušava da poravna B i C pri poređenju ili stapanju tre ulazna fajla.\n" +"Nije preporučljivo za stapanje zato što ga može učiniti složenijim.\n" +"Podrazumevano je isključeno." + +#: optiondialog.cpp:956 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Stopi" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Merge Settings" +msgstr "Postavke stapanja" + +#: optiondialog.cpp:980 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Zastoj automatskog napredovanja (ms):" + +#: optiondialog.cpp:986 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"U režimu automatskog napredovanja rezultat tekućeg izbora prikazuje se \n" +"zadato vreme pre skoka na sledeći sukob. Opseg: 0–2000 ms." + +#: optiondialog.cpp:990 +#, kde-format +msgid "Show info dialogs" +msgstr "Prikazuj informativne dijaloge" + +#: optiondialog.cpp:993 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Prikazuje dijalog sa informacijom o broju sukoba." + +#: optiondialog.cpp:996 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Podrazumevano stapanje praznina dva fajla:" + +#: optiondialog.cpp:1001 optiondialog.cpp:1014 +#, kde-format +msgid "Manual Choice" +msgstr "Ručni izbor" + +#: optiondialog.cpp:1005 optiondialog.cpp:1019 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Dozvoljava algoritmu stapanja da automatski izabere ulaz za izmene samo u " +"prazninama." + +#: optiondialog.cpp:1009 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Podrazumevano stapanje praznina tri fajla:" + +#: optiondialog.cpp:1023 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Regularni izraz za automatsko stapanje" + +#: optiondialog.cpp:1031 smalldialogs.cpp:459 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regularni izraz za automatsko stapanje:" + +#: optiondialog.cpp:1036 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regularni izraz za redove gde KDiff3 treba da automatski izabere jedan od " +"izvora. Kad regularni izraz poklopi red sa sukobom bira se C ako ga ima, " +"inače B." + +#: optiondialog.cpp:1042 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Automatski stopi po regularnom izrazu na početku stapanja" + +#: optiondialog.cpp:1045 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "Sprovodi stapanje regularnim izrazom čim stapanje počne.\n" + +#: optiondialog.cpp:1050 +#, kde-format +msgid "Version Control History Merging" +msgstr "Stapanje istorijata upravljanja verzijama" + +#: optiondialog.cpp:1058 smalldialogs.cpp:486 +#, kde-format +msgid "History start regular expression:" +msgstr "Regularni izraz za početak istorijata:" + +# literal-segment: Log +#: optiondialog.cpp:1063 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regularni izraz za početak unosa u istorijatu upravljanja verzijama.\n" +"Ovaj red obično sadrži ključnu reč „$Log$“.\n" +"Podrazumevana vrednost je „.*\\$Log.*\\$.*“." + +#: optiondialog.cpp:1069 smalldialogs.cpp:514 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regularni izraz za početak unosa istorijata:" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Unos u istorijatu upravljanja verzijama čini nekoliko redova.\n" +"Zadajte regularni izraz za otkrivanje prvog reda (bez vodećeg komentara).\n" +"Koristite zagrade da grupišete ključeve po kojima će se ređati.\n" +"Ako se ostavi prazno, KDiff3 uzima da su unosi istorijata razdvojeni praznim " +"redovima.\n" +"Detalje potražite u dokumentaciji." + +#: optiondialog.cpp:1090 +#, kde-format +msgid "History merge sorting" +msgstr "Ređanje u stapanju istorijata" + +#: optiondialog.cpp:1093 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ređa istorijat upravljanja verzijama po ključu." + +#: optiondialog.cpp:1103 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Redosled ređanja za ključeve unosa istorijata:" + +#: optiondialog.cpp:1108 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Svaki par zagrada upotrebljen u regularnom izrazu za početak unosa " +"istorijata grupiše ključ koji može poslužiti za ređanje.\n" +"Zadajte spisak ključeva (numerisanih po redu pojavljivanja počev od 1) sa " +"zapetom kao razdvajačem (npr. „4,5,6,1,2,3,7“).\n" +"Ako se ostavi prazno, ređanje se ne sprovodi.\n" +"Detalje potražite u dokumentaciji." + +#: optiondialog.cpp:1119 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Stopi istorijat upravljanja verzijama na početku stapanja" + +#: optiondialog.cpp:1122 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Automatski stapa istorijat upravljanja verzijama na početku stapanja." + +#: optiondialog.cpp:1126 +#, kde-format +msgid "Max number of history entries:" +msgstr "Najveći broj unosa istorijata:" + +# skip-rule: t-cut +#: optiondialog.cpp:1130 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Odseca iznad zadatog broja. Stavite -1 za neograničen broj unosa." + +# >> @action:button +#: optiondialog.cpp:1134 +#, kde-format +msgid "Test your regular expressions" +msgstr "Isprobaj regularne izraze" + +#: optiondialog.cpp:1139 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Naredba pri beznačajnom stapanju:" + +#: optiondialog.cpp:1144 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Ako se zada, ova skripta se poziva kad posle automatskog stapanja nema " +"nikakvih preostalih izmena.\n" +"Poziva se sa argumentima: ime‑fajla‑1 ime‑fajla‑2 ime‑fajla‑3" + +#: optiondialog.cpp:1149 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automatski sačuvaj i napusti pri stapanju bez sukoba" + +#: optiondialog.cpp:1153 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Ako se KDiff3 pokrene iz komandne linije radi stapanja fajlova, i svi sukobi " +"su razrešivi bez intervenisanja korisnika, tada se automatski rezultati " +"upisuju i program napušta.\n" +"Slično opciji komandne linije --auto." + +#: optiondialog.cpp:1164 optiondialog.cpp:1165 +#, kde-format +msgid "Directory" +msgstr "Fascikla" + +#: optiondialog.cpp:1185 +#, kde-format +msgid "Recursive directories" +msgstr "Rekurzivno kroz fascikle" + +#: optiondialog.cpp:1188 +#, kde-format +msgid "Whether to analyze subdirectories or not." +msgstr "Da li analizirati potfascikle." + +#: optiondialog.cpp:1190 +#, kde-format +msgid "File pattern(s):" +msgstr "Obrasci fajlova:" + +#: optiondialog.cpp:1196 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Obrasci za fajlove koje treba analizirati.\n" +"Džokeri: ‘*’ i ‘?’\n" +"Više obrazaca navodite sa tačka-zapetom kao razdvajačem." + +#: optiondialog.cpp:1201 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Protivobrasci fajlova:" + +#: optiondialog.cpp:1207 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Obrasci za fajlove koje treba isključiti iz analize.\n" +"Džokeri: ‘*’ i ‘?’\n" +"Više obrazaca navodite sa tačka-zapetom kao razdvajačem." + +#: optiondialog.cpp:1212 +#, kde-format +msgid "Dir-anti-pattern(s):" +msgstr "Protivobrasci fascikli:" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "" +"Pattern(s) of directories to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Obrasci za fascikle koje treba isključiti iz analize.\n" +"Džokeri: ‘*’ i ‘?’\n" +"Više obrazaca navodite sa tačka-zapetom kao razdvajačem." + +#: optiondialog.cpp:1223 +#, kde-format +msgid "Use .cvsignore" +msgstr "Koristi .cvsignore" + +#: optiondialog.cpp:1227 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by CVS.\n" +"Via local \".cvsignore\" files this can be directory specific." +msgstr "" +"Proširuje protivobrasce na sve što bi ignorisao CVS.\n" +"Preko lokalnih fajlova .cvsignore ovo može biti posebno po fascikli." + +#: optiondialog.cpp:1231 +#, kde-format +msgid "Find hidden files and directories" +msgstr "Pronađi skrivene fajlove i fascikle" + +#: optiondialog.cpp:1234 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and directories." +msgstr "Pronađi skrivene fajlove i fascikle" + +#: optiondialog.cpp:1237 +#, kde-format +msgid "Follow file links" +msgstr "Prati veze fajlova" + +#: optiondialog.cpp:1241 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Uključeno: poredi fajlove na koje pokazuju veze.\n" +"Isključeno: poredi veze." + +#: optiondialog.cpp:1245 +#, kde-format +msgid "Follow directory links" +msgstr "Prati veze fascikli" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "" +"On: Compare the directory the link points to.\n" +"Off: Compare the links." +msgstr "" +"Uključeno: poredi fascikle na koje pokazuju veze.\n" +"Isključeno: poredi veze." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Poređenje imena fajlova razlikuje veličinu slova" + +#: optiondialog.cpp:1262 +#, kde-format +msgid "" +"The directory comparison will compare files or directories when their names " +"match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Poređenje fascikli upoređuje fajlove i fascikle čija se imena poklapaju. " +"Zadajte ovu opciju imena treba da se poklapaju i po veličini slova. " +"Podrazumevano je isključeno pod Windowsom, inače je uključeno." + +#: optiondialog.cpp:1266 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subdirectories on load" +msgstr "Raširi sve potfascikle" + +#: optiondialog.cpp:1270 +#, kde-format +msgid "" +"On: Unfold all subdirectories when starting a directory diff.\n" +"Off: Leave subdirectories folded." +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "Skip directory status report" +msgstr "" + +#: optiondialog.cpp:1278 +#, kde-format +msgid "" +"On: Do not show the Directory Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1282 +#, kde-format +msgid "File Comparison Mode" +msgstr "Režim poređenja fajlova" + +#: optiondialog.cpp:1287 +#, kde-format +msgid "Binary comparison" +msgstr "Binarno poređenje" + +#: optiondialog.cpp:1289 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binarno poređenje za svaki fajl (podrazumevano)." + +#: optiondialog.cpp:1292 +#, kde-format +msgid "Full analysis" +msgstr "Puna analiza" + +#: optiondialog.cpp:1294 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Sprovodi punu analizu i daje statističke podatke u dodatnim kolonama.\n" +"Sporije nego binarno poređenje, mnogo sporije za binarne fajlove." + +#: optiondialog.cpp:1298 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Veruj veličini i datumu izmene (nesigurno)" + +#: optiondialog.cpp:1300 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big directories or slow networks." +msgstr "" +"Pretpostavlja da su fajlovi jednaki ako su im jednaki datumi izmene i " +"veličine.\n" +"Fajlovi sa istim sadržajem ali različitim datumom izmene smatraće se " +"različitim.\n" +"Korisno za velike fascikle ili spore mreže." + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Veruj veličini i datumu, ali binarno uporedi ako se datum ne poklapa " +"(nesigurno)" + +#: optiondialog.cpp:1307 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big directories or slow networks." +msgstr "" +"Pretpostavlja da su fajlovi jednaki ako su im jednaki datumi izmene i " +"veličine.\n" +"Ako datumi nisu isti ali veličina jeste, binarno upoređuje.\n" +"Korisno za velike fascikle ili spore mreže." + +#: optiondialog.cpp:1312 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Veruj veličini (nesigurno)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big directories or slow networks when the date is modified during " +"download." +msgstr "" +"Pretpostavlja da su fajlovi jednaki ako im jednake veličine.\n" +"Korisno za velike fascikle ili spore mreže kada se datum izmeni tokom " +"preuzimanja." + +#: optiondialog.cpp:1321 +#, kde-format +msgid "Synchronize directories" +msgstr "Sinhronizuj fascikle" + +#: optiondialog.cpp:1325 +#, kde-format +msgid "" +"Offers to store files in both directories so that\n" +"both directories are the same afterwards.\n" +"Works only when comparing two directories without specifying a destination." +msgstr "" +"Nudi da skladišti fajlove u obe fascikle tako da ispadnu iste posle toga.\n" +"Radi samo kada se porede dve fascikle bez zadavanja odredišta." + +#: optiondialog.cpp:1331 +#, kde-format +msgid "White space differences considered equal" +msgstr "Razlike u prazninama smatraju se jednakim" + +#: optiondialog.cpp:1335 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Ako se fajlovi razlikuju samo u prazninama, smatraju se jednakim.\n" +"Ovo je aktivno samo kada se izabere puna analiza." + +# >> copy newer file +#: optiondialog.cpp:1341 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopiraj noviji umesto stapanja (nesigurno)" + +#: optiondialog.cpp:1345 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two directories." +msgstr "" +"Ne gleda sadržaj, samo uzima noviji fajl.\n" +"Koristite ovo samo ako znate šta radite!\n" +"Ima efekta samo pri poređenju dve fascikle." + +#: optiondialog.cpp:1350 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Pravi rezerve fajlova (.orig)" + +#: optiondialog.cpp:1354 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Kada fajl treba da bude sačuvan preko starog fajla, stari fajl biva " +"preimenovan sa nastavkom .orig umesto da bude obrisan." + +# rewrite-msgid: /Regional/Locale/ +#: optiondialog.cpp:1430 optiondialog.cpp:1431 +#, kde-format +msgid "Regional Settings" +msgstr "Postavke lokaliteta" + +#: optiondialog.cpp:1454 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Isto kodiranje za sve:" + +#: optiondialog.cpp:1458 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Uključivanjem ovog možete promeniti sva kodiranja promenom samo prvog.\n" +"Isključite ovo ako pojedine postavke treba da budu različite." + +# >! Merge sentence. +#: optiondialog.cpp:1462 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Napomena: lokalno kodiranje je " + +#: optiondialog.cpp:1466 +#, kde-format +msgid "File Encoding for A:" +msgstr "Kodiranje fajla za A:" + +#: optiondialog.cpp:1473 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ako je uključeno, biće otkrivana Unicode (UTF‑16 ili UTF‑8) kodiranja.\n" +"Ako fajl nije Unicode izabrano kodiranje će biti upotrebljeno kao odstupno.\n" +"Otkrivanje Unicodea zavisi od prvih bajtova u fajlu." + +#: optiondialog.cpp:1476 optiondialog.cpp:1487 optiondialog.cpp:1498 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Automatski otkrij Unicode" + +#: optiondialog.cpp:1482 +#, kde-format +msgid "File Encoding for B:" +msgstr "Kodiranje fajla za B:" + +#: optiondialog.cpp:1493 +#, kde-format +msgid "File Encoding for C:" +msgstr "Kodiranje fajla za C:" + +#: optiondialog.cpp:1504 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kodiranje fajla za stopljeni izlaz i upisivanje:" + +#: optiondialog.cpp:1509 +#, kde-format +msgid "Auto Select" +msgstr "Automatski izaberi" + +#: optiondialog.cpp:1513 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ako je uključeno, uzima se kodiranje prema ulaznim fajlovima.\n" +"U dvosmislenim slučajevima izdaje se dijalog gde korisnik bira kodiranje za " +"upisivanje." + +#: optiondialog.cpp:1516 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Kodiranje fajla za predobradne fajlove:" + +#: optiondialog.cpp:1528 +#, kde-format +msgid "Right To Left Language" +msgstr "Jezici zdesna ulevo" + +#: optiondialog.cpp:1532 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Neki jezici se čitaju zdesna ulevo.\n" +"Ova postavka prilagođava tome prikazivač i uređivač." + +#: optiondialog.cpp:1542 +#, kde-format +msgid "Integration" +msgstr "Uklapanje" + +#: optiondialog.cpp:1543 +#, kde-format +msgid "Integration Settings" +msgstr "Postavke uklapanja" + +#: optiondialog.cpp:1564 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Zanemari opcije komandne linije:" + +#: optiondialog.cpp:1570 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Spisak opcija komandne linije koje treba zanemariti kada se KDiff3 poziva " +"kroz druge alatke.\n" +"Više vrednosti možete zadati razdvojene tačka-zapetom.\n" +"Ovim se suzbija greška „nepoznata opcija“." + +#: optiondialog.cpp:1575 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Napuštanje i preko tastera Esc" + +#: optiondialog.cpp:1579 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Brz način napuštanja.\n" +"Za one naviknute na taster Esc u ovu svrhu." + +#: optiondialog.cpp:1653 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Ovo resetuje sve opcije, i to ne samo one u tekućoj temi." + +#: pdiff.cpp:78 pdiff.cpp:92 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Greška, gubitak podataka:\n" +"Ako je možete ponoviti, kontaktirajte autora.\n" + +#: pdiff.cpp:80 pdiff.cpp:94 +#, kde-format +msgid "Severe Internal Error" +msgstr "Ozbiljna unutrašnja greška" + +#: pdiff.cpp:122 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Naredba predobrade: " + +#: pdiff.cpp:127 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Sledeće opcije koje ste izabrali mogu izmeniti podatke:\n" + +#: pdiff.cpp:128 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Vrlo verovatno ne želite ovo prilikom stapanja.\n" +"Želite li da isključite ove postavke ili da nastavite dalje sa njima?" + +#: pdiff.cpp:130 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opcija nesigurna za stapanje" + +#: pdiff.cpp:131 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Koristi ove opcije pri stapanju" + +#: pdiff.cpp:132 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Isključi nesigurne opcije" + +# >> @info:progress +#: pdiff.cpp:160 +#, kde-format +msgid "Loading A" +msgstr "Učitavam A" + +# >> @info:progress +#: pdiff.cpp:162 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Učitavam A" + +# >> @info:progress +#: pdiff.cpp:170 +#, kde-format +msgid "Loading B" +msgstr "Učitavam B" + +# >> @info:progress +#: pdiff.cpp:201 pdiff.cpp:237 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Razlikujem A i B" + +# >> @info:progress +#: pdiff.cpp:207 pdiff.cpp:275 pdiff.cpp:289 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Razlikujem redove A i B" + +# >> @info:progress +#: pdiff.cpp:224 +#, kde-format +msgid "Loading C" +msgstr "Učitavam C" + +# >> @info:progress +#: pdiff.cpp:246 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Razlikujem A i C" + +# >> @info:progress +#: pdiff.cpp:257 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Razlikujem B i C" + +# >> @info:progress +#: pdiff.cpp:279 pdiff.cpp:293 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Razlikujem redove B i C" + +# >> @info:progress +#: pdiff.cpp:283 pdiff.cpp:297 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Razlikujem redove A i C" + +#: pdiff.cpp:840 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Svi ulazni fajlovi sadrže isti tekst, ali nisu binarno jednaki." + +#: pdiff.cpp:846 pdiff.cpp:850 pdiff.cpp:854 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Fajlovi %1 i %2 imaju isti tekst ali nisu binarno jednaki.\n" + +#: pdiff.cpp:864 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Izgleda da neki ulazni fajlovi nisu čisto tekstualni.\n" +"Imajte na umu da stapanje u KDiff3 nije namenjeno binarnim podacima.\n" +"Nastavite na sopstvenu odgovornost." + +#: pdiff.cpp:874 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:876 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:878 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Neke ulazni znakovi ne mogu da se pretvore u Unicode.\n" +"Možda ste izabrali pogrešno kodiranje (npr. UTF‑8 za ne-UTF‑8 fajlove).\n" +"Ne upisujte rezultat ako niste sigurni. Nastavite na sopstvenu odgovornost.\n" +"Pogođeni ulazni fajlovi nalaze se u %1." + +#: pdiff.cpp:1053 +#, kde-format +msgid "Abort" +msgstr "Obustavi" + +#: pdiff.cpp:1059 pdiff.cpp:1150 +#, kde-format +msgid "Opening files..." +msgstr "Otvaram fajlove..." + +#: pdiff.cpp:1222 +#, kde-format +msgid "Cutting selection..." +msgstr "Isecam izabrano..." + +#: pdiff.cpp:1243 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopiram izbor u klipbord..." + +#: pdiff.cpp:1259 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Umećem sadržaj klipborda..." + +#: pdiff.cpp:1715 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1716 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1931 +#, kde-format +msgid "Save && Continue" +msgstr "Sačuvaj i nastavi" + +#: pdiff.cpp:1932 +#, kde-format +msgid "Continue Without Saving" +msgstr "Nastavi bez upisivanja" + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search complete." +msgstr "Pretraga je gotova." + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search Complete" +msgstr "Pretraga završena" + +#: pdiff.cpp:2395 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ništa nije izabrano ni u jednom prozoru ulaza razlike." + +#: pdiff.cpp:2395 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Greška pri dodavanju ručnog opsega razlike" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Odustani" + +#: smalldialogs.cpp:61 +#, kde-format +msgid "A (Base):" +msgstr "A (baza):" + +#: smalldialogs.cpp:71 smalldialogs.cpp:90 smalldialogs.cpp:109 +#: smalldialogs.cpp:154 +#, kde-format +msgid "File..." +msgstr "Fajl..." + +#: smalldialogs.cpp:73 smalldialogs.cpp:92 smalldialogs.cpp:111 +#: smalldialogs.cpp:156 +#, kde-format +msgid "Dir..." +msgstr "Fascikla..." + +#: smalldialogs.cpp:103 +#, kde-format +msgid "C (Optional):" +msgstr "C (opciono):" + +#: smalldialogs.cpp:126 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Razmeni/kopiraj imena..." + +#: smalldialogs.cpp:131 smalldialogs.cpp:132 smalldialogs.cpp:133 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Razmeni %1 i %2" + +#: smalldialogs.cpp:134 smalldialogs.cpp:135 smalldialogs.cpp:136 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopiraj %1 u izlaz" + +#: smalldialogs.cpp:137 smalldialogs.cpp:138 smalldialogs.cpp:139 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Razmeni %1 i izlaz" + +#: smalldialogs.cpp:148 +#, kde-format +msgid "Output (optional):" +msgstr "Izlaz (opciono):" + +#: smalldialogs.cpp:178 +#, kde-format +msgid "Configure..." +msgstr "Podesi..." + +#: smalldialogs.cpp:243 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Open Directory" +msgstr "Fascikla" + +#: smalldialogs.cpp:244 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:403 +#, kde-format +msgid "Search text:" +msgstr "Traženi tekst:" + +#: smalldialogs.cpp:410 +#, kde-format +msgid "Case sensitive" +msgstr "Razlikuj veličinu slova" + +#: smalldialogs.cpp:413 +#, kde-format +msgid "Search A" +msgstr "Pretraži A" + +#: smalldialogs.cpp:418 +#, kde-format +msgid "Search B" +msgstr "Pretraži B" + +#: smalldialogs.cpp:423 +#, kde-format +msgid "Search C" +msgstr "Pretraži C" + +#: smalldialogs.cpp:428 +#, kde-format +msgid "Search output" +msgstr "Izlaz pretrage" + +#: smalldialogs.cpp:435 +#, kde-format +msgid "&Search" +msgstr "&Traži" + +#: smalldialogs.cpp:454 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Proba regularnih izraza" + +#: smalldialogs.cpp:467 +#, kde-format +msgid "Example auto merge line:" +msgstr "Primer reda za automatsko stapanje:" + +#: smalldialogs.cpp:469 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Za probu automatskog stapanja, kopirajte red kakav se nalazi u fajlovima." + +#: smalldialogs.cpp:475 smalldialogs.cpp:503 smalldialogs.cpp:539 +#, kde-format +msgid "Match result:" +msgstr "Rezultat poklapanja:" + +#: smalldialogs.cpp:494 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Primer početnog reda istorijata (sa vodećim komentarom):" + +#: smalldialogs.cpp:496 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopirajte početni red istorijata kakav se nalazi u fajlovima, uključujući i " +"vodeći komentar." + +#: smalldialogs.cpp:522 +#, kde-format +msgid "History sort key order:" +msgstr "Redosled ređanja ključeva istorijata:" + +#: smalldialogs.cpp:530 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Primer početnog reda stavke istorijata (bez vodećeg komentara):" + +#: smalldialogs.cpp:532 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopirajte početni red stavke istorijata kakav se nalazi u fajlovima, ali " +"izostavljajući vodeći komentar." + +#: smalldialogs.cpp:546 +#, kde-format +msgid "Sort key result:" +msgstr "Rezultat ređanja ključeva:" + +#: smalldialogs.cpp:594 smalldialogs.cpp:604 smalldialogs.cpp:624 +#, kde-format +msgid "Match success." +msgstr "Poklapanje je uspelo." + +#: smalldialogs.cpp:598 smalldialogs.cpp:608 smalldialogs.cpp:630 +#, kde-format +msgid "Match failed." +msgstr "Poklapanje nije uspelo." + +#: smalldialogs.cpp:615 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Ne poklapaju se otvorene i zatvorene zagrade u regularnom izrazu." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Upisivanje podataka iz klipborda u privremeni fajl nije uspelo." + +#: SourceData.cpp:157 +#, kde-format +msgid "From Clipboard" +msgstr "Iz klipborda" + +#: SourceData.cpp:348 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Mešavina veza i normalnih fajlova." + +#: SourceData.cpp:440 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:445 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Izgleda da je predobrada propala. Proverite ovu naredbu:\n" +"\n" +" %1\n" +"\n" +"Naredba predobrade će sada biti deaktivirana." + +#: SourceData.cpp:456 SourceData.cpp:525 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:500 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Izgleda da je predobrada poklapanja redova propala. Proverite ovu naredbu:\n" +"\n" +" %1\n" +"\n" +"Predobrada poklapanja redova sada će biti deaktivirana." + +#: Utils.cpp:77 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Očekivan razmak posle zatvorenog apostrofa." + +#: Utils.cpp:80 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:89 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Neočekivan apostrof unutar argumenta." + +#: Utils.cpp:96 +#, kde-format +msgid "No program specified." +msgstr "Naredba nije zadata." \ No newline at end of file diff --git a/po/sr@ijekavianlatin/kdiff3fileitemactionplugin.po b/po/sr@ijekavianlatin/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..8dabed6 --- /dev/null +++ b/po/sr@ijekavianlatin/kdiff3fileitemactionplugin.po @@ -0,0 +1,125 @@ +# Translation of kdiff3fileitemactionplugin.po into Serbian. +# Chusslove Illich , 2012, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-30 07:40+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@ijekavianlatin\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kdiff3fileitemaction.cpp:92 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3..." + +# >> %1 file path +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "Compare with %1" +msgstr "Uporedi sa %1" + +# >> %1 file path +#: kdiff3fileitemaction.cpp:130 +#, kde-format +msgid "Merge with %1" +msgstr "Stopi sa %1" + +#: kdiff3fileitemaction.cpp:136 +#, kde-format +msgid "Save '%1' for later" +msgstr "Sačuvaj „%1“ za kasnije" + +#: kdiff3fileitemaction.cpp:142 +#, kde-format +msgid "3-way merge with base" +msgstr "Trostrano stopi sa bazom" + +#: kdiff3fileitemaction.cpp:149 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Uporedi sa..." + +#: kdiff3fileitemaction.cpp:161 +#, kde-format +msgid "Clear list" +msgstr "Očisti spisak" + +#: kdiff3fileitemaction.cpp:169 +#, kde-format +msgid "Compare" +msgstr "Uporedi" + +#: kdiff3fileitemaction.cpp:175 +#, kde-format +msgid "3 way comparison" +msgstr "Trostrano uporedi" + +#: kdiff3fileitemaction.cpp:179 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "O priključku menija za KDiff3..." + +#: kdiff3fileitemaction.cpp:287 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Priključak za radnje nad fajlovima KDiff3: © 2011, Joahim Ajbl\n" +"Domaća stranica KDiff3: http://kdiff3.sourceforge.net\n" +"\n" + +# >! Wtf: ...then the branch to merge... +#: kdiff3fileitemaction.cpp:288 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to directory comparison and merge." +msgstr "" +"Korišćenje proširenja kontekstnog menija:\n" +"Za jednostavno poređenje, izaberite „Uporedi“.\n" +"Ako je drugi fajl negde drugde, prvo sačuvajte prvi fajl. Pojaviće se u " +"podmeniju „Uporedi sa...“. Zatim upotrebite „Uporedi sa...“ nad drugim " +"fajlom.\n" +"Za trostrano stapanje, prvo sačuvajte bazni fajl, zatim na granu za " +"stapanje, pa „Trostrano stopi sa bazom“ na drugoj grani koja će biti " +"odredište.\n" +"Isto važi za poređenje i stapanje fascikli." + +#: kdiff3fileitemaction.cpp:296 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "O priključku za radnje nad fajlovima KDiff3" \ No newline at end of file diff --git a/po/sr@latin/kdiff3.po b/po/sr@latin/kdiff3.po new file mode 100644 index 0000000..b5caf80 --- /dev/null +++ b/po/sr@latin/kdiff3.po @@ -0,0 +1,3596 @@ +# Translation of kdiff3.po into Serbian. +# Slobodan Simic , 2009. +# Chusslove Illich , 2010, 2011, 2012, 2015, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2020-06-15 06:48+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@latin\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Generator: KBabel 1.11.4\n" +"X-Environment: kde\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Slobodan Simić,Časlav Ilić" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "slsimic@gmail.com,caslav.ilic@gmx.net" + +#: difftextwindow.cpp:414 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:416 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "red nedostupan" + +#: difftextwindow.cpp:1778 +#, kde-format +msgid "Encoding:" +msgstr "Kodiranje:" + +#: difftextwindow.cpp:1781 mergeresultwindow.cpp:3166 optiondialog.cpp:840 +#, kde-format +msgid "Line end style:" +msgstr "Stil kraja redova:" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:383 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:525 +#: directorymergewindow.cpp:3069 directorymergewindow.cpp:3200 +#: directorymergewindow.cpp:3428 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:1842 +#: mergeresultwindow.cpp:3198 mergeresultwindow.cpp:3205 optiondialog.cpp:1002 +#: optiondialog.cpp:1015 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:848 +#: pdiff.cpp:850 pdiff.cpp:872 smalldialogs.cpp:131 smalldialogs.cpp:133 +#: smalldialogs.cpp:134 smalldialogs.cpp:137 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:385 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:527 +#: directorymergewindow.cpp:3075 directorymergewindow.cpp:3201 +#: directorymergewindow.cpp:3429 mergeresultwindow.cpp:970 +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1844 +#: mergeresultwindow.cpp:3200 mergeresultwindow.cpp:3207 optiondialog.cpp:1003 +#: optiondialog.cpp:1016 pdiff.cpp:844 pdiff.cpp:846 pdiff.cpp:852 +#: pdiff.cpp:854 pdiff.cpp:874 smalldialogs.cpp:131 smalldialogs.cpp:132 +#: smalldialogs.cpp:135 smalldialogs.cpp:138 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1809 directorymergewindow.cpp:387 +#: directorymergewindow.cpp:440 directorymergewindow.cpp:529 +#: directorymergewindow.cpp:3081 directorymergewindow.cpp:3202 +#: directorymergewindow.cpp:3430 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:976 mergeresultwindow.cpp:978 +#: mergeresultwindow.cpp:980 mergeresultwindow.cpp:1846 +#: mergeresultwindow.cpp:3202 mergeresultwindow.cpp:3209 optiondialog.cpp:1017 +#: pdiff.cpp:848 pdiff.cpp:850 pdiff.cpp:852 pdiff.cpp:854 pdiff.cpp:876 +#: smalldialogs.cpp:132 smalldialogs.cpp:133 smalldialogs.cpp:136 +#: smalldialogs.cpp:139 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1809 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (baza):" + +#: difftextwindow.cpp:1811 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "Kodiranje:" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3211 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1812 mergeresultwindow.cpp:3212 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1812 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "Stil kraja redova:" + +# >! Merge whole string. +#: difftextwindow.cpp:1834 kdiff3.cpp:874 +#, kde-format +msgid "Top line" +msgstr "Prvi red" + +#: difftextwindow.cpp:1843 +#, kde-format +msgid "End" +msgstr "Kraj" + +#: difftextwindow.cpp:1901 smalldialogs.cpp:245 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "Otvaram fajlove..." + +#: difftextwindow.cpp:1943 optiondialog.cpp:389 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8‑bitni" + +#: difftextwindow.cpp:1958 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:3435 +#, kde-format +msgid "Copy A to B" +msgstr "Kopiraj A u B" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:3436 +#, kde-format +msgid "Copy B to A" +msgstr "Kopiraj B u A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:3437 +#, kde-format +msgid "Delete A" +msgstr "Obriši A" + +#: directorymergewindow.cpp:419 directorymergewindow.cpp:3438 +#, kde-format +msgid "Delete B" +msgstr "Obriši B" + +#: directorymergewindow.cpp:422 +#, kde-format +msgid "Delete A & B" +msgstr "Obriši A i B" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:3440 +#, kde-format +msgid "Merge to A" +msgstr "Stopi u A" + +#: directorymergewindow.cpp:428 directorymergewindow.cpp:3441 +#, kde-format +msgid "Merge to B" +msgstr "Stopi u B" + +#: directorymergewindow.cpp:431 +#, kde-format +msgid "Merge to A & B" +msgstr "Stopi u A i B" + +#: directorymergewindow.cpp:443 directorymergewindow.cpp:3432 +#, kde-format +msgid "Delete (if exists)" +msgstr "Obriši (ako postoji)" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#: directorymergewindow.cpp:3431 smalldialogs.cpp:120 +#, kde-format +msgid "Merge" +msgstr "Stopi" + +#: directorymergewindow.cpp:446 directorymergewindow.cpp:449 +#, kde-format +msgid "Merge (manual)" +msgstr "Stopi (ručno)" + +#: directorymergewindow.cpp:452 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Greška: sukobljeni tipovi fajlova." + +#: directorymergewindow.cpp:455 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Greška: izmenjeno i obrisano." + +#: directorymergewindow.cpp:458 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Greška: datumi su jednaki ali fajlovi nisu." + +#: directorymergewindow.cpp:472 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Gotovo." + +#: directorymergewindow.cpp:474 +#, kde-format +msgid "Error" +msgstr "Greška" + +#: directorymergewindow.cpp:476 +#, kde-format +msgid "Skipped." +msgstr "Preskočeno." + +#: directorymergewindow.cpp:478 +#, kde-format +msgid "Not saved." +msgstr "Nije sačuvano." + +#: directorymergewindow.cpp:480 +#, kde-format +msgid "In progress..." +msgstr "U toku..." + +#: directorymergewindow.cpp:482 +#, kde-format +msgid "To do." +msgstr "Uraditi." + +# >> @title:column +#: directorymergewindow.cpp:523 +#, kde-format +msgid "Name" +msgstr "ime" + +# >> @title:column +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Operation" +msgstr "postupak" + +# >> @title:column +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Status" +msgstr "stanje" + +# >> @title:column +#: directorymergewindow.cpp:535 +#, kde-format +msgid "Unsolved" +msgstr "nerešeno" + +# >> @title:column +#: directorymergewindow.cpp:537 +#, kde-format +msgid "Solved" +msgstr "rešeno" + +# >> non-whitespace +# >> @title:column +#: directorymergewindow.cpp:539 +#, kde-format +msgid "Nonwhite" +msgstr "neprazno" + +# >> whitespace +# >> @title:column +#: directorymergewindow.cpp:541 +#, kde-format +msgid "White" +msgstr "prazno" + +#: directorymergewindow.cpp:676 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: directorymergewindow.cpp:690 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Mešavina veza i normalnih fajlova." + +#: directorymergewindow.cpp:697 +#, kde-format +msgid "Link: " +msgstr "Veza: " + +#: directorymergewindow.cpp:706 +#, kde-format +msgid "Size. " +msgstr "Veličina: " + +#: directorymergewindow.cpp:720 directorymergewindow.cpp:730 +#, kde-format +msgid "Date & Size: " +msgstr "Datum i veličina: " + +#: directorymergewindow.cpp:751 +#, kde-format +msgid "Comparing file..." +msgstr "Upoređujem fajl..." + +#: directorymergewindow.cpp:813 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort " +"the merge and rescan the directory?" +msgstr "" +"Trenutno stapate fascikle. Želite li zaista da prekinete stapanje i ponovo " +"skenirate fasciklu?" + +#: directorymergewindow.cpp:814 kdiff3.cpp:697 kdiff3.cpp:707 kdiff3.cpp:719 +#: mergeresultwindow.cpp:400 pdiff.cpp:1052 pdiff.cpp:1930 pdiff.cpp:1940 +#, kde-format +msgid "Warning" +msgstr "Upozorenje" + +#: directorymergewindow.cpp:815 directorymergewindow.cpp:3404 +#, kde-format +msgid "Rescan" +msgstr "Ponovo skeniraj" + +#: directorymergewindow.cpp:816 pdiff.cpp:1054 +#, kde-format +msgid "Continue Merging" +msgstr "Nastavi stapanje" + +#: directorymergewindow.cpp:983 +#, kde-format +msgid "Opening of directories failed:" +msgstr "Otvaranje fascikli nije uspelo:" + +#: directorymergewindow.cpp:987 +#, kde-format +msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgstr "Fascikla A „%1“ ne postoji ili nije fascikla.\n" + +#: directorymergewindow.cpp:992 +#, kde-format +msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgstr "Fascikla B „%1“ ne postoji ili nije fascikla.\n" + +#: directorymergewindow.cpp:997 +#, kde-format +msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgstr "Fascikla C „%1“ ne postoji ili nije fascikla.\n" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Directory Open Error" +msgstr "Greška pri otvaranju fascikle" + +#: directorymergewindow.cpp:1008 +#, kde-format +msgid "" +"The destination directory must not be the same as A or B when three " +"directories are merged.\n" +"Check again before continuing." +msgstr "" +"Odredišna fascikla ne sme biti ista kao A ili B kada se stapaju tri " +"fascikle.\n" +"Proverite ponovo pre nego što nastavite." + +#: directorymergewindow.cpp:1010 +#, kde-format +msgid "Parameter Warning" +msgstr "Upozorenje o parametrima" + +#: directorymergewindow.cpp:1015 +#, kde-format +msgid "Scanning directories..." +msgstr "Skeniram fascikle..." + +#: directorymergewindow.cpp:1041 +#, kde-format +msgid "Reading Directory A" +msgstr "Čitam fasciklu A" + +#: directorymergewindow.cpp:1050 +#, kde-format +msgid "Reading Directory B" +msgstr "Čitam fasciklu B" + +#: directorymergewindow.cpp:1060 +#, kde-format +msgid "Reading Directory C" +msgstr "Čitam fasciklu C" + +# >! Merge sentence. +#: directorymergewindow.cpp:1076 +#, kde-format +msgid "Some subdirectories were not readable in" +msgstr "Neke potfascikle nisu bile čitljive u" + +#: directorymergewindow.cpp:1081 +#, kde-format +msgid "Check the permissions of the subdirectories." +msgstr "Proverite dozvole potfascikli." + +#: directorymergewindow.cpp:1118 kdiff3.cpp:665 kdiff3.cpp:752 kdiff3.cpp:776 +#: kdiff3.cpp:1072 kdiff3.cpp:1093 pdiff.cpp:1136 pdiff.cpp:1190 pdiff.cpp:1238 +#: pdiff.cpp:1254 pdiff.cpp:1297 pdiff.cpp:1321 +#, kde-format +msgid "Ready." +msgstr "Spreman." + +#: directorymergewindow.cpp:1133 +#, kde-format +msgid "" +"Directory Comparison Status\n" +"\n" +"Number of subdirectories: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1140 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Broj ručnih stapanja:" + +#: directorymergewindow.cpp:1406 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ovo utiče na sve postupke stapanja." + +# >> @title:window +#: directorymergewindow.cpp:1407 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Menjanje svih postupaka stapanja" + +# >! Merge sentence. +#: directorymergewindow.cpp:1707 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Obrađujem " + +#: directorymergewindow.cpp:1750 directorymergewindow.cpp:1754 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Ovaj postupak trenutno nije moguć." + +#: directorymergewindow.cpp:2234 directorymergewindow.cpp:2259 +#: directorymergewindow.cpp:2283 directorymergewindow.cpp:2563 +#, kde-format +msgid "Operation Not Possible" +msgstr "Postupak nije moguć" + +#: directorymergewindow.cpp:2330 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Greška u toku kopiranja.\n" + +#: directorymergewindow.cpp:2331 directorymergewindow.cpp:2770 +#, kde-format +msgid "Merge Error" +msgstr "Greška stapanja" + +#: directorymergewindow.cpp:2408 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Nepoznat postupak stapanja. (Ovo nikada ne sme da se dogodi!)" + +#: directorymergewindow.cpp:2453 +#, kde-format +msgid "Unknown merge operation." +msgstr "Nepoznata postupak stapanja." + +#: directorymergewindow.cpp:2466 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Stapanje će upravo početi.\n" +"\n" +"Izaberite „Uradi“ ako ste pročitali instrukcije i znate šta radite.\n" +"Izaberite „Simuliraj“ ako biste prvo da vidite šta bi se dogodilo.\n" +"\n" +"Pazite da je program još uvek u stanju bete i nema apsolutno NIKAKVIH " +"GARANCIJA! Napravite rezerve važnih podataka!" + +# >> @title:window +#: directorymergewindow.cpp:2471 +#, kde-format +msgid "Starting Merge" +msgstr "Početak stapanja" + +#: directorymergewindow.cpp:2472 +#, kde-format +msgid "Do It" +msgstr "Uradi" + +#: directorymergewindow.cpp:2473 +#, kde-format +msgid "Simulate It" +msgstr "Simuliraj" + +#: directorymergewindow.cpp:2499 +#, kde-format +msgid "" +"The highlighted item has a different type in the different directories. " +"Select what to do." +msgstr "" +"Istaknuta stavka ima različit tip u različitim fasciklama. Izaberite šta " +"uraditi." + +#: directorymergewindow.cpp:2503 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Datumi izmene fajla su jednaki ali fajlovi nisu. Izaberite šta uraditi." + +#: directorymergewindow.cpp:2507 +#, kde-format +msgid "" +"The highlighted item was changed in one directory and deleted in the other. " +"Select what to do." +msgstr "" +"Istaknuta stavka je izmenjena u jednoj fascikli a obrisana u drugoj. " +"Izaberite šta uraditi." + +#: directorymergewindow.cpp:2563 +#, kde-format +msgid "" +"This operation is currently not possible because directory merge is " +"currently running." +msgstr "" +"Ovaj postupak trenutno nije moguć zato što je u toku stapanje fascikli." + +#: directorymergewindow.cpp:2620 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Greška u poslednjem koraku.\n" +"Želite li da nastavite sa stavkom koja je izazvala grešku ili da je " +"preskočite?" + +# >> @title:window +#: directorymergewindow.cpp:2622 +#, kde-format +msgid "Continue merge after an error" +msgstr "Nastavljanje stapanja posle greške" + +#: directorymergewindow.cpp:2623 +#, kde-format +msgid "Continue With Last Item" +msgstr "Nastavi sa poslednjom stavkom" + +#: directorymergewindow.cpp:2624 +#, kde-format +msgid "Skip Item" +msgstr "Preskoči stavku" + +#: directorymergewindow.cpp:2720 +#, kde-format +msgid "Merge operation complete." +msgstr "Postupak stapanja je završen." + +#: directorymergewindow.cpp:2720 directorymergewindow.cpp:2723 +#, kde-format +msgid "Merge Complete" +msgstr "Stapanje završeno" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulirano stapanje je završeno: proverite da li vam odgovaraju predloženi " +"postupci." + +#: directorymergewindow.cpp:2769 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Došlo je do greške. Kliknite na „U redu“ da dobijete detaljne informacije.\n" + +#: directorymergewindow.cpp:2802 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Greška: u toku brisanja %1, pravljenje rezerve nije uspelo." + +#: directorymergewindow.cpp:2809 +#, kde-format +msgid "delete directory recursively( %1 )" +msgstr "rekurzivno brisanje fascikle (%1)" + +#: directorymergewindow.cpp:2811 +#, kde-format +msgid "delete( %1 )" +msgstr "brisanje (%1)" + +#: directorymergewindow.cpp:2826 +#, kde-format +msgid "Error: delete dir operation failed while trying to read the directory." +msgstr "" +"Greška: postupak brisanja fascikle nije uspeo na mestu čitanja fascikle." + +#: directorymergewindow.cpp:2845 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Greška: postupak uklanjanja fascikle (%1) nije uspeo." + +#: directorymergewindow.cpp:2855 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Greška: postupak brisanja nije uspeo." + +#: directorymergewindow.cpp:2881 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "ručno stapanje (%1, %2, %3 → %4)" + +#: directorymergewindow.cpp:2884 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Napomena: posle ručnog stapanja korisnik treba da nastavi pritiskom na " +"F7." + +#: directorymergewindow.cpp:2911 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Greška: kopiranje (%1 → %2) nije uspelo, brisanje postojećeg odredišta nije " +"uspelo." + +#: directorymergewindow.cpp:2920 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "kopiranje veze (%1 → %2 )" + +#: directorymergewindow.cpp:2929 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Greška: kopiranje veze nije uspelo, udaljene veze još nisu podržane." + +#: directorymergewindow.cpp:2939 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Greška: kopiranje veze nije uspelo." + +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopiranje (%1 → %2)" + +#: directorymergewindow.cpp:2990 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Greška u toku preimenovanja (%1 → %2), postojeće odredište ne može da se " +"obriše." + +#: directorymergewindow.cpp:2997 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "preimenovanje (%1 → %2)" + +#: directorymergewindow.cpp:3006 +#, kde-format +msgid "Error: Rename failed." +msgstr "Greška: preimenovanje nije uspelo." + +#: directorymergewindow.cpp:3024 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Greška u toku pravljenja fascikle (%1), postojeći fajl ne može da se obriše." + +#: directorymergewindow.cpp:3041 +#, kde-format +msgid "makeDir( %1 )" +msgstr "pravljenje fascikle (%1)" + +#: directorymergewindow.cpp:3051 +#, kde-format +msgid "Error while creating directory." +msgstr "Greška u toku pravljenja fascikle." + +#: directorymergewindow.cpp:3087 directorymergewindow.cpp:3206 +#, kde-format +msgid "Dest" +msgstr "Odredište" + +# >> @title:column +#: directorymergewindow.cpp:3095 directorymergewindow.cpp:3124 +#, kde-format +msgid "Dir" +msgstr "fascikla" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Type" +msgstr "tip" + +# >> @title:column +#: directorymergewindow.cpp:3095 +#, kde-format +msgid "Size" +msgstr "veličina" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Attr" +msgstr "atributi" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Last Modification" +msgstr "poslednja izmena" + +# >> @title:column +#: directorymergewindow.cpp:3096 +#, kde-format +msgid "Link-Destination" +msgstr "odredište veze" + +# >! Merge whole string. +# >> @item:intext +#: directorymergewindow.cpp:3124 +#, kde-format +msgid "File" +msgstr "fajl" + +#: directorymergewindow.cpp:3124 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Veza: " + +#: directorymergewindow.cpp:3130 +#, kde-format +msgid "not available" +msgstr "nedostupno" + +#: directorymergewindow.cpp:3148 +#, kde-format +msgid "A (Dest): " +msgstr "A (odredište): " + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:3152 +#, kde-format +msgid "A (Base): " +msgstr "A (baza): " + +#: directorymergewindow.cpp:3158 +#, kde-format +msgid "B (Dest): " +msgstr "B (odredište): " + +#: directorymergewindow.cpp:3162 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:3167 +#, kde-format +msgid "C (Dest): " +msgstr "C (odredište): " + +#: directorymergewindow.cpp:3171 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:3174 +#, kde-format +msgid "Dest: " +msgstr "Odredište: " + +# >> @title:window +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:3249 +#, kde-format +msgid "Save Directory Merge State As..." +msgstr "Upisivanje stanja stapanja fascikli kao..." + +#: directorymergewindow.cpp:3398 +#, kde-format +msgid "Start/Continue Directory Merge" +msgstr "Pokreni/nastavi stapanje fascikli" + +#: directorymergewindow.cpp:3399 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Izvrši postupak za tekuću stavku" + +#: directorymergewindow.cpp:3400 +#, kde-format +msgid "Compare Selected File" +msgstr "Uporedi izabrani fajl" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "Merge Current File" +msgstr "Stopi tekući fajl" + +#: directorymergewindow.cpp:3401 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Stopi\n" +"fajl" + +#: directorymergewindow.cpp:3402 +#, kde-format +msgid "Fold All Subdirs" +msgstr "Sažmi sve potfascikle" + +#: directorymergewindow.cpp:3403 +#, kde-format +msgid "Unfold All Subdirs" +msgstr "Raširi sve potfascikle" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:3407 +#, kde-format +msgid "Choose A for All Items" +msgstr "Izaberi A za sve stavke" + +#: directorymergewindow.cpp:3408 +#, kde-format +msgid "Choose B for All Items" +msgstr "Izaberi B za sve stavke" + +#: directorymergewindow.cpp:3409 +#, kde-format +msgid "Choose C for All Items" +msgstr "Izaberi C za sve stavke" + +#: directorymergewindow.cpp:3410 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Automatski izaberi postupak za sve stavke" + +#: directorymergewindow.cpp:3411 +#, kde-format +msgid "No Operation for All Items" +msgstr "Nema postupka za sve stavke" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "Show Identical Files" +msgstr "Prikaži istovetne fajlove" + +#: directorymergewindow.cpp:3416 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Istovetni\n" +"fajlovi" + +#: directorymergewindow.cpp:3417 +#, kde-format +msgid "Show Different Files" +msgstr "Prikaži različite fajlove" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "Show Files only in A" +msgstr "Prikaži fajlove samo u A" + +#: directorymergewindow.cpp:3418 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Fajlovi\n" +"samo u A" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "Show Files only in B" +msgstr "Prikaži fajlove samo u B" + +#: directorymergewindow.cpp:3419 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Fajlovi\n" +"samo u B" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "Show Files only in C" +msgstr "Prikaži fajlove samo u C" + +#: directorymergewindow.cpp:3420 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Fajlovi\n" +"samo u C" + +#: directorymergewindow.cpp:3424 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Uporedi izričito izabrane fajlove" + +#: directorymergewindow.cpp:3425 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Stopi izričito izabrane fajlove" + +#: directorymergewindow.cpp:3427 directorymergewindow.cpp:3434 +#, kde-format +msgid "Do Nothing" +msgstr "Ne radi ništa" + +#: directorymergewindow.cpp:3439 +#, kde-format +msgid "Delete A && B" +msgstr "Obriši A i B" + +#: directorymergewindow.cpp:3442 +#, kde-format +msgid "Merge to A && B" +msgstr "Stopi u A i B" + +#: fileaccess.cpp:301 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:482 SourceData.cpp:506 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Čitam fajl: %1" + +#: fileaccess.cpp:624 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Pravljenje privremene kopije fajla %1 nije uspelo." + +#: fileaccess.cpp:632 fileaccess.cpp:637 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Otvaranje fajla %1 nije uspelo." + +#: fileaccess.cpp:656 fileaccess.cpp:664 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Greška pri čitanju iz %1" + +#: fileaccess.cpp:788 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Pri pokušaju pravljenja rezerve, brisanje starije rezerve nije uspelo.\n" +"Ime fajla: " + +#: fileaccess.cpp:795 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Pri pokušaju pravljenja rezerve, preimenovanje nije uspelo.\n" +"Imena fajlova: " + +#: fileaccess.cpp:865 +#, kde-format +msgid "Getting file status: %1" +msgstr "Dobavljam stanje fajla: %1" + +#: fileaccess.cpp:906 +#, kde-format +msgid "Reading file: %1" +msgstr "Čitam fajl: %1" + +#: fileaccess.cpp:944 +#, kde-format +msgid "Writing file: %1" +msgstr "Pišem fajl: %1" + +#: fileaccess.cpp:977 +#, kde-format +msgid "Out of memory" +msgstr "Nema više memorije" + +#: fileaccess.cpp:1013 +#, kde-format +msgid "Making directory: %1" +msgstr "Pravim fasciklu: %1" + +#: fileaccess.cpp:1034 +#, kde-format +msgid "Removing directory: %1" +msgstr "Uklanjam fasciklu: %1" + +#: fileaccess.cpp:1049 +#, kde-format +msgid "Removing file: %1" +msgstr "Uklanjam fajl: %1" + +#: fileaccess.cpp:1065 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Pravim simboličku vezu: %1 → %2" + +#: fileaccess.cpp:1089 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Preimenujem fajl: %1 → %2" + +#: fileaccess.cpp:1123 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopiram fajl: %1 → %2" + +#: fileaccess.cpp:1145 +#, fuzzy, kde-format +#| msgid "Reading directory: " +msgid "Reading directory: %1" +msgstr "Čitam fasciklu: " + +#: fileaccess.cpp:1202 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listam fasciklu: %1" + +#: kdiff3.cpp:182 +#, kde-format +msgid "Current Configuration:" +msgstr "Trenutna postava:" + +#: kdiff3.cpp:187 +#, kde-format +msgid "Config Option Error:" +msgstr "Greška postavne opcije:" + +#: kdiff3.cpp:246 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Opcija --auto je upotrebljena, ali nije naveden izlazni fajl." + +#: kdiff3.cpp:405 +#, kde-format +msgid "Option --auto ignored for directory comparison." +msgstr "Opcija --auto se ignoriše za poređenje fascikli." + +#: kdiff3.cpp:449 +#, kde-format +msgid "Saving failed." +msgstr "Upisivanje nije uspelo." + +#: kdiff3.cpp:494 pdiff.cpp:395 pdiff.cpp:1117 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Otvaranje ovih fajlova nije uspelo:" + +#: kdiff3.cpp:503 pdiff.cpp:404 pdiff.cpp:1126 +#, kde-format +msgid "File open error" +msgstr "Greška pri otvaranju fajla" + +# >> @info:tooltip +#: kdiff3.cpp:532 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Otvara dokumente za poređenje." + +#: kdiff3.cpp:534 +#, kde-format +msgid "Reload" +msgstr "Učitaj ponovo" + +# >> @info:tooltip +#: kdiff3.cpp:537 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Upisuje rezultat stapanja. Svi sukobi moraju biti razrešeni." + +# >> @info:tooltip +#: kdiff3.cpp:539 +#, kde-format +msgid "Saves the current document as..." +msgstr "Upisuje tekuće dokumente pod imenom." + +# >> @info:tooltip +#: kdiff3.cpp:542 +#, kde-format +msgid "Print the differences" +msgstr "Štampa razlike." + +# >> @info:tooltip +#: kdiff3.cpp:545 +#, kde-format +msgid "Quits the application" +msgstr "Napušta program." + +# >> @info:tooltip +#: kdiff3.cpp:548 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Iseca izabrani odeljak i stavlja ga u klipbord." + +# >> @info:tooltip +#: kdiff3.cpp:551 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopira izabrani odeljak u klipbord." + +# >> @info:tooltip +#: kdiff3.cpp:553 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Nalepljuje sadržaj klipborda na trenutnom položaju." + +# >> @info:tooltip +#: kdiff3.cpp:556 +#, kde-format +msgid "Select everything in current window" +msgstr "Izabira sve u tekućem prozoru." + +# >> @info:tooltip +#: kdiff3.cpp:559 +#, kde-format +msgid "Search for a string" +msgstr "Traži nisku." + +# >> @info:tooltip +#: kdiff3.cpp:561 +#, kde-format +msgid "Search again for the string" +msgstr "Ponovo traži nisku." + +# >> @info:tooltip +#: kdiff3.cpp:566 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Uključuje/isključuje traku stanja." + +#: kdiff3.cpp:570 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Podesi KDiff3..." + +#: kdiff3.cpp:589 +#, kde-format +msgid "Go to Current Delta" +msgstr "Idi na tekuću deltu" + +#: kdiff3.cpp:589 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Tekuća\n" +"delta" + +#: kdiff3.cpp:591 +#, kde-format +msgid "Go to First Delta" +msgstr "Idi na prvu deltu" + +#: kdiff3.cpp:591 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Prva\n" +"delta" + +#: kdiff3.cpp:593 +#, kde-format +msgid "Go to Last Delta" +msgstr "Idi na poslednju deltu" + +#: kdiff3.cpp:593 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Poslednja\n" +"delta" + +#: kdiff3.cpp:595 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Preskače razlike u prazninama ako je „Prikaži praznine“ isključeno.)" + +#: kdiff3.cpp:596 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Ne preskače razlike prazninama ni kada je „Prikaži praznine“ isključeno.)" + +#: kdiff3.cpp:597 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Idi na prethodnu deltu" + +#: kdiff3.cpp:597 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Prethodna\n" +"delta" + +#: kdiff3.cpp:599 +#, kde-format +msgid "Go to Next Delta" +msgstr "Idi na sledeću deltu" + +#: kdiff3.cpp:599 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Sledeća\n" +"delta" + +#: kdiff3.cpp:601 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Idi na prethodni sukob" + +#: kdiff3.cpp:601 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Prethodni\n" +"sukob" + +#: kdiff3.cpp:603 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Idi na sledeći sukob" + +#: kdiff3.cpp:603 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Sledeći\n" +"sukob" + +#: kdiff3.cpp:605 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Idi na prethodni nerešeni sukob" + +#: kdiff3.cpp:605 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Prethodni\n" +"nerešeni" + +#: kdiff3.cpp:607 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Idi na sledeći nerešeni sukob" + +#: kdiff3.cpp:607 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Sledeći\n" +"nerešeni" + +#: kdiff3.cpp:609 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Izaberite redove iz A" + +#: kdiff3.cpp:609 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Izaberite\n" +"A" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Izaberite redove iz B" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Izaberite\n" +"B" + +#: kdiff3.cpp:611 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Izaberite redove iz C" + +#: kdiff3.cpp:611 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Izaberite\n" +"C" + +#: kdiff3.cpp:612 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Automatski idi na sledeći nerešeni sukob posle izbora izvora" + +#: kdiff3.cpp:612 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automatski\n" +"sledeći" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Prikaži znakove razmaka i tabulatora za razlike" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Znakovi\n" +"praznina" + +#: kdiff3.cpp:615 +#, kde-format +msgid "Show White Space" +msgstr "Prikaži praznine" + +#: kdiff3.cpp:615 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Delte\n" +"praznina" + +#: kdiff3.cpp:617 +#, kde-format +msgid "Show Line Numbers" +msgstr "Prikaži brojeve redova" + +#: kdiff3.cpp:617 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Brojevi\n" +"redova" + +#: kdiff3.cpp:619 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Automatski reši jednostavne sukobe" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Postavi delte na sukobe" + +#: kdiff3.cpp:621 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Automatski stopi po regularnim izrazima" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Automatski reši sukobe istorijata" + +#: kdiff3.cpp:623 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Podeli razliku na izboru" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Spoji izabrane razlike" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Show Window A" +msgstr "Prikaži prozor A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Show Window B" +msgstr "Prikaži prozor B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Show Window C" +msgstr "Prikaži prozor C" + +#: kdiff3.cpp:630 +#, kde-format +msgid "Normal Overview" +msgstr "Normalan pregled" + +#: kdiff3.cpp:631 +#, kde-format +msgid "A vs. B Overview" +msgstr "Pregled A prema B" + +#: kdiff3.cpp:632 +#, kde-format +msgid "A vs. C Overview" +msgstr "Pregled A prema C" + +#: kdiff3.cpp:633 +#, kde-format +msgid "B vs. C Overview" +msgstr "Pregled B prema C" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Prelom reči u prozorima razlika" + +#: kdiff3.cpp:635 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Dodaj ručno poravnanje razlika" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Očisti sva ručna poravnanja razlika" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokusiraj sledeći prozor" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokusiraj prethodni prozor" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Prebaci orijentaciju podele" + +#: kdiff3.cpp:642 +#, kde-format +msgid "Dir && Text Split Screen View" +msgstr "Podeljeni prikaz ekrana na fasciklu i tekst" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Toggle Between Dir && Text View" +msgstr "Prebaci prikaz fascikle i teksta" + +#: kdiff3.cpp:696 pdiff.cpp:1929 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Rezultat stapanja nije sačuvan." + +#: kdiff3.cpp:698 +#, kde-format +msgid "Save && Quit" +msgstr "Sačuvaj i napusti" + +#: kdiff3.cpp:699 +#, kde-format +msgid "Quit Without Saving" +msgstr "Napusti bez upisivanja" + +#: kdiff3.cpp:707 pdiff.cpp:1940 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Upisivanje rezultata stapanja nije uspelo." + +#: kdiff3.cpp:718 pdiff.cpp:1051 +#, kde-format +msgid "" +"You are currently doing a directory merge. Are you sure, you want to abort?" +msgstr "Trenutno stapate fascikle. Želite li zaista da obustavite ovo?" + +#: kdiff3.cpp:741 +#, kde-format +msgid "Saving file..." +msgstr "Upisujem fajl..." + +#: kdiff3.cpp:758 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Upisujem fajl pod novim imenom..." + +# >> @title:window +#: kdiff3.cpp:760 +#, kde-format +msgid "Save As..." +msgstr "Upisivanje kao" + +#: kdiff3.cpp:819 +#, kde-format +msgid "Printing not implemented." +msgstr "Štampanje nije izvedeno." + +#: kdiff3.cpp:858 +#, kde-format +msgid "Printing..." +msgstr "Štampam..." + +#: kdiff3.cpp:948 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:1006 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "Izbor" + +#: kdiff3.cpp:1034 +#, kde-format +msgid "Printing completed." +msgstr "Štampanje završeno." + +#: kdiff3.cpp:1038 +#, kde-format +msgid "Printing aborted." +msgstr "Štampanje obustavljeno." + +#: kdiff3.cpp:1045 +#, kde-format +msgid "Exiting..." +msgstr "Napuštam..." + +#: kdiff3.cpp:1056 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Prebacujem traku alatki..." + +#: kdiff3.cpp:1077 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Prebacujem traku stanja..." + +#: kdiff3_part.cpp:45 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3 deo" + +#: kdiff3_part.cpp:46 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:48 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:49 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joahim Ajbl" + +#: kdiff3_part.cpp:172 kdiff3_part.cpp:253 +#, fuzzy, kde-format +#| msgid "Couldn't find files for comparison." +msgid "Could not find files for comparison." +msgstr "Ne mogu da nađem fajlove za poređenje." + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Podesi KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:89 +#, kde-format +msgid "KDiff3" +msgstr "&KDiff3" + +#: kdiff3_shell.cpp:74 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Ne mogu da pripremim KDiff3 deo.\n" +"Ovo je obično problem u instalaciji. Pročitajte fajl ‘README’ iz izvornog " +"paketa za više detalja." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Fajl" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "&Directory" +msgstr "F&ascikla" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Postupak stapanja tekuće stavke" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Postupak sinhronizovanja tekuće stavke" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "&Kretanje" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "Prikaz &razlike" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Stopi" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Pro&zor" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Glavna traka" + +#: main.cpp:69 main.cpp:73 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorisano (korisnički definisano)." + +#: main.cpp:93 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:95 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:96 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Directories" +msgstr "Alatka za poređenje i stapanje fajlova i fascikli" + +#: main.cpp:97 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:113 +#, kde-format +msgid "Merge the input." +msgstr "Stopi ulaz." + +#: main.cpp:114 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Izričit bazni fajl. Za saglasnost sa pojedinim alatkama." + +#: main.cpp:115 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Izlazni fajl. Implicira -m. Npr: -o novifajl.txt" + +#: main.cpp:116 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Izlazni fajl, ponovo. Za saglasnost sa pojedinim alatkama." + +#: main.cpp:118 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "Bez GUI‑ja ako su svi sukobi rešivi automatski. Zahteva -o fajl." + +#: main.cpp:120 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:122 +#, fuzzy, kde-format +#| msgid "Don't solve conflicts automatically. (For compatibility...)" +msgid "Do not solve conflicts automatically." +msgstr "Ne rešavaj sukobe automatski. Za saglasnost..." + +#: main.cpp:123 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Zamena vidljivog imena za ulazni fajl 1 (bazni)." + +#: main.cpp:124 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Zamena vidljivog imena za ulazni fajl 2." + +#: main.cpp:125 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Zamena vidljivog imena za ulazni fajl 3." + +#: main.cpp:126 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Alternativna zamena vidljivog imena. Zadajte ovo jednom za svaki ulaz." + +#: main.cpp:127 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Potisni postavku iz postave. Upotrebite jednom za svaku postavku. Npr: --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:128 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Nabroji postavke i trenutne vrednosti iz postave." + +#: main.cpp:129 +#, kde-format +msgid "Use a different config file." +msgstr "Upotrebi drugi postavni fajl." + +#: main.cpp:132 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Fajl 1 za otvaranje (bazni, ako nije naveden preko --base)." + +#: main.cpp:133 +#, kde-format +msgid "file2 to open" +msgstr "Fajl 2 za otvaranje." + +#: main.cpp:134 +#, kde-format +msgid "file3 to open" +msgstr "Fajl 3 za otvaranje." + +#: main.cpp:158 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: mergeresultwindow.cpp:171 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Svuda izaberi A" + +#: mergeresultwindow.cpp:172 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Svuda izaberi B" + +#: mergeresultwindow.cpp:173 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Svuda izaberi C" + +#: mergeresultwindow.cpp:174 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Izaberi A za sve nerešene sukobe" + +#: mergeresultwindow.cpp:175 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Izaberi B za sve nerešene sukobe" + +#: mergeresultwindow.cpp:176 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Izaberi C za sve nerešene sukobe" + +#: mergeresultwindow.cpp:177 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Izaberi A za sve nerešene sukobe praznina" + +#: mergeresultwindow.cpp:178 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Izaberi B za sve nerešene sukobe praznina" + +#: mergeresultwindow.cpp:179 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Izaberi C za sve nerešene sukobe praznina" + +#: mergeresultwindow.cpp:204 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Broj preostalih nerešenih sukoba: %1 (od čega %2 praznine)." + +#: mergeresultwindow.cpp:398 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Izlaz je izmenjen.\n" +"Ako nastavite izmene će biti izgubljene." + +#: mergeresultwindow.cpp:964 pdiff.cpp:838 +#, kde-format +msgid "All input files are binary equal." +msgstr "Svi ulazni fajlovi binarno su jednaki." + +#: mergeresultwindow.cpp:966 +#, kde-format +msgid "All input files contain the same text." +msgstr "Svi ulazni fajlovi sadrže isti tekst." + +#: mergeresultwindow.cpp:970 mergeresultwindow.cpp:974 +#: mergeresultwindow.cpp:978 pdiff.cpp:844 pdiff.cpp:848 pdiff.cpp:852 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Fajlovi %1 i %2 binarno su jednaki.\n" + +#: mergeresultwindow.cpp:972 mergeresultwindow.cpp:976 +#: mergeresultwindow.cpp:980 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Fajlovi %1 i %2 sadrže isti tekst.\n" + +#: mergeresultwindow.cpp:986 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Nr of automatically solved conflicts: %2\n" +"Nr of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:992 +#, kde-format +msgid "Conflicts" +msgstr "Sukobi" + +#: mergeresultwindow.cpp:1901 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1909 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1911 mergeresultwindow.cpp:2783 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2995 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Još nisu rešeni svi sukobi.\n" +"Fajl nije sačuvan.\n" + +#: mergeresultwindow.cpp:2997 mergeresultwindow.cpp:3006 +#, kde-format +msgid "Conflicts Left" +msgstr "Preostali sukobi" + +#: mergeresultwindow.cpp:3004 +#, fuzzy, kde-format +#| msgid "" +#| "There is a line end style conflict. Please choose the line end style " +#| "manually.\n" +#| "File not saved.\n" +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Sukob u stilu završetaka redova. Izaberite ručno stil završetka redova.\n" +"Fajl nije sačuvan.\n" + +#: mergeresultwindow.cpp:3018 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Pravljenje rezerve nije uspelo. Fajl nije sačuvan." + +#: mergeresultwindow.cpp:3018 mergeresultwindow.cpp:3066 +#, kde-format +msgid "File Save Error" +msgstr "Greška upisivanja fajla" + +#: mergeresultwindow.cpp:3066 +#, kde-format +msgid "Error while writing." +msgstr "Greška pri pisanju." + +#: mergeresultwindow.cpp:3138 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "Izlaz" + +#: mergeresultwindow.cpp:3151 mergeresultwindow.cpp:3343 +#, kde-format +msgid "[Modified]" +msgstr "[izmenjen]" + +#: mergeresultwindow.cpp:3158 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "Kodiranje za upisivanje" + +#: mergeresultwindow.cpp:3258 +#, kde-format +msgid "Conflict" +msgstr "Sukob" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3290 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "Kodiranje iz" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3292 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "Kodiranje iz" + +# >! Merge sentence. +#: mergeresultwindow.cpp:3294 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "Kodiranje iz" + +#: optiondialog.cpp:121 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:137 optiondialog.cpp:147 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:390 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:391 +#, kde-format +msgid "Latin1" +msgstr "latinica‑1" + +#: optiondialog.cpp:410 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Izmenite ovo ako su ne-ASCII znakovi pogrešno prikazani." + +# >> @title:window +#: optiondialog.cpp:495 +#, kde-format +msgid "Configure" +msgstr "Podešavanje" + +#: optiondialog.cpp:573 +#, kde-format +msgid "Font" +msgstr "Font" + +#: optiondialog.cpp:575 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Font uređivača i izlaza razlike" + +#: optiondialog.cpp:594 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:599 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "Greška upisivanja fajla" + +#: optiondialog.cpp:618 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Boja" + +#: optiondialog.cpp:619 +#, kde-format +msgid "Colors Settings" +msgstr "Postavke boja" + +#: optiondialog.cpp:644 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Uređivač i prikazi razlika:" + +#: optiondialog.cpp:652 +#, kde-format +msgid "Foreground color:" +msgstr "Boja teksta:" + +#: optiondialog.cpp:660 +#, kde-format +msgid "Background color:" +msgstr "Boja pozadine:" + +#: optiondialog.cpp:670 +#, kde-format +msgid "Diff background color:" +msgstr "Boja pozadine razlika:" + +#: optiondialog.cpp:679 +#, kde-format +msgid "Color A:" +msgstr "Boja A:" + +#: optiondialog.cpp:688 +#, kde-format +msgid "Color B:" +msgstr "Boja B:" + +#: optiondialog.cpp:697 +#, kde-format +msgid "Color C:" +msgstr "Boja C:" + +#: optiondialog.cpp:705 +#, kde-format +msgid "Conflict color:" +msgstr "Boja sukoba:" + +#: optiondialog.cpp:714 +#, kde-format +msgid "Current range background color:" +msgstr "Pozadinska boja tekućeg opsega:" + +#: optiondialog.cpp:723 +#, kde-format +msgid "Current range diff background color:" +msgstr "Pozadinska boja tekućeg opsega razlika:" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Boja ručno poravnatih opsega razlika:" + +#: optiondialog.cpp:738 +#, kde-format +msgid "Directory Comparison View:" +msgstr "Prikaz poređenja fascikli:" + +#: optiondialog.cpp:744 +#, kde-format +msgid "Newest file color:" +msgstr "Boja najnovijeg fajla:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next directory " +"comparison." +msgstr "Izmena ove boje stupiće na snagu od prvog narednog poređenja fascikli." + +#: optiondialog.cpp:754 +#, kde-format +msgid "Oldest file color:" +msgstr "Boja najstarijeg fajla:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Middle age file color:" +msgstr "Boja fajla srednje starosti:" + +#: optiondialog.cpp:772 +#, kde-format +msgid "Color for missing files:" +msgstr "Boja za nedostajuće fajlove:" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Editor" +msgstr "Uređivač" + +#: optiondialog.cpp:787 +#, kde-format +msgid "Editor Behavior" +msgstr "Ponašanje uređivača" + +# skip-rule: t-tab +#: optiondialog.cpp:809 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab umeće razmake" + +# rewrite-msgid: /generate/insert/ +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Uključeno: pritiskom Taba umeće se odgovarajući broj razmaka.\n" +"Isključeno: umeće se znak tabulatora." + +#: optiondialog.cpp:818 +#, kde-format +msgid "Tab size:" +msgstr "Veličina tabulatora:" + +#: optiondialog.cpp:825 +#, kde-format +msgid "Auto indentation" +msgstr "Automatsko uvlačenje" + +#: optiondialog.cpp:829 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Uključeno: uvlačenje prethodnog reda uzima se za novi red.\n" + +#: optiondialog.cpp:832 +#, kde-format +msgid "Auto copy selection" +msgstr "Automatsko kopiranje izbora" + +#: optiondialog.cpp:836 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Uključeno: svaki izbor se odmah upisuje u klipbord.\n" +"Isključeno: morate izričito kopirati, npr. pomoću Ctrl+C." + +#: optiondialog.cpp:851 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Postavlja završetke redova kada se izmenjeni fajl sačuva.\n" +"DOS/Windows CR+LF, Unix LF, gde je CR=0D, LF=0A." + +#: optiondialog.cpp:861 +#, kde-format +msgid "Diff" +msgstr "Razlikovanje" + +#: optiondialog.cpp:862 +#, kde-format +msgid "Diff Settings" +msgstr "Postavke razlikovanja" + +# >! Merge sentence. +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options.m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:896 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore numbers (treat as white space)" +msgstr "Tretiraj kao praznine." + +#: optiondialog.cpp:900 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignoriši cifarske znakove u fazi poklapanja redova (slično ignorisanju " +"praznina).\n" +"Može biti korisno pri poređenju fajlova sa numeričkim podacima." + +#: optiondialog.cpp:904 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Tretiraj C/C++ komentare kao praznine." + +#: optiondialog.cpp:907 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Tretiraj C/C++ komentare kao praznine." + +# >! Merge sentence. +#: optiondialog.cpp:910 +#, fuzzy, kde-format +#| msgid "Treat as white space." +msgid "Ignore case (treat as white space)" +msgstr "Tretiraj kao praznine." + +#: optiondialog.cpp:914 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Tretira razliku u veličini kao promene u prazninama (‘a’ jednako ‘A’)." + +#: optiondialog.cpp:917 +#, kde-format +msgid "Preprocessor command:" +msgstr "Predobradna naredba:" + +#: optiondialog.cpp:922 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Korisnički definisana predobrada. Pogledajte dokumentaciju za detalje." + +#: optiondialog.cpp:925 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Predobradna naredba za poklapanje redova:" + +#: optiondialog.cpp:930 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Predobrada se koristi samo tokom poklapanja redova.\n" +"Pogledajte dokumentaciju za detalje." + +#: optiondialog.cpp:933 +#, kde-format +msgid "Try hard (slower)" +msgstr "Potrudi se (sporije)" + +#: optiondialog.cpp:937 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Uključuje opciju --minimal za spoljašnje razlikovanje.\n" +"Analiza velikih fajlova će biti mnogo sporija." + +#: optiondialog.cpp:941 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Poravnaj B i C za tri ulazna fajla" + +#: optiondialog.cpp:945 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Pokušava da poravna B i C pri poređenju ili stapanju tre ulazna fajla.\n" +"Nije preporučljivo za stapanje zato što ga može učiniti složenijim.\n" +"Podrazumevano je isključeno." + +#: optiondialog.cpp:956 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Stopi" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Merge Settings" +msgstr "Postavke stapanja" + +#: optiondialog.cpp:980 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Zastoj automatskog napredovanja (ms):" + +#: optiondialog.cpp:986 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"U režimu automatskog napredovanja rezultat tekućeg izbora prikazuje se \n" +"zadato vreme pre skoka na sledeći sukob. Opseg: 0–2000 ms." + +#: optiondialog.cpp:990 +#, kde-format +msgid "Show info dialogs" +msgstr "Prikazuj informativne dijaloge" + +#: optiondialog.cpp:993 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Prikazuje dijalog sa informacijom o broju sukoba." + +#: optiondialog.cpp:996 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Podrazumevano stapanje praznina dva fajla:" + +#: optiondialog.cpp:1001 optiondialog.cpp:1014 +#, kde-format +msgid "Manual Choice" +msgstr "Ručni izbor" + +#: optiondialog.cpp:1005 optiondialog.cpp:1019 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Dozvoljava algoritmu stapanja da automatski izabere ulaz za izmene samo u " +"prazninama." + +#: optiondialog.cpp:1009 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Podrazumevano stapanje praznina tri fajla:" + +#: optiondialog.cpp:1023 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Regularni izraz za automatsko stapanje" + +#: optiondialog.cpp:1031 smalldialogs.cpp:459 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Regularni izraz za automatsko stapanje:" + +#: optiondialog.cpp:1036 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Regularni izraz za redove gde KDiff3 treba da automatski izabere jedan od " +"izvora. Kad regularni izraz poklopi red sa sukobom bira se C ako ga ima, " +"inače B." + +#: optiondialog.cpp:1042 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Automatski stopi po regularnom izrazu na početku stapanja" + +#: optiondialog.cpp:1045 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "Sprovodi stapanje regularnim izrazom čim stapanje počne.\n" + +#: optiondialog.cpp:1050 +#, kde-format +msgid "Version Control History Merging" +msgstr "Stapanje istorijata upravljanja verzijama" + +#: optiondialog.cpp:1058 smalldialogs.cpp:486 +#, kde-format +msgid "History start regular expression:" +msgstr "Regularni izraz za početak istorijata:" + +# literal-segment: Log +#: optiondialog.cpp:1063 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Regularni izraz za početak unosa u istorijatu upravljanja verzijama.\n" +"Ovaj red obično sadrži ključnu reč „$Log$“.\n" +"Podrazumevana vrednost je „.*\\$Log.*\\$.*“." + +#: optiondialog.cpp:1069 smalldialogs.cpp:514 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Regularni izraz za početak unosa istorijata:" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Unos u istorijatu upravljanja verzijama čini nekoliko redova.\n" +"Zadajte regularni izraz za otkrivanje prvog reda (bez vodećeg komentara).\n" +"Koristite zagrade da grupišete ključeve po kojima će se ređati.\n" +"Ako se ostavi prazno, KDiff3 uzima da su unosi istorijata razdvojeni praznim " +"redovima.\n" +"Detalje potražite u dokumentaciji." + +#: optiondialog.cpp:1090 +#, kde-format +msgid "History merge sorting" +msgstr "Ređanje u stapanju istorijata" + +#: optiondialog.cpp:1093 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Ređa istorijat upravljanja verzijama po ključu." + +#: optiondialog.cpp:1103 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Redosled ređanja za ključeve unosa istorijata:" + +#: optiondialog.cpp:1108 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Svaki par zagrada upotrebljen u regularnom izrazu za početak unosa " +"istorijata grupiše ključ koji može poslužiti za ređanje.\n" +"Zadajte spisak ključeva (numerisanih po redu pojavljivanja počev od 1) sa " +"zapetom kao razdvajačem (npr. „4,5,6,1,2,3,7“).\n" +"Ako se ostavi prazno, ređanje se ne sprovodi.\n" +"Detalje potražite u dokumentaciji." + +#: optiondialog.cpp:1119 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Stopi istorijat upravljanja verzijama na početku stapanja" + +#: optiondialog.cpp:1122 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Automatski stapa istorijat upravljanja verzijama na početku stapanja." + +#: optiondialog.cpp:1126 +#, kde-format +msgid "Max number of history entries:" +msgstr "Najveći broj unosa istorijata:" + +# skip-rule: t-cut +#: optiondialog.cpp:1130 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Odseca iznad zadatog broja. Stavite -1 za neograničen broj unosa." + +# >> @action:button +#: optiondialog.cpp:1134 +#, kde-format +msgid "Test your regular expressions" +msgstr "Isprobaj regularne izraze" + +#: optiondialog.cpp:1139 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Naredba pri beznačajnom stapanju:" + +#: optiondialog.cpp:1144 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Ako se zada, ova skripta se poziva kad posle automatskog stapanja nema " +"nikakvih preostalih izmena.\n" +"Poziva se sa argumentima: ime‑fajla‑1 ime‑fajla‑2 ime‑fajla‑3" + +#: optiondialog.cpp:1149 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Automatski sačuvaj i napusti pri stapanju bez sukoba" + +#: optiondialog.cpp:1153 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Ako se KDiff3 pokrene iz komandne linije radi stapanja fajlova, i svi sukobi " +"su razrešivi bez intervenisanja korisnika, tada se automatski rezultati " +"upisuju i program napušta.\n" +"Slično opciji komandne linije --auto." + +#: optiondialog.cpp:1164 optiondialog.cpp:1165 +#, kde-format +msgid "Directory" +msgstr "Fascikla" + +#: optiondialog.cpp:1185 +#, kde-format +msgid "Recursive directories" +msgstr "Rekurzivno kroz fascikle" + +#: optiondialog.cpp:1188 +#, kde-format +msgid "Whether to analyze subdirectories or not." +msgstr "Da li analizirati potfascikle." + +#: optiondialog.cpp:1190 +#, kde-format +msgid "File pattern(s):" +msgstr "Obrasci fajlova:" + +#: optiondialog.cpp:1196 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Obrasci za fajlove koje treba analizirati.\n" +"Džokeri: ‘*’ i ‘?’\n" +"Više obrazaca navodite sa tačka-zapetom kao razdvajačem." + +#: optiondialog.cpp:1201 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Protivobrasci fajlova:" + +#: optiondialog.cpp:1207 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Obrasci za fajlove koje treba isključiti iz analize.\n" +"Džokeri: ‘*’ i ‘?’\n" +"Više obrazaca navodite sa tačka-zapetom kao razdvajačem." + +#: optiondialog.cpp:1212 +#, kde-format +msgid "Dir-anti-pattern(s):" +msgstr "Protivobrasci fascikli:" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "" +"Pattern(s) of directories to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Obrasci za fascikle koje treba isključiti iz analize.\n" +"Džokeri: ‘*’ i ‘?’\n" +"Više obrazaca navodite sa tačka-zapetom kao razdvajačem." + +#: optiondialog.cpp:1223 +#, kde-format +msgid "Use .cvsignore" +msgstr "Koristi .cvsignore" + +#: optiondialog.cpp:1227 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by CVS.\n" +"Via local \".cvsignore\" files this can be directory specific." +msgstr "" +"Proširuje protivobrasce na sve što bi ignorisao CVS.\n" +"Preko lokalnih fajlova .cvsignore ovo može biti posebno po fascikli." + +#: optiondialog.cpp:1231 +#, kde-format +msgid "Find hidden files and directories" +msgstr "Pronađi skrivene fajlove i fascikle" + +#: optiondialog.cpp:1234 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and directories." +msgstr "Pronađi skrivene fajlove i fascikle" + +#: optiondialog.cpp:1237 +#, kde-format +msgid "Follow file links" +msgstr "Prati veze fajlova" + +#: optiondialog.cpp:1241 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Uključeno: poredi fajlove na koje pokazuju veze.\n" +"Isključeno: poredi veze." + +#: optiondialog.cpp:1245 +#, kde-format +msgid "Follow directory links" +msgstr "Prati veze fascikli" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "" +"On: Compare the directory the link points to.\n" +"Off: Compare the links." +msgstr "" +"Uključeno: poredi fascikle na koje pokazuju veze.\n" +"Isključeno: poredi veze." + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Poređenje imena fajlova razlikuje veličinu slova" + +#: optiondialog.cpp:1262 +#, kde-format +msgid "" +"The directory comparison will compare files or directories when their names " +"match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Poređenje fascikli upoređuje fajlove i fascikle čija se imena poklapaju. " +"Zadajte ovu opciju imena treba da se poklapaju i po veličini slova. " +"Podrazumevano je isključeno pod Windowsom, inače je uključeno." + +#: optiondialog.cpp:1266 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subdirectories on load" +msgstr "Raširi sve potfascikle" + +#: optiondialog.cpp:1270 +#, kde-format +msgid "" +"On: Unfold all subdirectories when starting a directory diff.\n" +"Off: Leave subdirectories folded." +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "Skip directory status report" +msgstr "" + +#: optiondialog.cpp:1278 +#, kde-format +msgid "" +"On: Do not show the Directory Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1282 +#, kde-format +msgid "File Comparison Mode" +msgstr "Režim poređenja fajlova" + +#: optiondialog.cpp:1287 +#, kde-format +msgid "Binary comparison" +msgstr "Binarno poređenje" + +#: optiondialog.cpp:1289 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binarno poređenje za svaki fajl (podrazumevano)." + +#: optiondialog.cpp:1292 +#, kde-format +msgid "Full analysis" +msgstr "Puna analiza" + +#: optiondialog.cpp:1294 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Sprovodi punu analizu i daje statističke podatke u dodatnim kolonama.\n" +"Sporije nego binarno poređenje, mnogo sporije za binarne fajlove." + +#: optiondialog.cpp:1298 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Veruj veličini i datumu izmene (nesigurno)" + +#: optiondialog.cpp:1300 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big directories or slow networks." +msgstr "" +"Pretpostavlja da su fajlovi jednaki ako su im jednaki datumi izmene i " +"veličine.\n" +"Fajlovi sa istim sadržajem ali različitim datumom izmene smatraće se " +"različitim.\n" +"Korisno za velike fascikle ili spore mreže." + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Veruj veličini i datumu, ali binarno uporedi ako se datum ne poklapa " +"(nesigurno)" + +#: optiondialog.cpp:1307 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big directories or slow networks." +msgstr "" +"Pretpostavlja da su fajlovi jednaki ako su im jednaki datumi izmene i " +"veličine.\n" +"Ako datumi nisu isti ali veličina jeste, binarno upoređuje.\n" +"Korisno za velike fascikle ili spore mreže." + +#: optiondialog.cpp:1312 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Veruj veličini (nesigurno)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big directories or slow networks when the date is modified during " +"download." +msgstr "" +"Pretpostavlja da su fajlovi jednaki ako im jednake veličine.\n" +"Korisno za velike fascikle ili spore mreže kada se datum izmeni tokom " +"preuzimanja." + +#: optiondialog.cpp:1321 +#, kde-format +msgid "Synchronize directories" +msgstr "Sinhronizuj fascikle" + +#: optiondialog.cpp:1325 +#, kde-format +msgid "" +"Offers to store files in both directories so that\n" +"both directories are the same afterwards.\n" +"Works only when comparing two directories without specifying a destination." +msgstr "" +"Nudi da skladišti fajlove u obe fascikle tako da ispadnu iste posle toga.\n" +"Radi samo kada se porede dve fascikle bez zadavanja odredišta." + +#: optiondialog.cpp:1331 +#, kde-format +msgid "White space differences considered equal" +msgstr "Razlike u prazninama smatraju se jednakim" + +#: optiondialog.cpp:1335 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Ako se fajlovi razlikuju samo u prazninama, smatraju se jednakim.\n" +"Ovo je aktivno samo kada se izabere puna analiza." + +# >> copy newer file +#: optiondialog.cpp:1341 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopiraj noviji umesto stapanja (nesigurno)" + +#: optiondialog.cpp:1345 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two directories." +msgstr "" +"Ne gleda sadržaj, samo uzima noviji fajl.\n" +"Koristite ovo samo ako znate šta radite!\n" +"Ima efekta samo pri poređenju dve fascikle." + +#: optiondialog.cpp:1350 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Pravi rezerve fajlova (.orig)" + +#: optiondialog.cpp:1354 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Kada fajl treba da bude sačuvan preko starog fajla, stari fajl biva " +"preimenovan sa nastavkom .orig umesto da bude obrisan." + +# rewrite-msgid: /Regional/Locale/ +#: optiondialog.cpp:1430 optiondialog.cpp:1431 +#, kde-format +msgid "Regional Settings" +msgstr "Postavke lokaliteta" + +#: optiondialog.cpp:1454 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Isto kodiranje za sve:" + +#: optiondialog.cpp:1458 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Uključivanjem ovog možete promeniti sva kodiranja promenom samo prvog.\n" +"Isključite ovo ako pojedine postavke treba da budu različite." + +# >! Merge sentence. +#: optiondialog.cpp:1462 +#, fuzzy, kde-format +#| msgid "Note: Local Encoding is " +msgid "Note: Local Encoding is \"%1\"" +msgstr "Napomena: lokalno kodiranje je " + +#: optiondialog.cpp:1466 +#, kde-format +msgid "File Encoding for A:" +msgstr "Kodiranje fajla za A:" + +#: optiondialog.cpp:1473 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Ako je uključeno, biće otkrivana Unicode (UTF‑16 ili UTF‑8) kodiranja.\n" +"Ako fajl nije Unicode izabrano kodiranje će biti upotrebljeno kao odstupno.\n" +"Otkrivanje Unicodea zavisi od prvih bajtova u fajlu." + +#: optiondialog.cpp:1476 optiondialog.cpp:1487 optiondialog.cpp:1498 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Automatski otkrij Unicode" + +#: optiondialog.cpp:1482 +#, kde-format +msgid "File Encoding for B:" +msgstr "Kodiranje fajla za B:" + +#: optiondialog.cpp:1493 +#, kde-format +msgid "File Encoding for C:" +msgstr "Kodiranje fajla za C:" + +#: optiondialog.cpp:1504 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Kodiranje fajla za stopljeni izlaz i upisivanje:" + +#: optiondialog.cpp:1509 +#, kde-format +msgid "Auto Select" +msgstr "Automatski izaberi" + +#: optiondialog.cpp:1513 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Ako je uključeno, uzima se kodiranje prema ulaznim fajlovima.\n" +"U dvosmislenim slučajevima izdaje se dijalog gde korisnik bira kodiranje za " +"upisivanje." + +#: optiondialog.cpp:1516 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Kodiranje fajla za predobradne fajlove:" + +#: optiondialog.cpp:1528 +#, kde-format +msgid "Right To Left Language" +msgstr "Jezici zdesna ulevo" + +#: optiondialog.cpp:1532 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Neki jezici se čitaju zdesna ulevo.\n" +"Ova postavka prilagođava tome prikazivač i uređivač." + +#: optiondialog.cpp:1542 +#, kde-format +msgid "Integration" +msgstr "Uklapanje" + +#: optiondialog.cpp:1543 +#, kde-format +msgid "Integration Settings" +msgstr "Postavke uklapanja" + +#: optiondialog.cpp:1564 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Zanemari opcije komandne linije:" + +#: optiondialog.cpp:1570 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Spisak opcija komandne linije koje treba zanemariti kada se KDiff3 poziva " +"kroz druge alatke.\n" +"Više vrednosti možete zadati razdvojene tačka-zapetom.\n" +"Ovim se suzbija greška „nepoznata opcija“." + +#: optiondialog.cpp:1575 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Napuštanje i preko tastera Esc" + +#: optiondialog.cpp:1579 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Brz način napuštanja.\n" +"Za one naviknute na taster Esc u ovu svrhu." + +#: optiondialog.cpp:1653 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Ovo resetuje sve opcije, i to ne samo one u tekućoj temi." + +#: pdiff.cpp:78 pdiff.cpp:92 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Greška, gubitak podataka:\n" +"Ako je možete ponoviti, kontaktirajte autora.\n" + +#: pdiff.cpp:80 pdiff.cpp:94 +#, kde-format +msgid "Severe Internal Error" +msgstr "Ozbiljna unutrašnja greška" + +#: pdiff.cpp:122 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Naredba predobrade: " + +#: pdiff.cpp:127 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Sledeće opcije koje ste izabrali mogu izmeniti podatke:\n" + +#: pdiff.cpp:128 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Vrlo verovatno ne želite ovo prilikom stapanja.\n" +"Želite li da isključite ove postavke ili da nastavite dalje sa njima?" + +#: pdiff.cpp:130 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Opcija nesigurna za stapanje" + +#: pdiff.cpp:131 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Koristi ove opcije pri stapanju" + +#: pdiff.cpp:132 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Isključi nesigurne opcije" + +# >> @info:progress +#: pdiff.cpp:160 +#, kde-format +msgid "Loading A" +msgstr "Učitavam A" + +# >> @info:progress +#: pdiff.cpp:162 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "Učitavam A" + +# >> @info:progress +#: pdiff.cpp:170 +#, kde-format +msgid "Loading B" +msgstr "Učitavam B" + +# >> @info:progress +#: pdiff.cpp:201 pdiff.cpp:237 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Razlikujem A i B" + +# >> @info:progress +#: pdiff.cpp:207 pdiff.cpp:275 pdiff.cpp:289 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Razlikujem redove A i B" + +# >> @info:progress +#: pdiff.cpp:224 +#, kde-format +msgid "Loading C" +msgstr "Učitavam C" + +# >> @info:progress +#: pdiff.cpp:246 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Razlikujem A i C" + +# >> @info:progress +#: pdiff.cpp:257 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Razlikujem B i C" + +# >> @info:progress +#: pdiff.cpp:279 pdiff.cpp:293 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Razlikujem redove B i C" + +# >> @info:progress +#: pdiff.cpp:283 pdiff.cpp:297 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Razlikujem redove A i C" + +#: pdiff.cpp:840 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Svi ulazni fajlovi sadrže isti tekst, ali nisu binarno jednaki." + +#: pdiff.cpp:846 pdiff.cpp:850 pdiff.cpp:854 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Fajlovi %1 i %2 imaju isti tekst ali nisu binarno jednaki.\n" + +#: pdiff.cpp:864 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Izgleda da neki ulazni fajlovi nisu čisto tekstualni.\n" +"Imajte na umu da stapanje u KDiff3 nije namenjeno binarnim podacima.\n" +"Nastavite na sopstvenu odgovornost." + +#: pdiff.cpp:874 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:876 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:878 +#, fuzzy, kde-format +#| msgid "" +#| "Some input characters could not be converted to valid unicode.\n" +#| "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +#| "Don't save the result if unsure. Continue at your own risk.\n" +#| "Affected input files are in %1." +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Neke ulazni znakovi ne mogu da se pretvore u Unicode.\n" +"Možda ste izabrali pogrešno kodiranje (npr. UTF‑8 za ne-UTF‑8 fajlove).\n" +"Ne upisujte rezultat ako niste sigurni. Nastavite na sopstvenu odgovornost.\n" +"Pogođeni ulazni fajlovi nalaze se u %1." + +#: pdiff.cpp:1053 +#, kde-format +msgid "Abort" +msgstr "Obustavi" + +#: pdiff.cpp:1059 pdiff.cpp:1150 +#, kde-format +msgid "Opening files..." +msgstr "Otvaram fajlove..." + +#: pdiff.cpp:1222 +#, kde-format +msgid "Cutting selection..." +msgstr "Isecam izabrano..." + +#: pdiff.cpp:1243 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopiram izbor u klipbord..." + +#: pdiff.cpp:1259 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Umećem sadržaj klipborda..." + +#: pdiff.cpp:1715 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1716 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1931 +#, kde-format +msgid "Save && Continue" +msgstr "Sačuvaj i nastavi" + +#: pdiff.cpp:1932 +#, kde-format +msgid "Continue Without Saving" +msgstr "Nastavi bez upisivanja" + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search complete." +msgstr "Pretraga je gotova." + +#: pdiff.cpp:2144 +#, kde-format +msgid "Search Complete" +msgstr "Pretraga završena" + +#: pdiff.cpp:2395 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ništa nije izabrano ni u jednom prozoru ulaza razlike." + +#: pdiff.cpp:2395 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Greška pri dodavanju ručnog opsega razlike" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Odustani" + +#: smalldialogs.cpp:61 +#, kde-format +msgid "A (Base):" +msgstr "A (baza):" + +#: smalldialogs.cpp:71 smalldialogs.cpp:90 smalldialogs.cpp:109 +#: smalldialogs.cpp:154 +#, kde-format +msgid "File..." +msgstr "Fajl..." + +#: smalldialogs.cpp:73 smalldialogs.cpp:92 smalldialogs.cpp:111 +#: smalldialogs.cpp:156 +#, kde-format +msgid "Dir..." +msgstr "Fascikla..." + +#: smalldialogs.cpp:103 +#, kde-format +msgid "C (Optional):" +msgstr "C (opciono):" + +#: smalldialogs.cpp:126 +#, fuzzy, kde-format +#| msgid "Swap/Copy Names ..." +msgid "Swap/Copy Names..." +msgstr "Razmeni/kopiraj imena..." + +#: smalldialogs.cpp:131 smalldialogs.cpp:132 smalldialogs.cpp:133 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Razmeni %1 i %2" + +#: smalldialogs.cpp:134 smalldialogs.cpp:135 smalldialogs.cpp:136 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopiraj %1 u izlaz" + +#: smalldialogs.cpp:137 smalldialogs.cpp:138 smalldialogs.cpp:139 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Razmeni %1 i izlaz" + +#: smalldialogs.cpp:148 +#, kde-format +msgid "Output (optional):" +msgstr "Izlaz (opciono):" + +#: smalldialogs.cpp:178 +#, kde-format +msgid "Configure..." +msgstr "Podesi..." + +#: smalldialogs.cpp:243 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Open Directory" +msgstr "Fascikla" + +#: smalldialogs.cpp:244 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:403 +#, kde-format +msgid "Search text:" +msgstr "Traženi tekst:" + +#: smalldialogs.cpp:410 +#, kde-format +msgid "Case sensitive" +msgstr "Razlikuj veličinu slova" + +#: smalldialogs.cpp:413 +#, kde-format +msgid "Search A" +msgstr "Pretraži A" + +#: smalldialogs.cpp:418 +#, kde-format +msgid "Search B" +msgstr "Pretraži B" + +#: smalldialogs.cpp:423 +#, kde-format +msgid "Search C" +msgstr "Pretraži C" + +#: smalldialogs.cpp:428 +#, kde-format +msgid "Search output" +msgstr "Izlaz pretrage" + +#: smalldialogs.cpp:435 +#, kde-format +msgid "&Search" +msgstr "&Traži" + +#: smalldialogs.cpp:454 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Proba regularnih izraza" + +#: smalldialogs.cpp:467 +#, kde-format +msgid "Example auto merge line:" +msgstr "Primer reda za automatsko stapanje:" + +#: smalldialogs.cpp:469 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Za probu automatskog stapanja, kopirajte red kakav se nalazi u fajlovima." + +#: smalldialogs.cpp:475 smalldialogs.cpp:503 smalldialogs.cpp:539 +#, kde-format +msgid "Match result:" +msgstr "Rezultat poklapanja:" + +#: smalldialogs.cpp:494 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Primer početnog reda istorijata (sa vodećim komentarom):" + +#: smalldialogs.cpp:496 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopirajte početni red istorijata kakav se nalazi u fajlovima, uključujući i " +"vodeći komentar." + +#: smalldialogs.cpp:522 +#, kde-format +msgid "History sort key order:" +msgstr "Redosled ređanja ključeva istorijata:" + +#: smalldialogs.cpp:530 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Primer početnog reda stavke istorijata (bez vodećeg komentara):" + +#: smalldialogs.cpp:532 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopirajte početni red stavke istorijata kakav se nalazi u fajlovima, ali " +"izostavljajući vodeći komentar." + +#: smalldialogs.cpp:546 +#, kde-format +msgid "Sort key result:" +msgstr "Rezultat ređanja ključeva:" + +#: smalldialogs.cpp:594 smalldialogs.cpp:604 smalldialogs.cpp:624 +#, kde-format +msgid "Match success." +msgstr "Poklapanje je uspelo." + +#: smalldialogs.cpp:598 smalldialogs.cpp:608 smalldialogs.cpp:630 +#, kde-format +msgid "Match failed." +msgstr "Poklapanje nije uspelo." + +#: smalldialogs.cpp:615 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Ne poklapaju se otvorene i zatvorene zagrade u regularnom izrazu." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Upisivanje podataka iz klipborda u privremeni fajl nije uspelo." + +#: SourceData.cpp:157 +#, kde-format +msgid "From Clipboard" +msgstr "Iz klipborda" + +#: SourceData.cpp:348 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Mešavina veza i normalnih fajlova." + +#: SourceData.cpp:440 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:445 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Izgleda da je predobrada propala. Proverite ovu naredbu:\n" +"\n" +" %1\n" +"\n" +"Naredba predobrade će sada biti deaktivirana." + +#: SourceData.cpp:456 SourceData.cpp:525 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:500 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Izgleda da je predobrada poklapanja redova propala. Proverite ovu naredbu:\n" +"\n" +" %1\n" +"\n" +"Predobrada poklapanja redova sada će biti deaktivirana." + +#: Utils.cpp:77 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "Očekivan razmak posle zatvorenog apostrofa." + +#: Utils.cpp:80 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:89 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "Neočekivan apostrof unutar argumenta." + +#: Utils.cpp:96 +#, kde-format +msgid "No program specified." +msgstr "Naredba nije zadata." \ No newline at end of file diff --git a/po/sr@latin/kdiff3fileitemactionplugin.po b/po/sr@latin/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..9c3695d --- /dev/null +++ b/po/sr@latin/kdiff3fileitemactionplugin.po @@ -0,0 +1,125 @@ +# Translation of kdiff3fileitemactionplugin.po into Serbian. +# Chusslove Illich , 2012, 2017. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2019-08-30 07:40+0200\n" +"PO-Revision-Date: 2017-09-28 17:57+0200\n" +"Last-Translator: Chusslove Illich \n" +"Language-Team: Serbian \n" +"Language: sr@latin\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" +"X-Accelerator-Marker: &\n" +"X-Text-Markup: kde4\n" +"X-Environment: kde\n" + +#: kdiff3fileitemaction.cpp:92 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3..." + +# >> %1 file path +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "Compare with %1" +msgstr "Uporedi sa %1" + +# >> %1 file path +#: kdiff3fileitemaction.cpp:130 +#, kde-format +msgid "Merge with %1" +msgstr "Stopi sa %1" + +#: kdiff3fileitemaction.cpp:136 +#, kde-format +msgid "Save '%1' for later" +msgstr "Sačuvaj „%1“ za kasnije" + +#: kdiff3fileitemaction.cpp:142 +#, kde-format +msgid "3-way merge with base" +msgstr "Trostrano stopi sa bazom" + +#: kdiff3fileitemaction.cpp:149 +#, fuzzy, kde-format +#| msgid "Compare with ..." +msgid "Compare with..." +msgstr "Uporedi sa..." + +#: kdiff3fileitemaction.cpp:161 +#, kde-format +msgid "Clear list" +msgstr "Očisti spisak" + +#: kdiff3fileitemaction.cpp:169 +#, kde-format +msgid "Compare" +msgstr "Uporedi" + +#: kdiff3fileitemaction.cpp:175 +#, kde-format +msgid "3 way comparison" +msgstr "Trostrano uporedi" + +#: kdiff3fileitemaction.cpp:179 +#, fuzzy, kde-format +#| msgid "About KDiff3 menu plugin ..." +msgid "About KDiff3 menu plugin..." +msgstr "O priključku menija za KDiff3..." + +#: kdiff3fileitemaction.cpp:287 +#, fuzzy, kde-format +#| msgid "" +#| "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +#| "KDiff3 homepage: http://kdiff3.sourceforge.net\n" +#| "\n" +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Priključak za radnje nad fajlovima KDiff3: © 2011, Joahim Ajbl\n" +"Domaća stranica KDiff3: http://kdiff3.sourceforge.net\n" +"\n" + +# >! Wtf: ...then the branch to merge... +#: kdiff3fileitemaction.cpp:288 +#, fuzzy, kde-format +#| msgid "" +#| "Using the contextmenu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" +#| "\" on second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to directory comparison and merge." +msgstr "" +"Korišćenje proširenja kontekstnog menija:\n" +"Za jednostavno poređenje, izaberite „Uporedi“.\n" +"Ako je drugi fajl negde drugde, prvo sačuvajte prvi fajl. Pojaviće se u " +"podmeniju „Uporedi sa...“. Zatim upotrebite „Uporedi sa...“ nad drugim " +"fajlom.\n" +"Za trostrano stapanje, prvo sačuvajte bazni fajl, zatim na granu za " +"stapanje, pa „Trostrano stopi sa bazom“ na drugoj grani koja će biti " +"odredište.\n" +"Isto važi za poređenje i stapanje fascikli." + +#: kdiff3fileitemaction.cpp:296 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "O priključku za radnje nad fajlovima KDiff3" \ No newline at end of file diff --git a/po/sv/diff_ext.po b/po/sv/diff_ext.po new file mode 100644 index 0000000..3e49352 --- /dev/null +++ b/po/sv/diff_ext.po @@ -0,0 +1,129 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Stefan Asserhäll , 2018, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-04-28 07:53+0200\n" +"Last-Translator: Stefan Asserhäll \n" +"Language-Team: Swedish \n" +"Language: sv\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 20.08.1\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Jämför med %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Sammanfoga med %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "Trevägs sammanfogning med bas" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Spara '%1' till senare" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Jämför med..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Rensa lista" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Jämför" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "Trevägs jämförelse" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Om Diff-Ext..." + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Diff-Ext Copyright © 2003-2006, Sergey Zorin. Alla rättigheter förbehållna.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "Programvaran distribueras enligt licensen BSD-2-Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Vissa utökningar för Kdiff3 © 2006-2013 by Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Konverterad till Qt5/Kf5 av Michael Reeves\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Hemsida för Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Om Diff-Ext3 för Kdiff3 (64-bitar)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Jämför markerade filer" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Jämför '%1' med '%2'" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Spara '%1' för senare åtgärd" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Kunde inte starta Kdiff3. Gör om installation av Kdiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Kommando" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Kommandorad" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext för Kdiff3" \ No newline at end of file diff --git a/po/sv/docs/kdiff3/index.docbook b/po/sv/docs/kdiff3/index.docbook new file mode 100644 index 0000000..478c1f9 --- /dev/null +++ b/po/sv/docs/kdiff3/index.docbook @@ -0,0 +1,4059 @@ + +KDiff3"> + + + + ASCII"> +]> + + + + + + +Handbok &kdiff3; + + + Michael Reeves
reeves.87@gmail.com +
+
+ Joachim Eibl
joachim.eibl snabela gmx.de +
+
+StefanAsserhäll
stefan.asserhall@bredband.net
Översättare
+
+ + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +2019-02-22 +1.08.70 + + + +&kdiff3; är ett verktyg för jämförelser och sammanfogning av filer och kataloger, som +jämför och sammanfogar två eller tre indatafiler med text eller kataloger, +visar skillnaden rad-för-rad och tecken-för-tecken(!), +tillhandahåller en automatisk sammanfogningsfunktion, +har en editor för bekväm upplösning av sammanfogningskonflikter, +erbjuder nätverkstransparens via KIO, +har alternativ för att färglägga eller dölja ändringar av blanktecken och kommentarer, +stöder Unicode, UTF-8 och andra filkodningar, +skriver ut skillnader, +stöder versionshanteringsnyckelord och historiksammanfogning. + +Det här dokumentet beskriver &kdiff3; version 1.9. + + + + + +KDE +kdiff3 +diff +sammanfoga +CVS +trippeljämförelse +jämföra +filer +kataloger +kataloger +versionshantering +trevägs sammanfogning +skillnader på plats +synkronisera +kpart +kio +nätverkstransparent +editor +blanktecken +kommentarer + + +
+ +Inledning +Ännu ett jämförelsegränssnitt? +Det finns flera grafiska jämförelseverktyg. Varför ska du välja &kdiff3;? Låt mig tala om varför jag skrev det. &kdiff3; påbörjades därför att jag var tvungen att göra en svår sammanfogning. Att sammanfoga är nödvändigt när flera personer arbetar med samma fil i ett projekt. En sammanfogning kan vara delvis automatiserad, när sammanfogningsverktyget inte bara har tillgång till de nya ändrade filerna (som kallas "grenar"), utan också originalfilen (som kallas "bas"). Sammanfogningsverktyget väljer automatiskt en ändring som bara gjorts i en gren. När flera bidragsgivare ändrar samma rader, detekterar sammanfogningsverktyget en konflikt som måste lösas manuellt. Sammanfogningen var svår eftersom en bidragsgivare hade ändrat mycket och rättat indenteringen på många ställen. Den andra bidragsgivaren hade också ändrat mycket text i samma fil, vilket orsakade flera konflikter vid sammanfogningen. Verktyget som jag då använde visade bara ändrade rader, men inte vad som hade ändrats inom raden. Det fanns inte heller någon information om var bara indenteringen hade ändrats. Sammanfogningen var en mindre mardröm. Det var alltså början. Den första versionen kunde visa skillnader på en rad, och visade skillnader i blanktecken. Senare tillkom många funktioner för att öka användbarheten. Om du till exempel snabbt vill jämföra en text, kan du kopiera den till klippbordet och klistra in i endera jämförelsefönstret. En funktion som krävde en stor ansträngning var funktionen för katalogjämförelse och sammanfogning, som gjorde programmet till en nästan fullständig filbläddrare. Jag hoppas att &kdiff3; fungerar för dig, också. Ha det så kul! Joachim Eibl (2003) + + +Skärmbilder och funktioner +Den här skärmbilden visar skillnaden mellan två textfiler (med en tidig version av &kdiff3;) + + + + +Trevägs sammanfogning stöds fullständigt. Den är användbar om två personer ändrar kod oberoende av varandra. Originalfilen (basen) används för att hjälpa &kdiff3; att automatiskt välja de riktiga ändringarna. Sammanfogningseditorn under jämförelsefönstren låter dig lösa konflikter, medan utdata du kommer att få visas. Skärmbilden visar tre indatafiler som håller på att' sammanfogas: + + + + + +&kdiff3; hjälper dig också att jämföra och sammanfoga hela kataloger. Den här skärmbilden visar &kdiff3; under en katalogsammanfogning: + + + + + + +Mer funktioner +Rad-för-rad och tecken-för-tecken jämförelsevisning +Genom att använda möjligheterna hos en grafisk färgskärm, visar &kdiff3; exakt vad skillnaderna är. När du måste göra många kodgranskningar, gillar du det här. + + + + + +Se skillnader i blanktecken med en blick +Mellanslag och tabulatorer som skiljer sig åt syns. När rader bara skiljer sig i mängden blanktecken syns det med en blick i sammanfattningskolumnen till vänster. (Inga mer problem om någon ändrar indenteringen.) + + + + + +Trevägsjämförelse +Analysera tre filer och se var de skiljer sig åt. Vänster/mitten/höger fönster kallas A/B/C och har blå/grön/magenta färg. Om en fil är likadan och en annan annorlunda för en rad, så visar färgerna vilken fil som är annorlunda. Den röda färgen betyder att båda de andra filerna är olika. + + + + + +Bekväm sammanfogning av två eller tre indatafiler +&kdiff3; kan användas för att sammanfoga två eller tre indatafiler och sammanfogar automatiskt så mycket som möjligt. Resultatet visas i ett redigerbart fönster där de flesta konflikter kan lösas med ett enda musklick. Välj knapparna ... i respektive fönster A/B/C för att välja källan som ska användas. Du kan också välja mer än en källa. Eftersom utmatningsfönstret är en editor, kan till och med konflikter som behöver ytterligare korrigering lösas här utan att kräva ett annat verktyg. + + +Och ... + + Snabb navigering via knappar. + Ett musklick i sammanfattningskolumnen synkroniserar alla fönster så att samma position visas. + Markera och kopiera från vilket fönster som helst, och klistra in i resultatfönstret för sammanfogning. + Översiktskolumn som visar var ändringar och konflikter finns. + Färgerna kan justeras enligt dina specifika önskemål. + Justerbar flikstorlek. + Alternativ för att infoga mellanslag istället för tabulatortecken. + Öppna filer bekvämt via dialogrutor, eller ange filnamn på kommandoraden. + Sök efter strängar i alla textfönster med menyalternativen RedigeraSök (&Ctrl;F) och RedigeraSök nästa (F3). + Visa radnummer för varje rad. + Klistra in klippbordet eller dra text till ett indatafönster för jämförelse + Nätverkstransparens via KIO. + Kan användas för jämförelsevisning i &kdevelop; 3. + Radbrytning för långa rader. + Stöd för Unicode, UTF-8 och andra kodningar. + Stöd för språk som läses från höger till vänster. + ... + + + + + +Filjämförelse och sammanfogning + +Kommandoradsväljare + +Jämföra två filer: +kdiff3 fil1 fil2 + + + +Sammanfoga två filer: +kdiff3 fil1 fil2 -m + kdiff3 fil1 fil2 -o utdatafil + + + +Jämföra tre filer: +kdiff3 fil1 fil2 fil3 + + + +Sammanfoga tre filer: +kdiff3 fil1 fil2 fil3 -m + kdiff3 fil1 fil2 fil3 -o utdatafil + +Observera att fil1 behandlas som bas för fil2 och fil3. + + +Specialfall: Filer med samma namn +Om alla filer har samma namn men finns i olika kataloger, kan du reducera hur mycket du måste skriva genom att bara ange filnamnet för den första filen. T.ex.: +kdiff3 katalog1/filnamn katalog2 katalog3 + + + +Kommandorad för att starta en katalogjämförelse eller sammanfogning: +Det här är mycket likt, men nu handlar det om kataloger. +kdiff3 katalog1 katalog2 + kdiff3 katalog1 katalog2 -o målkatalog + kdiff3 katalog1 katalog2 katalog3 + kdiff3 katalog1 katalog2 katalog3 -o målkatalog + +För katalogjämförelse och sammanfogning kan du fortsätta att läsa här. + + +Andra kommandoradsväljare +För att se alla tillgängliga kommandoradsväljare, skriv +kdiff3 --help + +Exempel på utmatning: +Väljare: + -m, --merge Sammanfoga indata. + -b, --base file Explicit basfil. För att fungera tillsammans med vissa verktyg. + -o, --output file Utdatafil. Betyder underförstått -m. T.ex.: -o ny_fil.txt + --out file Utdatafil, igen. (för att fungera med vissa verktyg.) + --noauto Ignorera --auto och visa alltid användargränssnittet. + --auto Inget grafiskt gränssnitt om alla konflikter kan lösas automatiskt (kräver -o fil). + --L1 alias1 Synlig ersättning av namn för indatafil 1 (bas). + --L2 alias2 Synlig ersättning av namn för indatafil 2. + --L3 alias3 Synlig ersättning av namn för indatafil 3. + -L, --fname alias Alternativ synlig ersättning av namn. Ange detta en gång för all indata. + --cs string Överskrid en inställning. Använd en gång för varje inställning, t.ex. --cs "AutoAdvance=1" + --confighelp Visa lista med inställningar och nuvarande värden. + --config file Använd en annan inställningsfil. + +Väljaren låter dig justera ett inställningsalternativ som annars bara kan justeras via inställningsdialogrutorna. Men var medveten om att när &kdiff3; avslutas lagras det ändrade värdet tillsammans med andra inställningar. Med kan du ta reda på namnen på tillgängliga alternativ och nuvarande värden. +Via kan du ange en annan inställningsfil. Om du ofta använder &kdiff3; med helt olika inställningar låter det dig enkelt byta mellan dem. + +Kommandoradsväljare som ignoreras +Många personer vill använda &kdiff3; tillsammans med något versionshanteringssystem, men när versionshanteringssystemet anropar &kdiff3; med kommandoradsväljare som &kdiff3; inte känner igen, avslutas &kdiff3; med ett fel. Alternativet Integration i inställningsdialogrutan gör det möjligt att ange kommandoradsväljare som ska ignoreras av &kdiff3;. De visas i användningshjälpen som i det här exemplet: +--väljare Ignoreras. (anvädardefinierad) + + + Kommandoradsväljare att ignorera:En lista med väljare, åtskilda med semikolon ';'. När en av dessa väljare finns på kommenderaden, ignorerar &kdiff3; den och kör utan att rapportera ett fel. (Förval är u;query;html;abort). + +Om det inte är nog, rekommenderas du att skriva ett skalskript som gör översättningen av väljare. + + + + +Dialogrutan Öppna +Eftersom många indatafiler måste kunna väljas, har programmet en särskild öppningsdialogruta: + + + +Öppningsdialogrutan tillåter att filnamnen redigeras för hand, att en fil väljes via filbläddraren med knappen Fil... eller att senast använda filer väljes i kombinationsrutorna. Om du öppnar dialogrutan igen, finns de nuvarande namnen fortfarande där. Den tredje indatafilen krävs inte. Om fältet för C förblir tomt, görs bara en tvåvägs jämförelseanalys. Du kan också välja en katalog med knappen Katalog.... Om en katalog anges för A, startar en katalogjämförelse och sammanfogning. Om A anger en fil, men B, C eller utmatningen anger en katalog, använder &kdiff3; filnamnet från A i de angivna katalogerna. Om kryssrutan Sammanfoga är markerad, blir raden Utmatning redigerbar. Det krävs dock inte att utdatafilens namn anges omedelbart. Du kan också vänta med detta till du sparar. Knappen Anpassa... visar inställningsdialogrutan, så att du kan ställa in alternativ innan analysen utförs. + + +Klistra in eller släpp indata +Ibland vill du jämföra delar av en text som inte är en egen fil. &kdiff3; låter dig också klistra in text från klippbordet i det indatafönster för jämförelse som har fokus. Jämförelseanalysen sker då omedelbart. I öppningsdialogrutan behöver du då inte ange filer, utan bara stänga den via knappen Avbryt. Du kan också använda drag och släpp: Dra en fil från en filhanterare eller markerad text från en editor och släpp den på ett indatafönster för jämförelse. Vad är idén? Ibland innehåller en fil två liknande funktioner, men att kontrollera hur lika de verkligen är blir en stor ansträngning om du först måste skapa två filer och sedan ladda dem. Nu kan du helt enkelt kopiera, klistra in och jämföra de relevanta avsnitten. För närvarande kan du inte dra någonting från &kdiff3;. Bara att släppa indata i jämförelsefönstret stöds. Vissa editorer tolkar fortfarande drag och släpp till ett annat program som klipp ut (istället för kopiera) och klistra in. Ditt ursprungliga data kan då gå förlorat. + + +Jämföra filer och tolka informationen i indatafönstren + + + +InformationsradLängst upp i varje textfönster finns dess "informationsrad". Informationsraderna i indatafönstret innehåller bokstaven A, B eller C, filnamnet och radnumret för den första synliga raden i fönstret. (Observera att fönstret "C" är valfritt.) Varje informationsrad visas i en egen färg. När du väljer en annan fil genom att bläddra eller avslutar redigera filnamnet här genom att trycka på returtangenten, laddas den nya filen och jämförs med filen eller filerna som redan är laddade. FärgläggningDe tre indatafönstren tilldelas bokstäverna A, B och C. A har blå färg, B har grön färg och C har magenta. (Det är förvalda färger, men kan ändras med alternativet Färg i inställningsdialogrutan.) När en skillnad upptäcks visar färgen vilken indatafil som skiljer sig åt. När båda övriga indatafiler skiljer sig åt, är färgen som används för att uttrycka det normalt röd (Konfliktfärg med alternativet Färg i inställningsdialogrutan). Färgschemat är särskilt användbart i fallet med tre indatafiler, som framgår av nästa avsnitt (Sammanfogning). SammanfattningskolumnTill vänster om varje text är "sammanfattningskolumnen". Om skillnader uppstod på en rad, visar sammanfattningskolumnen motsvarande färg. För en skillnad som bara består av blanktecken är sammanfattningen kryssad. För programspråk, där blanktecken inte är så viktiga är det användbart för att se med en blick om något av vikt ändrades. (För C/C++ är blanktecken bara intressanta inne i strängar, i kommentarer, för preprocessorn och i några mycket esoteriska situationer.) Den vertikala linjen som skiljer sammanfattningskolumnen och texten är avbruten om indatafilen inte har några rader där. När radbrytning är aktiverad visas den vertikala linjen med punkter för brutna rader. ÖversiktskolumnPå höger sida är en "översiktskolumn" synlig till vänster om den vertikala rullningslisten. Den visar en komprimerad sammanfattning av indata A. Alla skillnader och konflikter är synliga med en blick. När bara två indatafönster används, syns alla skillnader i rött här, eftersom alla skillnader också är konflikter. En svart rektangel ramar in den synliga delen av indata. För mycket långa indatafiler, där antalet indatarader är större än höjden på översikten i bildpunkter, delar flera indatarader en översiktsrad. En konflikt har prioritet över enkla skillnader, som har prioritet över inga ändringar, så att inga skillnader eller konflikter går förlorade här. Genom att klicka på översiktskolumnen visas motsvarande text. Justera rader manuelltIbland placerar algoritmen fel rader intill varandra, eller så vill du jämföra ett textstycke med text på en helt annan position i den andra filen. I dessa fall kan du manuellt tala om för &kdiff3; att vissa rader ska arrangeras i rak linje. Markera texten som du vill arrangera med musen, som du skulle göra vid kopiera och klistra in i det första jämförelsefönstret och välj därefter JämförelsevyLägg till manuell justering av jämförelse (&Ctrl;Y). En orange rad visas i sammanfattningskolumnen intill den markerade texten. Upprepa det för den andra och (om tillgänglig) tredje jämförelsevyn. &kdiff3; beräknar omedelbart om jämförelsen varje gång du gör det, och radar upp de markerade raderna. Naturligtvis kanske några av raderna som tidigare matchade inte längre matchar. För närvarande stöder inte sammanfogning användning av manuell hjälp vid jämförelse. Manuell ihopfogning och delning av jämförelseavsnittI vissa fall ser &kdiff3; för många eller för få avsnitt att sammanfoga. I ett sådant fall kan du foga ihop eller dela befintliga avsnitt. Lägg till nya avsnitt genom att först markera texten på raderna som hör ihop i något av indatafönstren (som vid kopiering till klippbordet). Välj därefter menyalternativet SammanfogaDela jämförelse vid markering. Delningen görs ovanför den första raden och under den sista raden i den markerade texten. Om du bara vill lägga till ett avsnitt, markera text som börjar på ett annat avsnitts delning. För att foga ihop avsnitt i något indatafönster, markera någonting på raderna i avsnitten som ska fogas ihop. (Du kan också foga ihop flera avsnitt i ett steg.) Välj därefter menyalternativet SammanfogaFoga ihop markerade jämförelser. + + + +Sammanfogning och editorfönstret för sammanfogningsutdata + + + +Editorfönstret för sammanfogningsutdata (under indatafönstren för jämförelse) har också en informationsrad längst upp som visar Utmatning, filnamnet och [Ändrad] om du redigerat något. Oftast innehåller det någon text från de automatiska sammanfogningsfunktionerna, men det innehåller också ofta konflikter. Spara är inaktiverat till alla konflikter är lösta! (Använd knapparna Gå till föregående/nästa olösta konflikt för att hitta återstående konflikter.) Med bara två filer är varje skillnad också en konflikt, som måste lösas manuellt. Med tre indatafiler behandlas den första som bas, medan den andra och tredje indatafilen innehåller ändringar. Om bara indata B eller C har ändrats för en viss rad, men inte båda väljes den ändrade källan automatiskt. Bara om B och C har ändrats på samma rader, detekterar verktyget en konflikt som måste lösas manuellt. När B och C är likadana, men inte samma som A, väljes C. SammanfattningskolumnenEditorfönstret för sammanfogningsutdata har också en sammanfattningskolumn till vänster. Den visar bokstaven för indata som raden valdes, eller ingenting om alla tre källorna var likadana för raden. Vid konflikter visar den ett frågetecken "?" och raden visar "< Konflikter vid sammanfogning >", allt med rött. Eftersom det skulle ta mycket lång tid att lösa konflikter rad för rad, grupperas rader i grupper som har samma skillnader och konfliktkaraktär. Konflikter med bara blanktecken skiljs dock från andra konflikter för att förbättra sammanfogningen av filer där indenteringen ändrats på många rader. Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns positionNär du klickar på sammanfattningskolumnen med vänster musknapp i endera fönstret, så markeras gruppen som hör till den raden i alla fönster och gruppens början visas. (Det här kan innebära ett automatiskt byte av position i fönstren om gruppens början inte syns.) Gruppen blir då den "aktuella gruppen". Den markeras med alternativetBakgrundsfärgen för aktuellt jämförelseintervall i objektet Integrering och en svart rad visas till vänster om texten. Välja indata A, B eller C för aktuell konflikt och redigeringKnappraden under menyraden innehåller tre knappar för indataval som innehåller bokstäverna A, B och C. Klicka på knappen för indataval för att infoga rader (eller ta bort dem om de redan infogats) från respektive källfil. För att välja rader från flera indatafiler klicka på respektive knappar i nödvändig ordning. Om du till exempel vill att rader från B ska hamna före rader från A i utdata, klicka först på B och därefter på A. Om du använder knappen Gå automatiskt till nästa olösta konflikt efter val av källa (see Avancera automatiskt), måste du inaktivera det innan du väljer rader från flera indatafiler eller om du vill redigera raderna efter du valt dem. Annars går &kdiff3; till nästa konflikt efter den första indatafilen valts. Det är ofta användbart att direkt redigera sammanfogad utdata. Sammanfattningskolumnen visar "m" för varje rad som ändrades manuellt. När skillnaderna till exempel justeras på ett sätt så att ett enkelt val av indata inte är tillfredsställande, kan du markera texten som behövs och använda normal kopiera och klistra in för att placera den i sammanfogad utdata. Ibland, när en rad tas bort antingen på grund av automatisk sammanfogning eller genom redigering och inga andra rader finns kvar i gruppen, visas texten <Ingen källrad> på raden. Det är bara en platsmarkör för gruppen om du ändrar dig och väljer en källa igen. Texten syns inte i sparade filer eller i några markeringar som du vill kopiera och klistra in. Texten "< Konflikter vid sammanfogning >" visas på klippbordet om du kopierar och klistrar in någon text som innehåller en sådan rad. Men var ändå försiktig med att göra det. Välja indata A, B eller C för alla konflikterDen normala sammanfogningen börjar med att automatiskt lösa enkla konflikter. Menyn Sammanfoga tillhandahåller också några alternativ för andra vanliga behov. Om du måste välja samma källfil för de flesta konflikter, kan du välja A, B eller C överallt, eller bara för återstående olösta konflikter, eller för olösta konflikter med blanktecken. Om du vill bestämma själv för varje enskild skillnad, kan du Ändra skillnader till konflikter, eller om du vill återgå till de automatiska valen i &kdiff3; kan du välja Lös automatiskt enkla konflikter. Då startar &kdiff3; om sammanfogningen. För åtgärder som påverkar dina tidigare ändringar frågar &kdiff3; om bekräftelse innan åtgärden utförs. När endera källan väljes för olösta konflikter för blanktecken och alternativet Ignorera siffror (behandla som blanktecken) eller Ignorera C/C++ kommentarer (behandla som blanktecken) under alternativet Jämför används, så behandlas ändringar i siffror eller kommentarer också som blanktecken. Sammanfoga automatiskt nyckelord för versionshantering och historik (logg)Många versionshanteringssystem stöder särskilda nyckelord i filen (t.ex. "$Date$", "$Header$", "$Author$", "$Log$" etc.) Vid arkivering ändrar versionshanteringssystemet (VCN) dessa rader. Till exempel ändras "$Date$" till "$Date: 2005/03/22 18:45:01 $". Eftersom raden är olika i varje version av filen, skulle den kräva manuell interaktion under sammanfogningen. &kdiff3; erbjuder automatisk sammanfogning av dessa poster med alternativet Sammanfoga i inställningsdialogrutan. För enkla rader som matchar alternativet Reguljärt uttryck för automatisk sammanfogning i alla indatafiler väljer &kdiff3; raden från B, eller om tillgänglig, den från C. (Dessutom är det nödvändigt att raderna i fråga radas upp i jämförelsen och att föregående rad inte innehåller en konflikt.) Den automatiska sammanfogningen kan antingen utföras omedelbart när sammanfogningen startas (aktivera alternativet Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar) eller senare via menyalternativet SammanfogaKör automatisk sammanfogning med reguljärt uttryck. Automatisk sammanfogning för versionshanteringshistorik (också kallat "logg") stöds också. Automatisk sammanfogning av historik kan antingen utföras omedelbart när sammanfogningen startas genom att aktivera alternativet Sammanfogning enligt versionshanteringshistorik när sammanfogning startar under alternativet Sammanfoga i inställningsdialogrutan eller senare via menyalternativet SammanfogaLös automatiskt historikkonflikter. Oftast börjar versionshanteringshistoriken med en rad som innehåller nyckelordet "$Log$". Den måste matchas av alternativet Reguljärt uttryck för historikens början:. &kdiff3; detekterar vilka efterföljande rader som ingår i historiken genom att analysera de inledande tecknen som fanns före nyckelordet "$Log$". Om samma "inledande kommentar" också finns på följande rader inkluderas de också i historiken. Vid varje arkivering skriver VCS en unik rad som anger version, datum- och tidsinformation följd av rader med användarens kommentarer. Raderna utgör en historikpost. Historikavsnittet växer vid varje arkivering och de senaste posterna visas längst upp (efter historikens startrad). När två utvecklare arkiverar grenar av en fil under parallell utveckling, kommer historiken för sammanfogning att innehålla flera poster som visas som konflikter under sammafogning av grenarna. Eftersom sammafogning av dem kan bli mycket tröttsam, erbjuder &kdiff3; stöd för den med två möjliga strategier: Bara infoga historikinformationen från båda bidragsgivarna längst upp, eller sortera historikinformationen enligt en användardefinierad nyckel. Metoden att bara infoga alla poster är enklast att ställa in. &kdiff3; behöver bara en metod att detektera vilka rader som hör till en historikpost. De flesta VCS infogar en tom rad efter varje historikpost. Om det inte finns några andra tomma rader, är det ett tillräckligt villkor för &kdiff3;. Ange bara ett tomt Reguljärt uttryck för historikens början under alternativet Sammanfoga i inställningsdialogrutan. Om kriteriet med en tom rad inte är tillräckligt kan du ange ett reguljärt uttryck för att detektera historikpostens början. Observera att &kdiff3; tar bort duplicerade historikposter.Om en historikpost fanns flera gånger i en indatafils historik, förblir bara en post i utmatningen. Om du vill sortera historiken måste du ange hur sorteringsnyckeln ska byggas. Använd parenteser som i Reguljärt uttryck för historikpostens början under alternativet Sammanfoga i inställningsdialogrutan för att gruppera delar av det reguljära uttrycket som senare ska användas i sorteringsnyckeln. Ange därefter Sorteringsnycklarnas ordning från historikpostens början med en lista av nummer som refererar till gruppens position i det reguljära uttrycket åtskilda av kommatecken ",". Eftersom det inte är så enkelt att få det rätt omedelbart, kan du prova och förbättra det reguljära uttrycket och nyckelgenereringen i en särskild dialogruta genom att klicka på knappen Prova dina reguljära uttryck. Exempel: antag en historik som ser ut så här: +/************************************************************************** +** HISTORIK: $Log: \toms_sammanfogning_huvudvy\Mitt_program\kod\komplexalgoritm.cpp $ +** +** \head\integreringsgren_12 2 Apr 2001 10:45:41 tom +** Sammanfogade grenen simongren_15. +** +** \main\henry_felrättningsgren_7\1 30 Mar 2001 19:22:05 henry +** Förbättrade hastigheten för delrutinen omvandlaTill(). +** Fixade krasch. +**************************************************************************/ + +Historikens inledande rad matchar det reguljära uttrycket ".*\$Log.*\$.*". Därefter följer historikposterna. Raden med nyckelordet "$Log$" börjar med två "*" och därefter följer ett mellanslag. &kdiff3; använder den första strängen utan blanktecken som "inledande kommentar" och antar att historiken slutar med den första raden utan denna inledande kommentar. I exemplet slutar den sista raden med en sträng som också börjar med två "*", men istället för ett mellanslag följer fler "*". Därför avslutar denna rad historiken. Om sortering av historiken inte krävs kan det reguljära uttrycket för historikpostens början se ut så här. (Raden är delad i två eftersom den inte skulle få plats annars.) +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|Maj|Jun|Jul|Aug|Sep|Okt|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + +Om sortering av historiken inte krävs kan det reguljära uttrycket för historikpostens början se ut så här. (Raden är delad i två eftersom den inte skulle få plats annars.) +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + För detaljinformation om reguljära uttryck se Trolltechs dokumentation av reguljära uttryck. Observera att "\s" (med ett litet "s") matchar alla blanktecken och "\S" (med ett stort "S") matchar alla tecken som inte är blanktecken. I vårt exempel innehåller historikpostens början först versionsinformation med det reguljära uttrycket "\\main\\\S+", datumet som består av dagen "[0-9]+", månaden "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" och året "[0-9][0-9][0-9][0-9]", tiden "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" och till sist utvecklarens inloggningsnamn ".*". Observera att de "inledande kommentartecknen" (i exemplet "**") redan har tagits bort av &kdiff3; innan försöket att matcha, alltså börjar det reguljära uttrycket med att matcha ett eller flera blanktecken "\s*". Eftersom kommentartecken kan skilja sig åt i varje fil (C/C++ använder t.ex. andra kommentartecken än ett Perl-skript), tar &kdiff3; hand om de inledande kommentartecknen och du ska inte ange dem i det reguljära uttrycket. Om du kräver sorterad historik måste sorteringsnyckeln beräknas. För att göra det måste relevanta delar i det reguljära uttrycket grupperas med parenteser. (De extra parenteserna kan också vara kvar även om historiksortering inaktiveras.) +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|Maj|Jun|Jul|Aug|Sep|Okt|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + +Om du kräver sorterad historik måste sorteringsnyckeln beräknas. För att göra det måste relevanta delar i det reguljära uttrycket grupperas med parenteser. (De extra parenteserna kan också vara kvar även om historiksortering inaktiveras.) +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + Parenteserna innehåller nu 1. versionsinformation, 2. dag, 3. månad, 4. år, 5. tid, 6. namn. Men om vi vill sortera enligt datum och tid måste vi skapa en nyckel med elementen synliga i en annan ordning: Först året, följt av månad, dag, tid, versionsinformation och namn. Därför ska sorteringsnyckelns ordning som anges vara "4,3,2,5,1,6". Eftersom månadsnamn inte är bra att sortera enligt ("Apr" skulle vara först) detekterar &kdiff3; vilken ordning månadsnamnen anges och använder det numret istället ("Apr" -> "04"). Och om ett rent nummer hittas omvandlas det till ett fyrasiffrors värde med inledande nollor för sortering. Till sist blir den resulterande sorteringsnyckeln för den första historikpostens inledande rad: +2001 04 0002 10:45:41 integreringsgren_12 tom + +För mer information, se också avsnittet Inställningar av sammanfoga. + + + +Navigering och redigering +Mycket navigering görs med rullningslisterna och musen, men du kan också navigera med tangentbordet. Om du klickar på något fönster kan du använda genvägarna vänsterpil, högerpil, uppåtpil, neråtpil, Page Up, Page Down, Home, End, &Ctrl;Home och &Ctrl;End som du kan i andra program. Sammanfattningskolumnen intill indatafilernas vertikala rullningslist kan också användas för att navigera genom att klicka i den. Du kan också använda mushjulet för att rulla uppåt och neråt. I editorn för sammanfogningsutdata kan du också använda andra tangenter för redigering. Du kan byta mellan infognings- och ersättningsläge med tangenten Insert. (Normalläget är infoga.) Ett klick med vänster musknapp i någon sammanfattningskolumn synkroniserar alla fönster för att visa början på samma grupp av rader (som förklaras i avsnittet Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns position). Knappraden innehåller också nio navigeringsknappar som du kan använda för att gå till aktuell/första/sista skillnaden, till nästa/föregående skillnad (&Ctrl;Neråtpil eller &Ctrl;Uppåtpil), till nästa/föregående konflikt (&Ctrl;Page Down eller &Ctrl;Page Up) eller till föregående/nästa olösta konflikt. Observera att för &kdiff3; förblir en "konflikt" som inte automatiskt löstes vid start av sammanfogningen alltid en "konflikt" även om den är löst. Därav nödvändigheten att särskilja "olösta konflikter". +Automatisk fortsättning +Det finns också en knapp som heter Gå automatiskt till nästa olösta konflikt efter val av källa (automatisk fortsättning). Om du aktiverar det här, så går &kdiff3; automatiskt till nästa olösta konflikt när en källa väljes. Det kan hjälpa till när du bara vill välja en källa. När du behöver båda källor, eller du vill redigera efter valet, bör du troligen stänga av det här. Innan &kdiff3; fortsätter till nästa olösta konflikt, visas effekten av valet en kort tid. Den här fördröjningen kan justeras i inställningarna under Jämför och sammanfoga. Du kan ange "Fördröjning vid automatisk fortsättning" i millisekunder mellan 0 och 2000. Tips: Är du trött på många klick? Använd en kort fördröjning vid automatisk fortsättning och snabbtangenterna &Ctrl;1/2/3 för att välja A/B/C för många konflikter. + + + +Markera, kopiera och klistra in +Indatafönstren visar inte någon markör, så markeringar måste göras med musen, genom att klicka med vänster musknapp på början, hålla nere musknappen och gå till slutet, där musknappen släpps upp igen. Du kan också markera ett ord genom att dubbelklicka på det. I editorn för sammanfogningsutdata kan du också markera med tangentbordet, genom att hålla nere skifttangenten och navigera med piltangenterna. Om markeringen överstiger det synliga området, kan du flytta musen över fönsterkanterna, vilket gör att &kdiff3; rullar i den riktningen. För mycket stora markeringar kan du också använda navigationstangenterna medan musknappen hålls nere. Använd t.ex. Page Up och Page Down för att snabbt gå till en viss position. Släpp upp musknappen på slutpositionen. Använd menyalternativet Redigera Markera alla (&Ctrl;A) för att markera allting i aktuellt fönster. För att kopiera till klippbordet måste du trycka på knappen Kopiera (&Ctrl;C eller &Ctrl;Insert). Men det finns ett alternativ som heter Kopiera automatiskt markering. Om det är aktiverat, kopieras vad du än väljer omedelbart, och du behöver aldrig explicit kopiera. Men var försiktig när du använder detta, eftersom klippbordets innehåll kan förstöras av misstag. Klipp ut (&Ctrl;X eller &Shift;Delete) kopierar till klippbordet och tar bort den markerade texten. Klistra in (&Ctrl;V eller &Shift;Insert) infogar texten på klippbordet vid markörens position eller istället för den nuvarande markeringen. Om du klistrar in i något av jämförelsefönstren visas klippbordets innehåll i fönstret och jämförelsen startas omedelbart om. Det är användbart om du snabbt vill hämta ett textstycke någonstans och jämföra det med något annat utan att först skapa filer. + + +Spara +Att spara tillåts bara när alla konflikter är lösta. Om filen redan finns och alternativet Säkerhetskopiera filer är markerat under alternativet Katalog i inställningsdialogrutan, ändras originalversionens namn med tillägg av filändelsen .orig, och om en sådan fil redan finns tas den bort. När du avslutar eller startar en ny jämförelseanalys och data inte sparats ännu, frågar &kdiff3; om du vill spara, avbryta eller fortsätta utan att spara. (&kdiff3; fångar inga signaler, så om du "dödar" &kdiff3; går data förlorat.) Radslut sparas enligt den normala metoden i det underliggande operativsystemet. För Unix slutar varje rad med ett nyradstecken "\n", medan för Windows-baserade system slutar varje rad med ett returtecken och ett nyradstecken "\r\n". &kdiff3; behåller inte radslut för indatafilerna, vilket också betyder att du inte ska använda &kdiff3; med binärfiler. + + +Söka efter strängar +Du kan söka efter en sträng i vilket textfönster som helst i &kdiff3;. Menyalternativet RedigeraSök... (&Ctrl;F) visar en dialogruta som låter dig ange strängen att söka efter. Du kan också välja de fönster som ska sökas. Sökning startar alltid från början. Använd kommandot RedigeraSök igen (F3) för att fortsätta till nästa förekomst. Om du väljer att söka i flera fönster, söks det första fönstret från början till slut innan sökningen fortsätter från början i nästa fönster, etc. + + +Utskrift +&kdiff3; stöder utskrift av skillnader mellan textfiler. Kommandot ArkivSkriv ut... (&Ctrl;P) i menyn Arkiv visar en dialogruta som låter dig välja skrivare och justera andra alternativ. Det finns flera möjligheter att justera intervallet. Beroende på olika utskriftsdialogrutor på olika operativsystem, varierar metoden för att åstadkomma val av ett visst intervall. + + Alla:Skriv ut allt. + Aktuell:Skriv ut en sida som börjar på den första synliga raden i fönstret. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 10000 för utskrift.) + Markering:Innan du väljer att skriva ut, markera text med musen (som för kopiera och klistra in) i ett av jämförelsefönstren för att definiera start- och slutrad. Om ingen text var markerad i något av jämförelsefönstren, är inte alternativet tillgängligt. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 9999 för utskrift.) + Intervall:Ange första och sista sidan. + +Andra viktiga inställningar för utskrift tas från de normala inställningarna: + Teckensnitt, teckenstorlek + Visa radnummer + Radbryt + Färger + etc. + +Liggande formatering rekommenderas också för utskrift. + + +Alternativ +Alternativ och listan med senaste filer sparas när du avslutar programmet, och laddas igen när du startar det. (Menyn InställningarAnpassa &kdiff3;...). +Teckensnitt +Välj ett teckensnitt med fast breddsteg. (På vissa system visar dialogrutan också teckensnitt med variabel bredd, men du bör inte använda dem.) + + +Färger + + Editor- och skillnadsvyer: + + Förgrundsfärg:Oftast svart. + Bakgrundsfärg:Oftast vit. + Bakgrundsfärg för jämförelse:Oftast ljusgrå. + Färg A:Oftast mörkblå. + Färg B:Oftast mörkgrön. + Färg C:Oftast mörk magenta. + Konfliktfärg:Oftast röd. + Bakgrundsfärg för aktuellt intervall:Oftast ljusgul. + Bakgrundsfärg för aktuellt jämförelseintervall:Oftast mörkgul. + Färg för manuellt justerade jämförelseintervall:Oftast orange. + + Katalogjämförelsevy: + + Färg för nyaste fil:Oftast grön. + Färg för äldsta fil:Oftast röd. + Färg för medelgamla filer:Oftast mörkgul. + Färg för saknade filer:Oftast svart. + + +Att ändra färgerna för katalogjämförelser får inte någon effekt förrän nästa katalogjämförelse startas. +För system med bara 16 eller 256 färger är vissa rena färger inte tillgängliga. För sådana system väljer knappen Förval en ren färg. + + +Inställningar för editor + + Tabulator infogar mellanslagOm det här inte är markerat, och du trycker på tabulatortangenten, infogas en tabulator, annars infogas lämpligt antal mellanslag. + Tabulatorbredd:Kan justeras för dina speciella behov. Normalvärdet är 8. + Automatisk indenteringNär du trycker på Enter eller returtangenten, används föregående rads indentering för den nya raden. + Kopiera automatiskt markeringVarje markering kopieras omedelbart till klippbordet när den aktiveras, och du behöver inte kopiera den explicit. + Radslutstil:När du sparar kan du välja vilken radslutsstil du föredrar. Förvald inställning är det vanliga valet för operativsystemet som används. + + + +Inställningar av jämför +När filer jämförs försöker &kdiff3; först att matcha rader som är lika i alla indatafiler. Det är bara under detta steg som blanktecken kan ignoreras. Det andra steget jämför varje rad. Under detta steg ignoreras inte blanktecken. Under sammanfogning ignoreras inte heller blanktecken. + + + Ignorera tal (behandla som blanktecken)Normalvärdet är av. Siffertecken ('0'-'9', '.', '-') ignoreras under första delen av analysen när radmatchningen görs. Skillnaderna för resultatet visas ändå, men de behandlas som blanktecken. + Ignorera skiftläge (behandla som blanktecken)Normalvärdet är av. Ändringar i kommentarer behandlas som ändringar i blanktecken. + Ignorera skiftläge (behandla som blanktecken)Normalvärdet är av. Ändringar i skiftläge för tecken (som 'A' eller 'a') hanteras som ändringar i blanktecken. + Preprocessorkommando:Se nästa avsnitt. + Preprocessorkommando för radmatchning:Se nästa avsnitt. + Var noggrann (långsammare)Gör en ansträngning att hitta en ännu mindre skillnad (Normalvärdet är på). Det här är troligen effektivt för komplicerade och stora filer, och långsamt för mycket stora filer. + Justera B och C vid tre indatafilerFörsök justera B och C vid jämförelse eller sammanfogning av tre indatafiler. Rekommenderas inte vid sammanfogning eftersom den kan bli mer komplicerad (normalvärdet är av). + + + +Inställningar av sammanfoga + + Fördröjning vid automatisk fortsättning (ms):I automatiskt fortsättningsläge anger den här inställningen hur länge resultatet för gruppen ska visas innan hopp till nästa olösta konflikt. + Visa informationsdialogrutorVisa en dialogruta med information om antal konflikter. + Standardvärde för sammanfogning av blanktecken med två/tre filer:Lös automatiskt alla konflikter för blanktecken genom att välja angiven fil. (Normalvärdet är manuellt val.) Användbart om blanktecken verkligen är oviktiga i många filer. Om du bara behöver det ibland, är det bättre att använda Välj A/B/C för olösta konflikter med blanktecken i menyn Sammanfoga. Observera att om du antingen aktiverar Ignorera siffror eller Ignorera C/C++ kommentarer gäller det automatiska valet också vid konflikter för siffror eller kommentarer. + Reguljärt uttryck för automatisk sammanfogning:Reguljärt uttryck för rader där &kdiff3; automatisk ska välja en källa. Se också Automatisk sammanfogning.... + Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startarOm aktiverad utför &kdiff3; den automatiska sammanfogningen med Reguljärt uttryck för automatisk sammanfogning när en sammanfogning startas. + Reguljärt uttryck för historikpostens början:Reguljärt uttryck för början av historikposten för sammanfogning. Oftast innehåller raden nyckelordet "$Log$". Förvalt värde: ".*\$Log.*\$.*" + Reguljärt uttryck för historikpostens början:En historikpost för sammanfogning består av flera rader. Ange det reguljära uttrycket för att detektera den första raden (utan inledande kommentar). Använd parenteser för att gruppera nycklarna du vill använda för sortering. Om det lämnas tomt, antar &kdiff3; att tomma rader skiljer historikposterna åt. Se också Automatisk sammanfogning.... + Sortering av historiksammanfogningAktivera sortering av versionshanteringshistorik. + Sorteringsnycklarnas ordning från historikpostens början:Varje parentespar som används i det reguljära uttrycket för historikens startpost grupperar en nyckel som kan användas för sortering. Ange listan med nycklar (som numreras i ordning de uppträder med början på 1) med ',' som skiljetecken (t.ex. "4,5,6,1,2,3,7"). Om det lämnas tomt utförs ingen sortering. Se också Automatisk sammanfogning.... + Sammanfogning enligt versionshanteringshistorik när sammanfogning startarOm aktiverad utför &kdiff3; den automatiska sammafogningen av historik med tidigarenämnda alternativ när en sammanfogning startas. + Maximalt antal historikposter:&kdiff3; kortar av historiklistan till angivet antal poster. Använd -1 för att undvika avkortning. (Standardvärde är -1). + Prova dina reguljära uttryckKnappen visar en dialogruta som låter dig förbättra och prova det reguljära uttrycket ovan. Kopiera bara respektive data från dina filer till exempelraderna. Matchningsresultat visar omedelbart om matchningen lyckas eller inte. Sorteringsnyckelresultat visar nyckeln som används för sortering vid sammanfogning av historik. + Ej relevant sammanfogningskommando:Ange ett eget kommando som ska anropas när &kdiff3; detekterar att filen från B inte bidrar med något relevant data som inte reda finns i filen från C. Kommandot anropas med de tre filnamnen som parametrar. Data som matchas av Reguljärt uttryck för automatisk sammanfogning eller i historiken anses inte vara relevant. + Spara automatiskt och avsluta vid sammanfogning utan konflikterNär &kdiff3; startas från kommandoraden för en filsammanfogning och alla konflikter kan lösas utan användarinteraktion, spara då automatiskt och avsluta. (Liknar kommandoradsväljaren .) + + + + +Katalogsammanfogning +De här alternativen har att göra med avsökning av katalogen och hantering av sammanfogningen: Se Katalogjämförelse och sammanfogning för detaljinformation. Ändå finns det ett alternativ här som också är relevant för att spara enstaka filer: + + Säkerhetskopior (.orig)När en fil sparas och en äldre version redan finns, ändras originalversionens namn med tillägg av filändelsen .orig. Om en gammal säkerhetskopia med filändelsen .orig redan finns tas den bort utan säkerhetskopiering. + + + +Inställningar för region och språk + + Använd samma kodning för alltFöljande kodningsalternativ kan justeras separat för varje objekt, eller om alternativet är sant, ställs alla värden in till det första värdet. + Observera: Lokal kodning är "..."Ovanför kodningsväljarna visas den här anmärkningen som talar om för dig vad den lokala kodningen är (Den kan inte justeras, utan bara som information om du inte vet vad den lokala kodningen är, men behöver kunna välja den.) + Filkodning för A/B/C:Justera filkodningen för indatafiler. Det ger effekt på hur specialtecken tolkas. Eftersom du kan justera varje kodning separat, kan du till och med jämföra och sammanfoga filer som sparades med olika kodningar. + Filkodning för sammanfogad utdata och vid spara:När du har redigerat en fil, kan du justera vilken kodning som används när den sparas till disk. + Filkodning för preprocessorfiler:När du definierar preprocessorer kanske de inte kan hantera din kodning (exempelvis om dina filer använder 16-bitars Unicode och preprocessorn bara kan hantera 8-bitars &ASCII;). Med det här alternativet kan du definiera kodningen för preprocessorns utdata. + Språk som läses från höger till vänsterVissa språk skrivs från höger till vänster. När alternativet är aktiverat, ritar &kdiff3; text från höger till vänster i jämförelsefönstren och i sammanfogningsfönstret. Observera att om du startar &kdiff3; med kommandoradsväljaren så visas all layout också från höger till vänster. (Det är en funktion som &Qt; tillhandahåller.) Dokumentationen är skriven med antagandet att det här alternativet eller omvänd layout är inaktiverad. Så vissa referenser till "vänster" eller "höger" måste ersätta av respektive motpart om du använder de här alternativen. + + + + +Diverse +(Dessa alternativ och åtgärder är tillgängliga i menyerna eller verktygsraden.) + + Översiktsalternativ:Dessa alternativ är bara tillgängliga när du jämför tre filer. I normalläge visas alla skillnader i en färgkodad översiktskolumn, men ibland är du särskilt intresserad av skillnaderna mellan två av de tre filerna. Genom att välja översikten "A mot B", "A mot C" eller "B mot C", visas en andra översiktskolumn med begärd information intill den vanliga översikten. + Radbryt skillnadsfönsterRadbryt rader när deras längd skulle överskrida ett fönsters bredd. + Visa fönster A/B/C:Ibland vill du använda skärmutrymmet bättre för långa rader. Dölj fönster som inte är viktiga. (I menyn Fönster.) + Byt delningsorienteringByt mellan jämförelsefönster som visas intill varandra (A till vänster om B till vänster om C) eller ovanför varandra (A ovanför B ovanför C). Det bör också hjälpa för långa rader. (I menyn Fönster.) + Sammanfoga aktuell filFungerar om du bara jämför två filer. Ett enkelklick startar sammanfogningen och använder filnamnet på den sista indatafilen som förvalt utmatningsfilnamn. (När detta används för att starta om en sammanfogning, behålls utmatningsfilnamnet.) + Visa blankteckenStäng av det här för att inte visa ändringar av bara blanktecken i texten eller översiktskolumnerna. (Observera att detta också gäller ändringar av siffror eller kommentarer om alternativen Ignorera siffror eller Ignorera C/C++ kommentarer är aktiva.) + Visa mellanslag och tabulatorteckenIbland är synliga mellanslag och tabulatortecken störande. Du kan stänga av detta. + Visa radnummerDu kan välja om radnummer ska visas för indatafilerna. + + + +Anpassa snabbtangenter +För närvarande stöder bara ramverksversionen anpassningsbara snabbtangenter (Menyn InställningarAnpassa genvägar...). + + + +Preprocessorkommandon +&kdiff3; stöder två preprocessoralternativ. + + Preprocessorkommando:När en fil läses, skickas den via det här externa kommandot. Utmatningen från kommandot visas istället för den ursprungliga filen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Använd det här för att ta bort störande delar av filen, eller för att automatiskt korrigera indenteringen, etc. + Preprocessorkommando för radmatchning:När en fil läses, skickas den via det här externa kommandot. Om ett preprocessorkommando (se ovan) också anges är utmatningen från preprocessorn inmatning till den radmatchande preprocessorn. Utmatningen används bara under radmatchningsfasen av analysen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Varje indatarad måste ha en motsvarande utdatarad. + + +Idén är att ge användaren större flexibilitet när jämförelseresultatet ställs in, men det kräver ett externt program, och många användare vill inte skriva ett själva. De goda nyheterna är att ofta klarar sed eller perl av jobbet. +Exempel: enkelt testfall: betrakta filen a.txt (6 rader): +aa + ba + ca + da + ea + fa + +Och filen b.txt (3 rader): +cg + dg + eg + +Utan en preprocessor skulle följande rader placeras intill varandra: +aa - cg + ba - dg + ca - eg + da + ea + fa + +Det är troligen inte vad som önskas eftersom den första bokstaven innehåller den intressanta informationen. För att hjälpa matchningsalgoritmen att ignorera den andra bokstaven kan man använda ett radmatchande preprocessorkommando som ersätter 'g' med 'a': +sed 's/g/a/' + +Med det här kommandot skulle resultatet av jämförelsen vara: +aa + ba + ca - cg + da - dg + ea - eg + fa + +Internt ser matchningsalgoritmen filerna efter den radmatchande preprocessorn har körts, men på skärmen är filen oförändrad. (Den normala preprocessorn skulle också ändra data på skärmen.) + +Grundläggande information om <command +>sed</command +> +Det här avsnittet introducerar bara några mycket grundläggande funktioner i sed. För mer information se info:/sed eller https://www.gnu.org/software/sed/manual/html_mono/sed.html. En förkompilerad version för &Windows; finns på http://unxutils.sourceforge.net. Observera att följande exempel antar att sed finns i någon katalog i miljövariabeln PATH. Om det inte är fallet, måste du ange fullständig absolut sökväg till kommandot. +I det här sammanhanget används bara ersättningskommandot sed: +sed 's/REGUTTRYCK/ERSÄTTNING/FLAGGOR' + +Innan du använder ett nytt kommando inne i &kdiff3;, bör du först prova det i en terminal. Då är kommandot echo användbart. Till exempel: +echo abrakadabra | sed 's/a/o/' + -> obrakadabra + + Exemplet visar ett mycket enkelt sed-kommando som ersätter den första förekomsten av "a" med "o". Om du vill ersätta alla förekomster behöver du flaggan "g": +echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + +Symbolen "|" är rörledningskommandot som överför utdata från föregående kommando till indata i efterföljande kommando. Om du vill prova med en längre fil kan du använda cat på &UNIX;-liknande system eller type på &Windows;-liknande system. sed utför ersättningen för varje rad. cat filnamn |sed väljare + + + +Exempel på användning av <command +>sed</command +> i &kdiff3; +Ignorera andra typer av kommentarer +För närvarande förstår &kdiff3; bara C/C++ kommentarer. Genom att använda ett radmatchande preprocessorkommando kan du också ignorera andra typer av kommentarer genom att konvertera dem till C/C++ kommentarer. + Exempel: För att ignorera kommentarer som börjar med "#", skulle du vilja konvertera dem till "//". Observera att du också måste aktivera alternativet Ignorera C/C++ kommentarer för att få någon effekt. Ett lämpligt Radmatchande preprocessorkommando: skulle vara: +sed 's/#/\/\//' + +Eftersom tecknet "/" har en särskild betydelse i sed, är det nödvändigt att lägga till tecknet "\" innan varje "/" i ersättningssträngen. Ibland behövs "\" för att lägga till eller ta bort en särskild betydelse för vissa tecken. De enkla citationstecknen (') är bara viktiga vid utprovning i kommandoskalet eftersom det annars skulle försöka tolka vissa tecken. &kdiff3; gör inte det utom för teckenföljderna '\"' och '\\'. + +Jämförelse som inte är skiftlägeskänslig +Använd följande Radmatchande preprocessorkommando för att omvandla all indata till stora bokstäver: +sed 's/\(.*\)/\U\1/' + +Här är ".*" ett reguljärt uttryck som matchar alla strängar, och i det här sammanhanget matchar alla tecken på raden. Tecknet "\1" i ersättningssträngen motsvarar den matchade texten mellan det första paret "\(" och "\)". "\U" konverterar den infogade texten till stora bokstäver. + + +Ignorera nyckelord för versionshantering +CVS och andra versionshanteringssystem använder flera nyckelord för att infoga automatiskt skapade strängar (info:/cvs/Keyword substitution). Alla följer mönstret "$NYCKELORD skapad text$". Nu behöver vi ett radmatchande preprocessorkommando som bara tar bort den skapade texten: +sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + +Strängen "\|" skiljer de möjliga nyckelorden åt. Du kanske vill ändra listan enligt dina behov. Tecknet "\" framför "$" behövs eftersom annars matchar "$" radens slut. +Medan du experimenterar med sed kan du komma att förstå och till och med tycka om de reguljära uttrycken. De är användbara eftersom det finns många andra program som också stöder liknande funktioner. + + +Ignorera siffror +Att ignorera siffror är i själva verket ett inbyggt alternativ, men som ett annat exempel, visas hur det skulle se ut som ett radmatchande preprocessorkommando. +sed 's/[0123456789.-]//g' + +Alla tecken inom '[' och ']' matchar och kommer att ersättas av ingenting. + + +Ignorera vissa kolumner +Ibland är texten mycket strikt formaterad, och innehåller kolumner som du alltid vill ignorera, medan det finns andra kolumner du vill bevara för analys. I följande exempel ignoreras de fem första kolumnerna (tecknen), de följande tio kolumnerna bevaras, därefter ignoreras återigen fem kolumner och resten av raden bevaras. +sed 's/.....\(..........\).....\(.*\)/\1\2/' + +Varje punkt '.' motsvarar vilket enstaka tecken som helst. Strängarna "\1" och "\2" i ersättningssträngen refererar till den matchande texten inom det första och andra paret av "\(" och "\)" som anger texten att bevara. + + +Kombinera flera ersättningar +Ibland vill du tillämpa flera ersättningar samtidigt. Då kan du använda semikolon ';' för att skilja dem från varandra. Till exempel: +echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + +Använda <command +>perl</command +> istället för <command +>sed</command +> +Istället för sed kanske du vill använda någonting annat såsom perl. +perl -p -e 's/REGUTTRYCK/ERSÄTTNING/FLAGGOR + +Men vissa detaljer är annorlunda i perl. Observera att där sed behöver "\(" och "\)" kräver perl det enklare "(" och ")" utan inledande '\'. Till exempel: +sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + +Ordning vid körning av preprocessor +Data skickas igenom all intern och extern förbehandling i följande ordning: + +Normal preprocessor, +Preprocessor för radmatchning, +Ignorera skiftläge (behandla som blanktecken) (konvertering till stora bokstäver), +Detektering av C/C++ kommentarer, +Ignorera tal (behandla som blanktecken), +Ignorera blanktecken + +Data efter den normala förbehandlingen bevaras för att visas och sammanfogas. De andra åtgärderna ändrar bara data som algoritmen för radmatchande jämförelse ser. I de sällsynta fall då du använder normal förbehandling, observera att den radmatchande förbehandlingen ser utdata från den normala förbehandlingen som indata. + + +Varning +Förbehandlingskommandon är ofta mycket användbara, men som med alla alternativ som ändrar texten eller döljer vissa skillnader automatiskt, kan du av misstag hoppa över vissa skillnader och i värsta fall förstöra viktig data. Av denna orsak, om ett normalt preprocessorkommando används under en sammanfogning, talar &kdiff3; om det för dig och frågar om det ska inaktiveras eller inte. Men du får ingen varning om ett Radmatchande preprocessorkommando är aktivt. Sammanfogningen sker inte förrän alla konflikter är lösta. Om du inaktiverade JämförelsevyVisa blanktecken blir också skillnaderna som togs bort med Radmatchande preprocessorkommando osynliga. Om knappen Spara förblir inaktiv under en sammanfogning (på grund av kvarvarande konflikter), försäkra dig om att aktivera JämförelsevyVisa blanktecken. Om du inte vill sammanfoga dessa mindre viktiga skillnader för hand kan du välja SammanfogaVälj [A|B|C] för olösta konflikter med blanktecken. + + + + + +Katalogjämförelse och sammanfogning med &kdiff3; +Introduktion till katalogjämförelse och sammanfogning +Ofta måste programmerare ändra många filer i en katalog för att uppnå sina syften. För att åstadkomma detta låter &kdiff3; dig också jämföra och sammanfoga hela kataloger rekursivt! Även om jämförelse och sammanfogning av kataloger verkar vara ganska självklart, finns det flera detaljer som du bör känna till. Det viktigaste är förstås faktum att många filer nu kan påverkas av varje åtgärd. Om du inte har säkerhetskopior av originaldata, kan det vara mycket svårt eller till och med omöjligt att återgå till originalläget. Så innan du påbörjar en sammanfogning, försäkra dig om att data är säkert, och att det är möjligt att återställa. Om du skapar ett arkiv, eller använder ett versionshanteringssystem är ditt eget beslut, men till och med erfarna programmerare och integratörer behöver ibland gammal källkod. Observera också att även om jag (upphovsmannen till &kdiff3;) försöker att göra mitt bästa, kan jag inte garantera att det inte finns fel. Enligt &GNU; GPL finns det INGEN GARANTI av något slag för det här programmet. Så var ödmjuk, och kom alltid ihåg: +
+ Att fela är mänskligt, men för att verkligen ställa till det behövs en dator. +
+Så det här är vad programmet kan göra åt dig: &kdiff3; ... + + ... läser och jämför två eller tre kataloger rekursivt, + ... hanterar symboliska länkar särskilt, + ... låter dig bläddra mellan filer med ett dubbelklick på musen, + ... föreslår ett sammanfogningsalternativ för varje objekt, som du kan ändra innan katalogsammanfogningen startas, + ... låter dig simulera sammanfogningen och listar åtgärderna som skulle ske, utan att verkligen göra dem, + ... låter dig utföra sammanfogningen, och låter dig bestämma så fort manuell interaktion behövs, + ... låter dig utföra vald åtgärd för alla objekt (tangenten F7) eller markerat objekt (tangenten F6), + ... låter dig fortsätta sammanfogningen efter manuell interaktion med tangenten F7, + ... skapar valfria säkerhetskopior, med filändelsen .orig, + ... + +
+ +Starta katalogjämförelse eller sammanfogning +Det här liknar mycket sammanfogning och jämförelse av en enstaka fil. Du måste bara ange kataloger på kommandoraden eller i dialogrutan för filöppning. +Jämföra eller sammanfoga två kataloger: +kdiff3 katalog1 katalog2 + kdiff3 katalog1 katalog2 målkatalog + +Om ingen målkatalog anges, använder &kdiff3; katalog2. + + +Jämföra eller sammanfoga tre kataloger: +kdiff3 katalog1 katalog2 katalog3 + kdiff3 katalog1 katalog2 katalog3 målkatalog + +När tre kataloger sammanfogas, används katalog1 som basen för sammanfogningen. Om ingen målkatalog anges, använder &kdiff3; katalog3 som målkatalog för sammanfogningen. + +Observera att bara jämförelsen startas automatiskt, inte sammanfogningen. För det måste du först välja ett menyalternativ eller tangenten F7. (Mer information kommer senare.) + + + +Katalogsammanfogning av synlig information +Medan katalogerna läses visas en meddelanderuta som informerar dig om förloppet. Om du avbryter katalogavsökningen, visas bara filer som hittills har jämförts. När katalogavsökningen är färdig, visar &kdiff3; en listruta med återstående resultat, ... + + + +... och detaljinformation om det markerade objektet till höger: + + + + + +Namnkolumnen +Varje fil och katalog som hittades under avsökningen visas här i ett träd. Du kan välja ett objekt genom att klicka en gång på det med musen. Katalogerna är normalt ihopdragna. Du kan expandera och dra ihop dem genom att klicka på "+"/"-", genom att dubbelklicka på objektet eller genom att använda tangenterna vänsterpil och högerpil. Menyn Katalog innehåller också två alternativ Dra ihop alla underkataloger och Expandera alla underkataloger som du kan använda för att dra ihop eller expandera alla kataloger på en gång. Om du dubbelklickar på ett filobjekt, utförs filjämförelsen och jämförelsefönstret för filer visas. +Ikonen i namnkolumnen motsvarar filtypen i den första katalogen (A). Den kan vara någon av dessa: + + Normal fil + Normal katalog (katalogikon) + Länk till en fil (filikon med en länkpil) + Länk till en fil (filikon med en länkpil) + +Om filtypen är annorlunda i övriga kataloger, syns det i kolumnerna A/B/C och i fönstret som visar detaljinformation om det markerade objektet. Observera att i dessa fall kan inte någon sammanfogningsåtgärd väljas automatiskt. När sammanfogningen startas, informeras användaren om den här sortens problem. + + +Kolumnerna A/B/C och färgläggningsschemat +Som syns i bilden ovan, används färgerna röd, grön, gul och svart i kolumnerna A/B/C. + + Svart: Det här objektet finns inte i den här katalogen. + Grön: Nyaste objektet. + Gul: Äldre än grön, nyare än röd. + Röd: Äldsta objektet. + +Utom för objekt som var identiska i jämförelsen, där är färgen också identisk även om åldern inte är det. Kataloger anses vara likadana om alla objekt de innehåller är likadana. Då har de också samma färg. Åldern på en katalog spelar dock ingen roll för dess färg. Idén för färgläggningsschemat hittade jag i dirdiff. Färgerna motsvarar färgerna hos ett löv som är grönt från början, sedan blir gult och till sist rött när det är gammalt. + +Åtgärdskolumnen +Efter att ha jämfört katalogerna utvärderar &kdiff3; också ett förslag på sammanfogningsåtgärd. Det visas i kolumnen Åtgärd. Du kan ändra den genom att klicka på åtgärden du vill ändra. En liten meny dyker upp och låter dig välja en åtgärd för objektet. (Du kan också välja den oftast använda åtgärden via tangentbordet. &Ctrl;1/2/3/4/Delete väljer A/B/C/Sammanfoga/Ta bort om de är tillgängliga.) Åtgärden utförs under sammanfogningen. Vilka åtgärder som är tillgängliga beror på objektet och sammanfogningsläget som används. Sammanfogningsläget är ett av + + Sammanfogning av tre kataloger (A behandlas som äldsta bas för båda). + Sammanfogning av två kataloger. + Tvåkatalogs synkroniseringsläge (aktiveras med alternativet Synkronisera kataloger). + +Vid trekatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... + + ... alla tre katalogerna är likadana: Kopiera från C + ... A och C är likadana med B är det inte: Kopiera från B (eller om B inte finns, ta bort målet om det finns) + ... A och B är likadana med C är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns) + ... B och C är likadana med A är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns) + ... bara A finns: Ta bort målet (om det finns) + ... bara B finns: Kopiera från B + ... bara C finns: Kopiera från C + ... A, B och C är inte likadana: Sammanfoga + ... A, B och C har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas. + +Vid tvåkatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... + + ... båda katalogerna är likadana: Kopiera från B + ... A finns men inte B: Kopiera från A + ... B finns men inte A: Kopiera från B + ... A och B finns men är inte likadana: Sammanfoga + ... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas. + +Synkroniseringsläge är bara aktivt om två kataloger och ingen explicit målkatalog anges, och om alternativet Synkronisera kataloger är aktivt. &kdiff3; väljer då en standardåtgärd så att båda katalogerna är likadana efteråt. Om för ett objekt ... + + ... båda katalogerna är lika: Ingenting görs. + ... A finns, men inte B: Kopiera A till B + ... B finns, men inte A: Kopiera B till A + ... A och B finns, men är inte likadana: Sammanfoga och lagra resultatet i båda kataloger. (För användaren är det synliga filnamnet för att spara B, men därefter kopierar &kdiff3; också B till A.) + ... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas. + +När två kataloger sammanfogas och alternativet Kopiera nyare istället för att sammanfoga är markerat, tittar &kdiff3; på datum och föreslår att välja den nyare filen. Om filerna inte är lika men har samma datum, innehåller åtgärden "Fel: Datum är lika men filerna är det inte." Medan sådana objekt finns, kan inte katalogsammanfogningen startas. + + +Statuskolumnen +Under sammanfogningen behandlas en fil i taget. Statuskolumnen visar Klar för objekt där sammanfogningsåtgärden har lyckats, och någon annan text om något oväntat inträffade. När en sammanfogning är färdig, bör du göra en sista kontroll för att se att status för alla objekt är acceptabel. + + +Statistikkolumner +När filjämförelseläget Fullständig analys är aktiverat i alternativen, visar &kdiff3; extra kolumner som innehåller antal oupplösta, upplösta, inte blanka och blanka konflikter. (Kolumnen Lösta visas bara när kataloger jämförs eller sammanfogas.) + + +Välja listade filer +Flera alternativ påverkar vilka filer som listas här. Vissa är tillgängliga i inställningsdialogrutan. Menyn Katalog innehåller alternativen: + Visa identiska filer: Filer som har detekterats som lika i alla indatakataloger. + Visa olika filer: Filer som finns i två eller flera kataloger men inte är lika. + Visa bara filer i A: Filer som bara finns i A, men inte i B eller C. + Visa bara filer i B: Filer som bara finns i B, men inte i A eller C. + Visa bara filer i C: Filer som bara finns i C, men inte i A eller B. + +Aktivera bara alternativen Visa för objekten du vill lista. Om du till exempel bara vill lista alla objekt som antingen finns i A eller i B men inte i båda, måste du aktivera Visa bara filer i A och Visa bara filer i B och inaktivera alla andra (Visa identiska filer, Visa olika filer, Visa bara filer i C). Listan uppdateras omedelbart för att motsvara ändringen. Alternativen gäller också för kataloger med ett undantag: Att inaktivera Visa olika filer döljer inte hela kataloger. Det fungerar bara för filer inne i dem. Observera att av dessa är bara alternativet Visa identiska filer som är bestående Övriga aktiveras när &kdiff3; startas. + + + + + +Utföra en katalogsammanfogning +Du kan antingen sammanfoga markerat objekt (fil eller katalog), eller alla objekt. När du har gjort alla val av åtgärder (också i alla underkataloger), kan du utföra sammanfogningen. Var medveten om att om du inte explicit angav en målkatalog, blir målet C i trekatalogsläge, B i tvåkatalogsläge, och i synkroniseringsläge är det A och/eller B. Om du också har angivit en målkatalog, kontrollera att alla objekt som ska finnas i utmatningen finns i trädet. Det finns några alternativ som får vissa objekt att utelämnas från katalogjämförelsen och sammanfogningen. Kontrollera dessa alternativ för att undvika obehagliga överraskningar: + + Rekursiva kataloger: Om det är av, hittas inte objekt i underkataloger. + Mönster eller Undantagsmönster: Inkludera eller undanta objekt som matchar + Undanta gömda filer + Visa alternativ (Visa identiska/olika filer, Bara filer i A/B/C) + +Om du ändrar inställningarna för att visa fler filer, måste du göra en omsökning via menyn KatalogAvsök igen. (Orsaken till det är att &kdiff3; utelämnar jämförelsen för filer enligt kriterierna för att få snabbare jämförelsehastighet.) Om du ändrade fil- och katalogmönster för att undanta filer, uppdateras fillistan omedelbart när inställningsdialogrutan stängs. Observera att när du skriver till en helt ny katalog vill du oftast också kopiera de identiska filerna. Aktivera Visa identiska filer i detta fall. Om din målkatalog är en av indatakatalogerna, är det inte nödvändigt eftersom filerna redan finns där. Om du är nöjd hittills, är resten enkelt. För att sammanfoga alla objekt: Välj Starta eller fortsätt katalogsammanfogning i menyn Katalog eller tryck på F7 (som är snabbtangenten). För att bara sammanfoga aktuellt objekt: Välj Utför åtgärd för aktuellt objekt eller tryck på F6. Om vissa objekt med ogiltiga filtyper fortfarande finns, på grund av filtyper med konflikter, visas en meddelanderuta och objekten pekas ut, så att du kan välja en giltig åtgärd för objektet. Om du sammanfogar alla objekt visas en dialogruta som ger dig alternativen Gör det, Simulera det och Avbryt. + + Välj Simulera det om du vill se vad som skulle göras utan att verkligen göra det. En utförlig lista med alla åtgärder visas. + Välj annars Gör det för att verkligen utföra sammanfogningen. + +Därefter utför &kdiff3; den angivna åtgärden för alla objekt. Om manuell interaktion krävs (sammanfogning av enstaka fil), visas ett sammanfogningsfönster (se den stora skärmbilden). När du är klar med manuell sammanfogning av en fil, välj återigen Starta eller fortsätt katalogsammanfogning eller tryck på F7. Om du inte har sparat ännu, ber en dialogruta dig att göra det. Därefter fortsätter &kdiff3; till nästa objekt. När &kdiff3; stöter på ett fel, meddelas det och utförlig statusinformation visas. Längst ner i listan finns det några felmeddelanden som bör hjälpa dig att förstå problemets orsak. När du fortsätter sammanslagningen (tangenten F7), ger &kdiff3; dig valet att försöka igen eller hoppa över objektet som orsakade problemet. Det betyder att du kan välja en annan åtgärd, eller lösa problemet på annat sätt, innan du fortsätter. När sammanfogningen är färdig, informerar &kdiff3; dig med en meddelanderuta. Om vissa objekt sammanfogades individuellt innan katalogsammanfogningen, kommer &kdiff3; ihåg det (medan sammanfogningssessionen pågår), och sammanfogar dem inte igen när sammanfogningen för alla objekt utförs. Även när sammanfogningen hoppas över eller ingenting sparas räknas dessa objekt som färdiga. Bara när sammanfogningsåtgärden ändras, tas objektets status Klar bort och det kan sammanfogas igen. + + +Alternativ för att jämföra och sammanfoga kataloger +Inställning av &kdiff3; (menyn InställningarAnpassa &kdiff3;) har en sida som heter "Katalogsammanfogning" med följande alternativ: + + + Rekursiva katalogerVälj om kataloger ska sökas igenom rekursivt. + Mönster för filerBara filer som matchar något mönster här läggs till i trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. (t.ex. "*.cpp;*.h"). Normalvärdet är "*". Mönstret används inte för kataloger. + Undantagsmönster för filer:Filer som matchar något mönster undantas från trädet. Mer än ett mönster kan anges här genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "*.orig;*.o;*.obj". + Undantagsmönster för filer:Kataloger som matchar något mönster undantas från trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "CVS;deps;.svn". + Använd ignoreringsfilIgnorera filer och kataloger som också skulle ignoreras av källkontroll. Många automatiskt genererade filer ignoreras av genom att använda ignoreringslistor. Den stora fördelen är att det kan vara katalogspecifikt via en lokal ignoreringsfil (se versionshanteringens dokumentation för mer information). + Sök efter gömda filer och katalogerFör vissa filsystem har filer egenskapen "Dold". För andra system döljs ett filnamn som börjar med en punkt ("."). Alternativet låter dig bestämma om dessa filer ska ingå i trädet eller inte. Normalvärdet är på. + Följ fillänkarFör länkar till filer: Om inaktiverad, jämförs de symboliska länkarna. Om aktiverad, jämförs filerna bakom länkarna. Normalvärdet är av. + Följ fillänkarFör länkar till kataloger: Om inaktiverad, jämförs symboliska länkar. Om aktiverad behandlas länken som en katalog och avsöks rekursivt. (Observera att programmet inte kontrollerar om länken är "rekursiv". En katalog som innehåller en länk till samma katalog skulle orsaka en oändlig snurra, och efter en viss tid när stacken blir full eller minnet tar slut, kraschar programmet.) Normalvärdet är av. + Skiftlägeskänslig filnamnsjämförelseFörvalt värde är falskt på &Windows;, och sant för andra operativsystem. + Filjämförelseläge: + + Binär jämförelseDet här är förvalt filjämförelseläge. + Fullständig analysGör en fullständig analys av varje fil och visa kolumner med statistisk information. (Antal Upplösta, Oupplösta, Inte blanka och Blanka konflikter.) Den fullständiga analysen är långsammare än en enkel binäranalys, och är mycket långsammare för filer som inte innehåller text. (Ange lämpliga filmönster för att undvika dem.) + Lita på storlek och ändringsdatum (inte säkert)Om du jämför stora kataloger via ett långsamt nätverk, kan det gå snabbare att bara jämföra ändringsdatum och fillängd. Men hastighetsförbättringen sker till priset av en liten osäkerhet. Använd alternativet med försiktighet. Normalvärdet är av. + Lita på storleken (inte säkert)Liknar att lita på ändringsdatum. Ingen verklig jämförelse sker. Två filer anses vara lika om deras filstorlekar är lika. Detta är användbart när filkopieringsåtgärden inte bevarade ändringsdatum. Använd alternativet med försiktighet. Normalvärdet är av. + + + Synkronisera katalogerAktiverar synkroniseringsläge när två kataloger jämförs och ingen explicit målkatalog anges. I det här läget väljes föreslagna åtgärder så att båda källkatalogerna är likadana efteråt. Sammanfogningsresultatet skrivs också till båda kataloger. Normalvärdet är av. + Kopiera nyare istället för att sammanfoga (inte säkert)Istället för att sammanfoga kopierar den föreslagna åtgärden den nyare källan om ändringar har skett. (Anses vara osäkert, eftersom det förutsätter att du vet att den andra filen inte också har redigerats. Kontrollera för att vara säker i varje enskilt fall.) Normalvärdet är av. + Säkerhetskopior (.orig)Om en fil eller hel katalog ersätts med en annan eller tas bort, då ändras originalversionens namn med tillägg av filändelsen .orig. Om en gammal säkerhetskopia med filändelsen .orig redan finns tas den bort utan säkerhetskopiering. Det här gäller också normal sammanfogning av enstaka filer, inte bara sammanfogningsläge för kataloger. Normalvärdet är på. + + + +Andra funktioner i katalogsammanfogningsfönstret +Delat eller fullskärmsläge +Oftast förblir listfönstret för katalogsammanfogning synligt medan en enstaka fil jämförs eller sammanfogas. Du kan flytta raden som delar fillistan från fönstren för textjämförelse med musen. Om du inte vill göra det, kan du inaktivera KatalogDelad skärmvy för kataloger och text. Därefter kan du använda KatalogByt vy för att byta mellan fillistan och fönstren för textjämförelse, som då upptar hela fönstret. + +Jämföra och sammanfoga en ensam fil +Du föredrar troligen ett vanligt dubbelklick på musen för att jämföra en fil. Hur som helst finns det också ett alternativ i menyn Katalog. Du kan också direkt sammanfoga en enstaka fil, utan att starta katalogsammanfogning via SammanfogaSammanfoga markerade filer. När resultatet sparas, sätts status till klar, och filen sammanfogas inte igen om en katalogsammanfogning startas. Men observera att statusinformationen går förlorad när du kör om en katalogavsökning: KatalogAvsök igen + +Jämföra eller sammanfoga filer med olika namn +Ibland behöver du jämföra eller sammanfoga filer med olika namn (t.ex. nuvarande fil och säkerhetskopian i samma katalog). Markera den exakta filen genom att klicka på ikonen i kolumnen A, B eller C. Filen som först markeras på det sättet markeras med A, den andra och tredje med B och C oberoende av vilken kolumn de finns i. Bara upp till tre filer kan markeras på detta sätt. Fortsätt genom att välja menyalternativet KatalogJämför explicit markerade filer eller KatalogSammanfoga explicit markerade filer. Av bekvämlighetsskäl finns också menyalternativen som en sammanhangsberoende meny som visas när du klickar på den senast markerade filen. Jämförelsen eller sammanfogningen av en fil sker i samma fönster. Om metoden används för kataloger öppnas ett nytt fönster. + +
+ + +Diverse ämnen + +Nätverkstransparens via KIO +I/O-slavar +KIO-biblioteket i Ramverk stöder nätverkstransparens via I/O-slavar. &kdiff3; använder dem för att läsa indatafiler och avsöka kataloger. Det betyder att du kan ange filer och kataloger pÃ¥ lokal- och fjärr-resurser via webbadresser. Exempel: +kdiff3 test.cpp ftp://ftp.langtbortistan.org/test.cpp + kdiff3 tar:/home/hackare/arkiv.tar.gz/kat ./kat + + +Den första raden jämför en lokal fil med en fil pÃ¥ en &FTP;-server. Den andra raden jämför en katalog i ett komprimerat arkiv med en lokal katalog. Andra I/O-slavar som är intressanta är: + +Filer frÃ¥n WWW (http:), +Filer frÃ¥n &FTP; (ftp:), +Krypterad filöverföring (fish:, sftp:), +&Windows;-resurser (smb:), +Lokala filer (file:), + +Andra saker som är möjliga, men troligen mindre användbara, är: + +Manualsidor (man:), +Infosidor (info:), + + + +Hur man skriver webbadresser +En webbadress har en annorlunda syntax jämfört med sökvägar till lokala filer och kataloger. Vissa saker mÃ¥ste tas hänsyn till: + +En sökväg kan vara relativ, och kan innehÃ¥lla "." eller "..". Det är inte möjligt för webbadresser, som alltid är absoluta. Specialtecken mÃ¥ste skrivas med särskilda "teckenföljder". ("#" blir "%23", mellanslag blir "%20", etc.) Till exempel skulle en fil med namnet "#foo#" ha webbadressen "file:/%23foo%23". När webbadresser inte fungerar som väntat, försök att öppna dem i &konqueror; först. + + + + +Möjligheter med I/O-slavar +Nätverkstransparens har en nackdel: Alla resurser har inte samma möjligheter. Ibland beror det pÃ¥ serverns filsystem, ibland pÃ¥ protokollet. Här är en kort lista med begränsningar: + +Ibland finns det inget stöd för länkar. Eller finns det inget sätt att särskilja om en länk pekar pÃ¥ en fil eller katalog, dÃ¥ antas alltid en fil (ftp:, sftp:). Kan inte alltid avgöra filstorleken. Begränsat stöd för rättigheter. Ingen möjlighet att ändra rättigheter eller ändringstid, sÃ¥ rättigheter eller tiden för en kopia skiljer sig frÃ¥n originalet. (Se alternativet Lita pÃ¥ storleken (inte säkert). Ändring av rättigheter eller ändringstid är bara möjligt för lokala filer.) + + + + + +Använda &kdiff3; som en Kpart +&kdiff3; är en Kpart. För närvarande implementeras gränssnittet KParts::ReadOnlyPart. Den huvudsakliga användningen är för skillnadsvisning i &kdevelop;. &kdevelop; startar alltid den interna skillnadsvisningen först. För att använda &kdiff3;, klicka med höger musknapp i skillnadsvisningens fönster och välj Visa i KDiff3-del i den sammanhangsberoende menyn. &kdiff3; kräver normalt tvÃ¥ fullständiga filer som indata. När det används som en del, antar &kdiff3; att indatafilen är en programfixfil med unifierat format. &kdiff3; hämtar därefter originalfilernas namn i programfixfilen. Åtminstone en av de tvÃ¥ filerna mÃ¥ste vara tillgänglig. &kdiff3; startar dÃ¥ kommandot patch för att Ã¥terskapa den andra filen. Du kan välja en programfixfil i &dolphin; och välja Förhandsgranska iKdiff3-del i den sammanhangsberoende menyn. Var medveten om att det inte fungerar om ingen av originalfilerna finns tillgänglig, och är inte tillförlitligt om originalfilen eller filerna har ändrats sedan programfixfilen skapades. När det kör som ett delprogram tillhandahÃ¥ller &kdiff3; bara jämförelse mellan tvÃ¥ filer, en mycket liten verktygsrad och meny. Sammanfogning eller katalogjämförelse stöds dÃ¥ inte. + + + +Använda &kdiff3; som ett verktyg för jämförelse och sammanfogning med &git; +&kdiff3; kan användas som ett verktyg för jämförelse och sammanfogning med &git;. +Lägg bara till följande rader i filen gitconfig. +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <sökväg till binärfilen kdiff3 pÃ¥ systemet> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <sökväg till binärfilen kdiff3 pÃ¥ systemet +> + +För att därefter se skillnaden mellan tvÃ¥ incheckningar använd git difftool första kondensat andra kondensat --tool=kdiff3 --cc nÃ¥gon fil i git-trädet +Använd git merge grennamn && git mergetool --tool=kdiff3 för att sammanfoga en gren med &kdiff3;. +Efter att sammanfogningskonflikter har lösts pÃ¥ vanligt sätt är det tillräckligt att checka in ändringarna för att göra färdigt. + + + + +Vanliga frÃ¥gor&reporting.bugs; &updating.documentation; + +Varför kallas det "&kdiff3;"? Verktyg som heter KDiff och KDiff2 (som nu kallas &kompare;) fanns redan. Dessutom ska &kdiff3; antyda att programmet kan sammanfoga som verktyget diff3 frÃ¥n samlingen med diff-verktyg. + +Varför licensieras det under GPL? Jag har använt GPL-program under mycket lÃ¥ng tid nu, och lärt mig mycket genom att titta pÃ¥ en hel del av källkoden. AlltsÃ¥ är det här mitt "tack" till alla programmerare som ocksÃ¥ gjorde eller kommer att göra samma sak. + +Vissa knappar och funktioner saknas. Vad är fel? Du kompilerade frÃ¥n källkod, men angav troligen inte rätt prefix för installationen. Normalt vill cmake installera i /usr/local, men dÃ¥ kan inte resursfilen för användargränssnittet (dvs. kdiff3ui.rc) hittas. Filen README innehÃ¥ller mer information om det riktiga prefixet. + +Ofta visas rader som är liknande men inte identiska intill varandra, men inte alltid. Varför? Rader där bara antal blanktecken är olika behandlas som "lika", medan bara ett annorlunda blanktecken gör att raderna är "olika". Om liknande rader finns intill varandra, är detta i själva verket en slump men det är som tur är oftast fallet. Se ocksÃ¥ hjälpen pÃ¥ manualsidan för diff. + +Varför mÃ¥ste alla konflikter vara lösta innan sammanfogningsresultatet kan sparas? För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihÃ¥g var det börjar och slutar. Det behövs eftersom konflikter kan lösas upp manuellt genom att helt enkelt välja källknappen (A, B eller C). Informationen gÃ¥r förlorad när filen sparas som text, och det är för mycket ansträngning att skapa ett speciellt filformat som stöder att spara och Ã¥terställa all nödvändig information. + +Hur kan jag synkronisera jämförelsevyn och sammanfogningsvyn sÃ¥ att alla vyer visar samma textposition? Klicka pÃ¥ sammanfattningskolumnen till vänster om texten. (Se ocksÃ¥ här.) + +Varför har inte editorn i resultatfönstret för sammanfogning en "Ã¥ngra"-funktion? Hittills har det varit för stor ansträngning. Du kan alltid Ã¥terställa en version frÃ¥n en källa (A, B eller C) genom att klicka pÃ¥ motsvarande knapp. För större redigering, rekommenderas användning av en annan editor ändÃ¥. + +När jag tog bort en del text, visades plötsligt "<Ingen källrad>" och det kan inte tas bort. Vad betyder det och hur kan man ta bort det? För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihÃ¥g var det börjar och slutar. "<Ingen källrad>" betyder att det inte finns nÃ¥gonting kvar i ett avsnitt, inte ens ett nyradstecken. Detta kan inträffa antingen vid automatisk sammanfogning eller efter redigering. Det är inget problem, eftersom informationen inte finns med i den sparade filen. Om du vill ha tillbaka originalkällan, markera bara källan (klicka pÃ¥ sammanfattningskolumnen till vänster) och klicka därefter pÃ¥ källknappen med innehÃ¥llet som önskas (A, B eller C). + +Varför stöder inte &kdiff3; syntaxfärgläggning? &kdiff3; använder redan mÃ¥nga färger för färgläggning av jämförelser. Ytterligare färgläggning skulle vara förvirrande. Använd en annan editor för detta. + +Kan man använda &kdiff3; för att jämföra OpenOffice.org, &Microsoft; Word, &Microsoft; Excel, &PDF;-filer, etc.? Även om &kdiff3; kan analysera alla sorters filer, är resultatet troligen inte särskilt tillfredsställande för dig. &kdiff3; skapades för att jämföra rena textfiler. OpenOffice, &Microsoft; Word, &Microsoft; Excel, och sÃ¥ vidare, lagrar mycket mer information i filerna (om teckensnitt, bilder, sidor, färger, etc.), som &kdiff3; inte känner till. AlltsÃ¥ visar &kdiff3; dig innehÃ¥llet i filen tolkat som ren text, men det kan vara oläsbart eller Ã¥tminstone se mycket konstigt ut. Eftersom de flesta program nuförtiden lagrar sitt innehÃ¥ll med &XML;-format, kanske du kan läsa det som ren text. Om ändringen bara var liten, kanske &kdiff3; fortfarande kan hjälpa dig. Den bästa lösningen om du bara vill jämföra texten (utan inbäddade objekt som bilder) är att använda menyalternativen RedigeraMarkera alla och RedigeraKopiera i programmet för att kopiera den intressanta texten till klippbordet och därefter klistra in texten i nÃ¥got av jämförelsefönstren i &kdiff3;. (Se ocksÃ¥ Markera, kopiera och klistra in.) + +Vart har katalogalternativet Lista bara skillnader tagit vägen? Det finns nu flera olika "Visa"-alternativ i menyn Katalog. Att inaktivera Visa identiska filer Ã¥stadkommer vad aktivering av Lista bara skillnader brukade göra. + +Hur kan man göra en stor markering i jämförelsefönstret fastän det tar sÃ¥ lÃ¥ng tid att rulla texten? PÃ¥börja markeringen som vanligt (klicka och hÃ¥ll nere vänster musknapp). Använd därefter navigationstangenterna (t.ex. Page Up, Page Down) medan vänster musknapp hÃ¥lls nere. (Se ocksÃ¥ Markera, kopiera och klistra in.) + +Det finns en stor mängd information här, men din frÃ¥ga har ändÃ¥ inte besvarats? Skicka gärna din frÃ¥ga till mig. Jag uppskattar alla kommentarer. + + + + + + +Tack till och licens + +&kdiff3;: Verktyg för jämförelser och sammanfogning av filer och kataloger +Program copyright 2002-2007 Joachim Eibl joachim.eibl snabela gmx.de +Flera häftiga idéer och felrapporter kom frÃ¥n kolleger och mÃ¥nga personer ute i den Vida Vilda Världen. Tack! + +Dokumentation Copyright © 2002-2007 Joachim Eibl joachim. eibl snabela gmx.de + +Dokumentation Copyright © 2017-2019 Michael Reeves reeves.87 snabela gmail.com + +Översättning Stefan Asserhällstefan.asserhall@bredband.net &underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/sv/docs/kdiff3/man-kdiff3.1.docbook b/po/sv/docs/kdiff3/man-kdiff3.1.docbook new file mode 100644 index 0000000..134e860 --- /dev/null +++ b/po/sv/docs/kdiff3/man-kdiff3.1.docbook @@ -0,0 +1,451 @@ + + +]> + + + +Kdiff3 användarhandbok +BurkhardLueck KDiff3 manualsida. &Burkhard.Lueck.mail; +2019-02-22 +kdiff3 1.8 + + + +kdiff3 +1 + + + +kdiff3 +Verktyg för jämförelse och sammanfogning av filer och kataloger + + + +kdiff3 fil fil fil alias1 alias2 alias3 alias sträng fil + + + +Beskrivning +Jämför två eller tre indatafiler eller -kataloger. + + + + +Alternativ + + + +Ignorera (användardefinierad). + + + + +Ignorera (användardefinierad). + + + + +Ignorera (användardefinierad). + + + + +Ignorera (användardefinierad). + + + + +Sammanfoga indata. + + + + fil +Explicit grundfil. För kompatibilitet med vissa verktyg. + + + + fil +Utdatafil. Förutsätter -m. T.ex. -o nyfil.txt + + + + fil +Utdatafil, igen. (För kompatibilitet med vissa verktyg.) + + + + +Inget grafiskt användargränssnitt om alla konflikter kan lösas automatiskt. (Kräver fil) + + + + +Ignorera --auto och visa alltid användargränssnittet. + + + + alias1 +Synlig namnersättning för indatafil 1 (grund). + + + + alias2 +Synlig namnersättning för indatafil 2. + + + + alias3 +Synlig namnersättning för indatafil 3. + + + + alias +Alternativ synlig namnersättning. Använd en gång för varje indata. + + + + sträng +Överskrid en inställning. Använd en gång för varje inställning. T.ex. AutoAdvance=1. + + + + +Visa en lista över inställningsalternativ och nuvarande värden. + + + + fil +Använd en annan inställningsfil. + + + + +Fil 1 att öppna (grund, om ej angiven via --) + + + + +Fil 2 att öppna + + + + +Fil 3 att öppna + + + + + + + +Se också + +Mer detaljerad användardokumentation är tillgänglig med help:/kdiff3 (skriv antingen in webbadressen i &konqueror;, eller kör khelpcenter help:/kdiff3) +kf5options(7) +qt5options(7) + + + + +Upphovsmän +Den här manualsidan är skriven av &Burkhard.Lueck; &Burkhard.Lueck.mail;. + + + diff --git a/po/sv/kdiff3.po b/po/sv/kdiff3.po new file mode 100644 index 0000000..c3e61ca --- /dev/null +++ b/po/sv/kdiff3.po @@ -0,0 +1,3577 @@ +# translation of kdiff3.po to Swedish +# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# +# Stefan Asserhäll , 2004, 2005, 2006, 2007, 2008, 2009, 2010. +# Stefan Asserhall , 2010, 2011, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-16 07:53+0100\n" +"Last-Translator: Stefan Asserhäll \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Stefan Asserhäll" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "stefan.asserhall@bredband.net" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Hämtar filstatus: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Läser fil: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Skriver fil: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Slut på minne" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Skapar katalog: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Tar bort katalog: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Tar bort fil: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Skapar symbolisk länk: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Byter namn på fil: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Kopierar fil: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Läser katalog: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Listar katalog: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Dataförlustfel:\n" +"Om det går att upprepa, kontakta upphovsmannen.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Allvarligt internt fel" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Allvarligt internt fel." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Allvarligt internt fel:" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Fil %1; Rad %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Fil %1: Rad inte tillgänglig" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodning:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Typ av radslut:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (bas)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kodning: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Typ av radslut: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Övre rad" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Slut" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Öppna fil" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bitar" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Annan" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Kopiera A till B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Kopiera B till A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Ta bort A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Ta bort B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Ta bort A och B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Sammanfoga till A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Sammanfoga till B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Sammanfoga till A och B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Ta bort (om den finns)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Sammanfoga" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Sammanfoga (manuellt)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Fel: Konflikt i filtyper" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Fel: Ändrad och borttagen" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Fel: Datum är lika men filerna är det inte." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Klar" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Fel" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Överhoppad." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Inte sparad." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Pågår..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Att göra." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Namn" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Åtgärd" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Status" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Olöst" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Löst" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Inte blank" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Blank" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Du håller för närvarande på med att sammanfoga kataloger. Är du säker på att " +"du vill avbryta den och avsöka katalogen igen?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Varning" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Avsök igen" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Fortsätt sammanfoga" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Öppna katalogerna misslyckades:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Katalog A \"%1\" finns inte eller är inte en katalog.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Katalog B \"%1\" finns inte eller är inte en katalog.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Katalog C \"%1\" finns inte eller är inte en katalog.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Fel vid öppna katalog" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Målkatalogen får inte vara samma som A eller B när tre kataloger " +"sammanfogas.\n" +"Kontrollera igen innan du fortsätter." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parametervarning" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Söker i kataloger..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Läser katalog A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Läser katalog B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Läser katalog C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Vissa underkataloger kunde inte läsas i" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Kontrollera rättigheter för underkatalogerna." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Klar." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Status för katalogjämförelse\n" +"\n" +"Antal underkataloger: %1\n" +"Antal likadana filer: %2\n" +"Antal olika filer: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Antal manuella sammanfogningar: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Det här påverkar alla sammanfogningsåtgärder." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Ändra alla sammanfogningsåtgärder" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Behandlar %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Några filer kunde inte behandlas." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Avbryter på grund av för många fel." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Den här åtgärden är för närvarande inte möjlig att utföra." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Åtgärd inte möjlig" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Ett fel uppstod vid kopiering." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Sammanfogningsfel" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Okänd sammanfogningsåtgärd. (Det här får aldrig inträffa!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Okänd sammanfogningsåtgärd." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Sammanfogning ska nu börja.\n" +"\n" +"Välj \"Gör det\" om du har läst instruktionerna och vet vad du gör.\n" +"Genom att välja \"Simulera det\" får du reda på vad som skulle hända.\n" +"\n" +"Var medveten om att det här programmet fortfarande har beta-status, och det " +"finns INGA GARANTIER överhuvudtaget! Gör säkerhetskopior av viktig " +"information!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Startar sammanfogning" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Gör det" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Simulera det" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Det markerade objektet har olika typ i de olika katalogerna. Välj vad du " +"vill göra." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Ändringsdatum för filerna är samma, men filerna är det inte. Välj vad du " +"vill göra." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Det markerade objektet har olika typ i de olika katalogerna. Välj vad du " +"vill göra." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"Den här åtgärden är för närvarande inte möjlig eftersom katalogsammanfogning " +"för närvarande kör." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Ett fel uppstod under föregående steg.\n" +"Vill du fortsätta med objektet som orsakade felet, eller vill du hoppa över " +"objektet?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Fortsätt sammanfoga efter ett fel" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Fortsätt med sista objekt" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Hoppa över objekt" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Sammanfogningsåtgärd färdig." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Sammanfogning färdig" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simulerad sammanfogning färdig. Kontrollera om du håller med om de " +"föreslagna åtgärderna." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Ett fel uppstod. Tryck på Ok för att se detaljerad information." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Fel: Vid borttagning av %1: Misslyckades skapa säkerhetskopia." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "ta bort katalog rekursivt (%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "Ta bort (%1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Fel: Borttagningsåtgärd för katalog misslyckades när katalogen skulle läsas." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Fel: Åtgärden rmdir (%1) misslyckades." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Fel: Borttagningsåtgärden misslyckades." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "Manuell sammanfogning (%1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Observera: Efter en manuell sammanfogning bör användaren fortsätta " +"genom att trycka på F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Fel: Kopiering (%1 -> %2) misslyckades. Borttagning av befintlig fil " +"misslyckades." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "Kopiera länk (%1 -> %2)" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Fel: Kopiera länk misslyckades: Fjärrlänkar stöds inte ännu." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Fel: Kopiera länk misslyckades." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "Kopiera (%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "Fel vid namnbyte (%1 -> %2): Kan inte ta bort befintlig fil." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "Byt namn (%1 -> %2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Fel: Namnbyte misslyckades." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "Fel när katalogen %1 skulle skapas: Kan inte ta bort befintlig fil." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "Skapa katalog (%1)" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Fel vid skapa katalog." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Mål" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Katalog" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Typ" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Storlek" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Egenskap" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Senast ändrad" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Länkmål" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Arkiv" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Länk" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "Ej tillgänglig" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (mål): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (bas): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (mål): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (mål): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Mål: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Spara tillstånd för katalogsammanfogning som..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Starta eller fortsätt katalogsammanfogning" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Utför åtgärd för aktuellt objekt" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Jämför markerade filer" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Sammanfoga markerade filer" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Sammanfoga\n" +"fil" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Dra ihop alla underkataloger" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Expandera alla underkataloger" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Välj A för alla objekt" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Välj B för alla objekt" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Välj C för alla objekt" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Välj automatiskt åtgärd för alla objekt" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Ingen åtgärd för något objekt" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Visa identiska filer" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Identiska\n" +"filer" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Visa olika filer" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Visa bara filer i A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Bara\n" +"filer i A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Visa bara filer i B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Bara\n" +"filer i B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Visa bara filer i C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Bara\n" +"filer i C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Jämför explicit markerade filer" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Sammanfoga explicit markerade filer" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Gör ingenting" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Ta bort A och B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Sammanfoga till A och B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" +"Kan inte bestämma fullständig webbadress. Inget överliggande objekt angivet." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Misslyckades läsa fil: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Att skapa tillfällig kopia av %1 misslyckades." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Öppna %1 misslyckades: %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Fel vid läsning från %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Vid försök att skapa en säkerhetskopia, misslyckades borttagning av äldre " +"säkerhetskopia.\n" +"Filnamn: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Vid försök att skapa en säkerhetskopia, misslyckades namnbyte.\n" +"Filnamn: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Aktuell inställning:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Fel i inställningsalternativ:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Väljaren --auto användes, men ingen utdatafil angavs." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Väljaren --auto ignoreras för katalogjämförelse." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Misslyckades spara." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Misslyckades öppna följande filer:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Fel när filen öppnades" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Öppnar dokument för jämförelse..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Uppdatera" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Sparar sammanfogningsresultat. Alla konflikter måste vara lösta." + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Sparar aktuellt dokument som..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Skriv ut skillnaderna" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Avslutar programmet" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Klipper ut markerad del och flyttar den till klippbordet" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Kopierar markerad del till klippbordet" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Klistrar in klippbordets innehåll på aktuell position" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Markera allting i nuvarande fönster" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Sök efter en sträng" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Sök efter strängen igen" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Aktiverar/inaktiverar statusraden" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Anpassa Kdiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Gå till aktuell skillnad" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Aktuell\n" +"skillnad" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Gå till första skillnad" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Första\n" +"skillnad" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Gå till sista skillnad" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Sista\n" +"skillnad" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(Hoppar över skillnader i blanktecken när \"Visa blanktecken\" är " +"inaktiverat.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Hoppar inte över skillnader i blanktecken även när \"Visa blanktecken\" är " +"inaktiverat.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Gå till föregående skillnad" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Föregående\n" +"skillnad" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Gå till nästa skillnad" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Nästa\n" +"skillnad" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Gå till föregående konflikt" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Föregående\n" +"konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Gå till nästa konflikt" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Nästa\n" +"konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Gå till föregående olösta konflikt" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Föregående\n" +"olösta" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Gå till nästa olösta konflikt" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Nästa\n" +"olösta" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Välj rad(er) från A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Välj\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Välj rad(er) från B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Välj\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Välj rad(er) från C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Välj\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Gå automatiskt till nästa olösta konflikt efter val av källa" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Automatiskt\n" +"nästa" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Visa mellanslag och tabulatortecken" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Blank\n" +"tecken" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Visa blanktecken" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Blanktecken\n" +"skillnader" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Visa radnummer" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Rad\n" +"nummer" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Lös automatiskt enkla konflikter" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Ändra skillnader till konflikter" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Kör automatisk sammanfogning med reguljärt uttryck" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Lös automatiskt historikkonflikter" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Dela jämförelse vid markering" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Foga ihop markerade jämförelser" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Visa fönster A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Visa fönster B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Visa fönster C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normal översikt" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A mot B-översikt" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A mot C-översikt" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B mot C-översikt" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Radbryt skillnadsfönster" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Lägg till manuell justering av jämförelse" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Rensa alla manuella justeringar av jämförelse" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Fokus till nästa fönster" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Fokus till föregående fönster" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Byt delningsorientering" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Delad skärmvy för kataloger och text" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Byt mellan katalog och textvy" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Sammanfogningsresultatet har inte sparats." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Spara och avsluta" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Avsluta utan att spara" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Misslyckades spara sammanfogningsresultatet." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Du håller för närvarande på med en katalogsammanfogning. Är du säker på att " +"du vill avbryta?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Sparar fil..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Sparar fil med ett nytt namn..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Spara som..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Utskrift inte implementerad." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Skriver ut..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Skriver ut sida %1 av %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (markering)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Utskrift färdig." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Utskrift avbruten." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Avslutar..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Växlar verktygsrad..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Växla statusraden..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Kdiff3-del" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "Ett KDE delprogram för att visa SVG-bilder" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Copyright 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&Kdiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Anpassa Kdiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "Kdiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Kunde inte initiera Kdiff3-delprogrammet.\n" +"Detta händer oftast beroende på ett installationsproblem. Läs filen README i " +"källkodspaketet för detaljinformation." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Arkiv" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "Katal&og" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Sammanfogningsåtgärd för aktuellt objekt" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Synkroniseringsåtgärd för aktuellt objekt" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "Förfl&yttning" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "&Jämförelsevy" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "Samman&foga" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "Fö&nster" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Huvudverktygsrad" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ignorerad. (Användardefinierad.)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bitar)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bitar)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Verktyg för jämförelse och sammanfogning av filer och kataloger" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"© 2002-2014 Joachim Eibl, © 2017 Michael Reeves Konvertering till KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Sammanfoga indata." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Explicit basfil. För att fungera tillsammans med vissa verktyg." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Utdatafil. Betyder underförstått -m. T.ex.: -o ny_fil.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Utdatafil, igen. (för att fungera med vissa verktyg.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Inget grafiskt gränssnitt om alla konflikter kan lösas automatiskt (kräver -" +"o fil)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ignorera --auto och visa alltid användargränssnittet." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Ignorerad." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Synlig ersättning av namn för indatafil 1 (bas)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Synlig ersättning av namn för indatafil 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Synlig ersättning av namn för indatafil 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Alternativ synlig ersättning av namn. Ange detta en gång för all indata." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Överskrid en inställning. Använd en gång för varje inställning, t.ex. --cs " +"\"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Visa lista med inställningar och nuvarande värden." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Använd en annan inställningsfil." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "Fil 1 att öppna (basfil, om den inte anges med --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "Fil 2 att öppna" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "Fil 3 att öppna" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Se kdiff3 --help för ytterligare väljare som stöds." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Kan inte jämföra icke-normal fil med normal fil." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Blandning av länkar och normala filer." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Länk: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Storlek: " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Datum och storlek: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Jämför fil..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Välj A överallt" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Välj B överallt" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Välj C överallt" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Välj A för alla olösta konflikter" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Välj B för alla olösta konflikter" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Välj C för alla olösta konflikter" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Välj A för olösta konflikter med blanktecken" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Välj B för olösta konflikter med blanktecken" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Välj C för olösta konflikter med blanktecken" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Antal återstående olösta konflikter: %1 (av vilka %2 är blanktecken)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Utdata har ändrats.\n" +"Om du fortsätter kommer dina ändringar att gå förlorade." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Alla indatafiler är binärt lika." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Alla indatafiler innehåller samma text." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Filerna %1 och %2 är binärt likadana.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Filerna %1 och %2 innehåller samma text.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Totalt antal konflikter: %1\n" +"Antal automatiskt lösta konflikter: %2\n" +"Antal olösta konflikter: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Konflikter" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Alla konflikter har inte lösts ännu.\n" +"Filen har inte sparats." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Konflikter kvar" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Det finns konflikter i typ av radslut. Välj typ av radslut manuellt.\n" +"Filen har inte sparats." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Misslyckades skapa säkerhetskopia. Filen sparades inte." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Fel vid spara fil" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Fel vid skrivning." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Utmatning:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Ändrad]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Kodning för att spara:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Konflikt" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Kodare från A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Kodare från B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Kodare från C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Dialogruta" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (bas):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Utmatning (valfri):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Fil..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Byt eller kopiera namn..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (valfri):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Katalog..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"En av versionshanteringens historikposter består av flera rader.\n" +"Ange det reguljära uttrycket för att detektera första raden (utan den " +"inledande kommentaren).\n" +"Använd parenteser för att gruppera nycklarna du vill använda för sortering.\n" +"Om det lämnas tomt, antar Kdiff3 att tomma rader skiljer historikposterna " +"åt.\n" +"Se dokumentationen för detaljinformation." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Varje parentes som används i det reguljära uttrycket för historikpostens " +"början\n" +"grupperar en nyckel som kan användas för sortering.\n" +"Ange listan med nycklar (som numreras i den ordning de förekommer med\n" +"början på 1), med användning av ',' som skiljetecken (t.ex. " +"\"4,5,6,1,2,3,7\").\n" +"Om det lämnas tomt, görs ingen sortering.\n" +"Se dokumentationen för detaljinformation." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Reguljärt uttryck för rader där Kdiff3 automatiskt ska välja en källa.\n" +"När en rad med en konflikt matchar det reguljära uttrycket väljes -C\n" +"om tillgängligt, annars väljes B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Reguljärt uttryck för början av versionshanteringens historikpost.\n" +"Oftast innehåller raden nyckelordet \"$Log$\".\n" +"Standardvärde: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Östen äter müsli på ett café\n" +"med mössan på sné.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Ändra teckensnitt" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Teckensnitt: %1, %2, %3\n" +"\n" +"Exempel:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "Ändra det här om tecken som inte är ASCII inte visas riktigt." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Anpassa" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Teckensnitt" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Teckensnitt för editor och jämförelser" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Programteckensnitt" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Filvisningsteckensnitt" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Färg" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Färginställningar" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Editor- och skillnadsvyer:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Förgrundsfärg:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Bakgrundsfärg:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Bakgrundsfärg för jämförelse:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Färg A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Färg B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Färg C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Konfliktfärg:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Bakgrundsfärg för aktuellt intervall:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Bakgrundsfärg för aktuellt jämförelseintervall:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Färg för manuellt justerade jämförelseintervall:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Katalogjämförelsevy:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Färg för nyaste fil:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "Att ändra färgen får bara effekt när nästa katalogjämförelse startas." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Färg för äldsta fil:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Färg för medelgammal fil:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Färg för saknade filer:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Editor" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Editorbeteende" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tabulator infogar mellanslag" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"På: Genom att trycka på tabulator, skapas lämpligt antal mellanslag.\n" +"Av: Ett tabulatortecken infogas." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tabulatorbredd:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Automatisk indentering" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "På: Indentering av föregående rad används för en ny rad.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Kopiera automatiskt markering" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"På: Alla markeringar skrivs omedelbart till klippbordet.\n" +"Av: Du måste kopiera explicit, t.ex. via Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Detektera automatiskt" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Anger radsluten när en redigerad fil sparas.\n" +"DOS/Windows: CR+LF, Unix: LF, med CR=0D och LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Jämför" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Inställningar av jämför" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ignorera tal (behandla som blanktecken)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ignorera siffror när rader matchas. (Liknar ignorera blanktecken.)\n" +"Kan hjälpa till att jämföra filer med numerisk data." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ignorera C/C++ kommentarer (behandla som blanktecken)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Behandla C/C++ kommentarer som blanktecken." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ignorera skiftläge (behandla som blanktecken)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Behandla skiftlägesskillnader som blankteckenskillnader. ('a' <=> 'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Preprocessorkommando:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" +"Användardefinierad förbehandling (Se dokumentationen för detaljinformation.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Preprocessorkommando för radmatchning:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Den här preprocessorn används bara under radmatchning.\n" +"(Se dokumentationen för detaljinformation.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Var noggrann (långsammare)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Aktiverar väljaren --minimal för det externa verktyget diff.\n" +"Analys av stora filer blir mycket långsammare." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Justera B och C vid tre indatafiler" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Försök justera B och C vid jämförelse eller sammanfogning av tre " +"indatafiler.\n" +"Rekommenderas inte vid sammanfogning eftersom den kan bli mer komplicerad\n" +"(normalvärdet är av)," + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Sammanfoga" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Inställningar av sammanfoga" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Fördröjning vid automatisk fortsättning (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Vid läget automatisk fortsättning, visas resultatet av aktuell markering\n" +"under den angivna tiden, innan det går vidare till nästa konflikt. " +"Intervall: 0-2000 ms." + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Visa informationsdialogrutor" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Visa en dialogruta med information om antal konflikter." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Standardvärde för sammanfogning av blanktecken med två filer:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Manuellt val" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Tillåt att sammanfogningsalgoritmen automatiskt väljer indata för ändringar " +"av bara blanktecken." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Standardvärde för sammanfogning av blanktecken med tre filer:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Automatisk sammanfogning med reguljärt uttryck" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Reguljärt uttryck för automatisk sammanfogning:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Kör automatisk sammanfogning med reguljärt\n" +"uttryck omedelbart när en sammanfogning startar.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Sammanfogning enligt versionshanteringshistorik" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Reguljärt uttryck för historikens början:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Reguljärt uttryck för historikpostens början:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Sortering av historiksammanfogning" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Sortera versionshanteringshistoriken med en nyckel." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Sorteringsnycklarnas ordning från historikpostens början:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" +"Sammanfogning enligt versionshanteringshistorik när sammanfogning startar" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Kör automatisk sammanfogning enligt versionshanteringshistorik när " +"sammanfogning startar." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Maximalt antal historikposter:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Skär bort efter angivet antal. Använd -1 för obegränsat antal poster." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Prova dina reguljära uttryck" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Ej relevant sammanfogningskommando:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Om angivet körs det här skriptet efter automatisk sammanfogning\n" +"när inga andra relevanta ändringar detekterades.\n" +"Anropas med parametrarna: filnamn1 filnamn2 filnamn3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Spara automatiskt och avsluta vid sammanfogning utan konflikter" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"När Kdiff3 startas från kommandoraden för en filsammanfogning och alla\n" +"konflikter kan lösas utan användarinteraktion, spara då automatiskt och " +"avsluta.\n" +"(Liknar kommandoradsväljaren \"--auto\".)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Rekursiva kataloger" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Om underkataloger ska analyseras eller inte." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Mönster för filer:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mönster för filer som ska analyseras.\n" +"Jokertecken: '*' och '?'\n" +"Flera mönster kan anges genom att använda skiljetecknet ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Undantagsmönster för filer:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mönster för filer som ska undantas från analys.\n" +"Jokertecken: '*' och '?'\n" +"Flera mönster kan anges genom att använda skiljetecknet ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Undantagsmönster för kataloger:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Mönster för kataloger som ska undantas från analys.\n" +"Jokertecken: '*' och '?'\n" +"Flera mönster kan anges genom att använda skiljetecknet ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Använd ignoreringsfil" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Utökar undantagsmönster med allt som skulle ignoreras av källkontroll.\n" +"Med lokala ignoreringsfiler, kan det vara katalogspecifikt." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Sök efter gömda filer och kataloger" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Söker efter gömda filer och kataloger." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Följ fillänkar" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"På: Jämför filen som länken pekar på.\n" +"Av: Jämför länkarna." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Följ kataloglänkar" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"På: Jämför filen som länken pekar på.\n" +"Av: Jämför länkarna." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Skiftlägeskänslig filnamnsjämförelse" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Katalogjämförelsen jämför filer eller kataloger när deras namn matchar.\n" +"Ange alternativet om namnens skiftläge måste matcha. (Normalvärdet för " +"Windows är av, annars på.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Expandera alla underkataloger vid inläsning" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"På: Expandera alla underkataloger när en katalogjämförelse påbörjas.\n" +"Av: Lämna underkataloger ihopdragna." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Hoppa över katalogstatusrapport" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"På: Visa inte katalogjämförelsestatus.\n" +"Av: Visa statusdialogrutan vid start." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Filjämförelseläge" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Binär jämförelse" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binär jämförelse av varje fil. (Standardvärde)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Fullständig analys" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Gör en fullständig analys och visa statistisk information i extra kolumner.\n" +"(Långsammare än binär jämförelse, mycket långsammare för binärfiler.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Lita på storlek och ändringsdatum (inte säkert)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Antar att filer är lika om ändringsdatum och fillängden är lika.\n" +"Filer med lika innehåll men olika ändringsdatum kommer att verka vara " +"olika.\n" +"Användbar för stora kataloger eller långsamma nätverk." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Lita på storlek och datum, men använd binärjämförelse om datum inte stämmer " +"(inte säkert)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Antar att filer är lika om ändringsdatum och fillängden är lika.\n" +"Om datumen inte är lika men storlekarna är det, används binärjämförelse.\n" +"Användbar för stora kataloger eller långsamma nätverk." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Lita på storleken (inte säkert)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Antar att filer är lika om deras fillängder är lika.\n" +"Användbar för stora kataloger eller långsamma nätverk när datum ändras under " +"nerladdning." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Synkronisera kataloger" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Erbjuder att lagra filer i båda katalogerna, så att båda\n" +"blir likadana efteråt. Fungerar bara när två kataloger\n" +"jämförs och ingen målkatalog anges." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Skillnader i blanktecken anses lika" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Om filer bara skiljer sig med blanktecken, anse dem lika.\n" +"Det här är bara aktiverat när fullständig analys väljes." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Kopiera nyare istället för att sammanfoga (inte säkert)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Titta inte i filen, utan använd bara den nyare filen.\n" +"(Använd bara det här om du vet vad du gör!)\n" +"Har bara någon effekt när två kataloger jämförs." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Säkerhetskopior (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"När en fil skulle sparas och en gammal fil redan finns, kommer den\n" +"gamla filen att döpas om med filändelsen '.orig' istället för att tas bort." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Regionsinställningar" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Använd samma kodning för allt:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Att aktivera det här låter dig ändra alla kodningar genom att bara ändra den " +"första.\n" +"Inaktivera det om olika individuella inställningar behövs." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Observera: Lokal kodning är \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Filkodning för A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Om aktiverad detekteras Unicode-kodning (UTF-16 eller UTF-8).\n" +"Om filens kodning inte kan detekteras, används den valda kodningen som " +"reserv.\n" +"(Detektering av Unicode beror på den första byten i en fil.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Detektera automatiskt Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Filkodning för B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Filkodning för C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Filkodning för sammanfogad utdata och vid spara:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Automatiskt markering" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Om aktiverad används indatafilernas kodning.\n" +"I tvetydiga fall ombedes användaren att välja kodning för att spara med en " +"dialogruta." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Filkodning för preprocessorfiler:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Språk som läses från höger till vänster" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Vissa språk läses från höger till vänster.\n" +"Inställningen ändrar visningen och editorn på motsvarande sätt." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Integrering" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Integreringsinställningar" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Kommandoradsväljare att ignorera:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Lista med kommandoradsväljare som ska ignoreras när Kdiff3 används av andra " +"verktyg.\n" +"Flera värden kan anges om de åtskiljs av ';'\n" +"Detta undertrycker felmeddelandet \"Okänd väljare\"." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Avsluta också via Esc-tangenten" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Snabb metod att avsluta.\n" +"För de som är vana vid att använda Esc-tangenten." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Det här återställer alla alternativ, inte bara de i nuvarande ämne." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "Preprocessorkommando: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Följande alternativ du valde kan ändra data:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Troligen är det inte önskvärt under en sammanfogning.\n" +"Vill du inaktivera inställningarna eller fortsätta med inställningarna " +"aktiva?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Alternativ osäkert vid sammanfogning" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Använd alternativen under sammanfogningen" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Inaktivera osäkra alternativ" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Läser in A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Läser in A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Läser in B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Läser in B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Jämförelse: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Radjämförelse: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Läser in C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Läser in C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Jämförelse: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Jämförelse: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Radjämförelse: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Radjämförelse: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "Alla indatafiler innehåller samma text, men är inte binärt likadana." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "Filerna %1 och %2 har samma text, men är inte binärt likadana.\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Vissa indatafiler verkar inte vara rena textfiler.\n" +"Observera att Kdiff3:s sammanfogning inte är avsedd för binärdata.\n" +"Fortsätt på egen risk." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Vissa indatatecken kunde inte konverteras till giltig Unicode.\n" +"Du kanske använder fel avkodare (t.ex. UTF-8 för filer som inte använder " +"UTF-8).\n" +"Spara inte resultatet om du är osäker. Fortsätt på egen risk.\n" +"Berörda indatafiler finns i %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Avbryt" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Öppnar filer..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Klipper ut markering..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Kopierar markering till klippbord..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Infogar klippbordets innehåll..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Radbrytning (Avbryt inaktiverar radbrytning)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Beräknar maximal bredd för horisontell rullningslist" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Spara och fortsätt" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Fortsätt utan att spara" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Sökning färdig." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Sökning färdig" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Ingenting är markerad i något indatafönster med jämförelse." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Fel vid tillägg av manuellt jämförelseintervall" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Avbryt" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Byt ut %1 mot %2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Kopiera %1 till utdata" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Byt %1 mot utmatning" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Anpassa..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Öppna katalog" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Välj utdatafil" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "Alla/Alla filer (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Söktext:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Skiftlägeskänslig" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Sök A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Sök B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Sök C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Sökutmatning" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Sök" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Test av reguljära uttryck" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Exempel på rad för automatisk sammanfogning:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"För att prova automatisk sammanfogning, kopiera en rad som används i dina " +"filer." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Matchningsresultat:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Exempel på startrad för historik (med inledande kommentar):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Kopiera en startrad för historik som används i dina filer,\n" +"inklusive den inledande kommentaren." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Sorteringsnyckelordning för historik:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Exempel på startrad för en historikpost (utan inledande kommentar):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Kopiera en startrad för en historikpost som används i dina filer,\n" +"men utelämna den inledande kommentaren." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sorteringsnyckelresultat:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Matchning lyckades." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Matchning misslyckades." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Inledande och avslutande parenteser matchar inte i reguljärt uttryck." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Skrivning av klippbordsdata till tillfällig fil misslyckades." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Från klippbord" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 är inte en normal fil." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Tillfällig fil är: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Preprocessing misslyckades möjligen. Kontrollera kommandot:\n" +"\n" +" %1\n" +"\n" +"Preprocessingkommandot inaktiveras nu." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Filen %1 är för stor för att behandla. Hoppar över." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Preprocessingen för radmatchning misslyckades möjligen. Kontrollera " +"kommandot:\n" +"\n" +" %1\n" +"\n" +"Preprocessingen för radmatchning inaktiveras nu." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Förväntade mellanslag efter avslutande citationstecken." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Citationstecken utan motsvarighet." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Oväntat citationstecken inne i argument." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Inget program angivet." \ No newline at end of file diff --git a/po/sv/kdiff3fileitemactionplugin.po b/po/sv/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..6daf77b --- /dev/null +++ b/po/sv/kdiff3fileitemactionplugin.po @@ -0,0 +1,102 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Last-Translator: Stefan Asserhall , 2011, 2018, 2019, 2021. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-16 07:52+0100\n" +"Last-Translator: Stefan Asserhäll \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.08.1\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "Kdiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Jämför med %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Sammanfoga med %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Spara '%1' till senare" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "Trevägs sammanfogning med bas" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Jämför med..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Rensa lista" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Jämför" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "Trevägs jämförelse" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Om Kdiff3:s menyinsticksprogram..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" +"Kdiff3-insticksprogram för filobjektåtgärder: Copyright © 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"Använda utökningen av den sammanhangsberoende menyn:\n" +"För enkel jämförelse av två utvalda filer, välj \"Jämför\".\n" +"Om den andra filen finns någon annanstans, \"Spara\" den första filen till " +"senare. Den visas i undermenyn \"Jämför med...\". Använd därefter \"Jämför " +"med\" för den andra filen.\n" +"För en trevägs sammanfogning, \"Spara\" först basfilen, därefter grenen som " +"ska sammanfogas och välj \"Trevägs sammanfogning med bas\" i den andra " +"grenen, som kommer att användas som resultat.\n" +"Detsamma gäller också för jämförelse och sammanfogning av kataloger." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Om Kdiff3:s insticksprogram för filobjektåtgärder" \ No newline at end of file diff --git a/po/ta/kdiff3.po b/po/ta/kdiff3.po new file mode 100644 index 0000000..8dc6aa5 --- /dev/null +++ b/po/ta/kdiff3.po @@ -0,0 +1,3555 @@ +# translation of kdiff3.po to +# translation of kdiff3.po to +# translation of kdiff3.po to +# translation of kdiff3.po to Tamil +# Copyright (C) 2004 Free Software Foundation, Inc. +# +# Ambalam , 2004. +# root , 2004. +# Kishore G , 2022. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-06-21 21:12+0530\n" +"Last-Translator: Kishore G \n" +"Language-Team: Tamil \n" +"Language: ta\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 22.04.2\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "இக்கோகோப்பின் நிலை பெறப்படுகிறது: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "இக்கோப்பு படிக்கப்படுகிறது: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "இக்கோப்பு எழுதப்படுகிறது: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "நினைவு போதவில்லை" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "இவ்வடைவு உருவாக்கப்படுகிறது: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "இவ்வடைவு நீக்கப்படுகிறது: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "இக்கோப்பு நீக்கப்படுகிறது:%1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "குறியிணைப்பு உருவாக்கப்படுகிறது: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "கோப்பின் பெயர் மாற்றப்படுகிறது: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "கோப்பு நகலெடுக்கப்படுகிறது: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "அடைவு படிக்கப்படுகிறது: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "இவ்வடைவிலுள்ளவை பட்டியலிடப்படுகின்றன: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, fuzzy, kde-format +#| msgid "" +#| "Data loss error:\n" +#| "If it is reproducable please contact the author.\n" +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"தகவல் தவறானது.\n" +"மீண்டும் உற்பத்தியானால் ஆசிரியரை அணுகவும்.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "கடுமையான உள்சார்ந்த தவறு." + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "கடுமையான உள்சார்ந்த தவறு." + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "கடுமையான உள்சார்ந்த தவறு." + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "கிடைக்கவில்லை" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, fuzzy, kde-format +msgid "Line end style:" +msgstr "வரிகளின் பாணி தாள்" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base):" +msgid "A (Base)" +msgstr "A (அடிப்படை)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +msgid "Line end style: %1" +msgstr "வரிகளின் பாணி தாள்" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, fuzzy, kde-format +msgid "Top line" +msgstr "மேல் வரி %1." + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "முடிவு" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "திறந்த கோப்புகள்" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr " A to B படியெடு" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "படியெடு B to A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr " A ஐ நீக்கு" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B ஐ நீக்கு" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A & Bஐ நீக்கு " + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr " A ஐ ஒன்றாகச் சேர்." + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr " 'பி' ஐ ஒன்றாகச் சேர்." + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "A & B ஐ ஒன்றாகச் சேர்." + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "நீக்கு." + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "ஒன்றாகச் சேர்." + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "ஒன்றாகச் சேர்." + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "பிழை: குழப்ப கோப்பு வகைகள்" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "பிழை: தேதிகள் சமம் ஆனால் கோப்புகள் இல்லை." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "முடிந்த." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +#| msgid "Error." +msgid "Error" +msgstr "பிழை." + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "தவிர்த்தது." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "கோப்பு" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "செயல்பாட்டில் உள்ளது..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "அதை செய்." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "பெயர்." + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "இயக்கம்." + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "நிலை." + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Unsolved" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Solved" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Nonwhite" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "White" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"நீங்கள் தற்பொழுது ஒன்றாக சேர்க்கப்பட்ட அடைவை பயன்படுத்திக் கொண்டிருக்கிறீர்கள். நீங்கள் நிச்சயமாக " +"ஒன்று சேர்ப்பதை நிறுத்திவிட்டு அடைவை மறுவருடலை விரும்புகிறீர்களா?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "மறுவருடல்" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "தொடர்ந்து ஒன்றாக சேர்." + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "அடைவு திறக்க இயலவில்லை:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "அடைவு எ \"%1\" இல்லை அல்லது அது ஒரு அடைவு இல்லை.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "அடைவு B \"%1\" உபயோகத்தில் இல்லை (அ) அது ஒரு அடைவே அல்ல.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "அடைவு C \"%1\" உபயோகத்தில் இல்லை (அ) அது ஒரு அடைவே அல்ல.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "கோப்பு திறப்பில் பிழை" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"மூன்று அடைவுகள் ஒன்று சேரும் பொழுது, சேரும் அடைவு A (அ) B போன்று இருக்கக் கூடாது.\n" +"தொடர்வதற்கு முன் மீண்டும் சரிபார்க்கவும்." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "அளவுருக்கள் எச்சிரிகை." + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +msgid "Scanning folders..." +msgstr "Scanning directories ..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "கோப்புகளை படித்தல்: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "கோப்புகளை படித்தல்: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "கோப்புகளை படித்தல்: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "சில துணை அடைவுகளை படிக்க இயலவில்லை" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "துணை அடைவுகளின் அனுமதிகளை சரிபார்க்கவும்." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "தயார்." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "கைமுறை ஒன்று சேர்க்கையின் எண்ணிக்கை:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "இது அனைத்து ஒன்றுசேர் இயக்கங்களை பாதிக்கிறது." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "அனைத்து ஒன்றுசேர் இயக்கங்களை மாற்றிக்கொண்டிருக்கிறது" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "செயலாக்குதல்" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "இந்த இயக்கம் தற்போது சாத்தியமில்லை." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "இயக்கம் சாதியமில்லை" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "நகலெடுக்கும்போது பிழை ஏற்பட்டுள்ளது.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "ஒன்றுசேர் பிழை" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "தெரியாத ஒன்றுசேர் இயக்கம்.( இது ஒருபோதும் நிகழக்கூடாது)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "தெரியாத ஒன்றுசேர் இயக்கம்." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"ஒன்றுசேர்ப்பு தொடங்கப்பட உள்ளது.\n" +"\n" +"நீங்கள் நெறிமுறைகளைப் படித்து என்ன செய்கிறீர்கள் என்பதை அறிந்தால், \"இதை செய்க\" என்பதை " +"தேர்ந்தெடுக்க.\n" +"\"இதை போன்று நட\" என்பதை தேர்வு செய்தால் நிகழவிருப்பதை கூரும்.\n" +"\n" +"இந்த நிரல் இன்னும் பீடா நிலையில் தான் உள்ளது என்பதை கவனத்தில் கொள்க; மேலும் இதற்கு எந்தவித " +"உத்திரவாதமும் கிடையாது! தங்களது இன்றியமையாத தகவல்களுக்கு பின்னணி " +"அமைக்க! " + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "ஒன்று சேர்ப்பைத் துவக்குதல்" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "இதை செய்க" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "இதை போன்று நட" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"பலவிதமான அடைவுகளில் பலவகையாக தனிப்படுத்தப்பட்ட விவரம் உள்ளது. எதை செய்வதென்பதை " +"தேர்ந்தெடுக்க." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"கோப்புகளின் திருத்திய தேதிகள் ஒன்றாக உள்ளது, ஆனால் கோப்புகள் இல்லை. எதை செய்வதென்பதை " +"தேர்ந்தெடுக்க. " + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"பலவிதமான அடைவுகளில் பலவகையாக தனிப்படுத்தப்பட்ட விவரம் உள்ளது. எதை செய்வதென்பதை " +"தேர்ந்தெடுக்க." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" +"இந்த செயற்பாடு தற்போது சாத்தியமில்லை ஏனென்றால் அடைவு ஒற்றினை தற்போது " +"இயங்கிக்கொண்டிருக்கின்றது" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"கடைசி அடியில் பிழை இருந்தது.\n" +"இந்த பிழையை ஏற்படுத்திய விவரத்துடன் தொடர விரும்புகிறீர்களா அல்லது அதை தவிர்க்க " +"விரும்புகிறீர்களா?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "பிழைக்குப் பிறகு ஒன்று சேர்த்தலை தொடர்க" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "கடைசி விவரத்துடன் தொடர்க" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "விவரத்தை தவிர்க்க" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "ஒன்றுசேர்ப்பு முடிந்தது" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"போலியான ஒன்றுசேர்ப்பு முடிந்தது: முன்மொழிந்த இயக்கங்களுடன் நீங்கள் ஒத்துப்போகிறீர்களா என்பதை " +"சரிபார்க்கவும்." + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "பிழை ஏற்பட்டுள்ளது. விரிவான விவரங்களுக்கு சரி என்பதை அழுத்துக.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "பிழை: %1 நீக்கும்போது: பின்னணி உருவாக்கம் தோல்வியடைந்தது." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "அடைவு சூழ்நிலை நீக்கு நீக்கு(%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "நீக்கு( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "பிழை: அடைவை படிக்கும்போது நீக்க இயலவில்லை." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr " rmdir( %1 } பிழை: இயக்க இயலவில்லை" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "பிழை: நீக்கும் இயக்கம் தோல்வியடைந்தது." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "கைமுறை ஒன்றினை(%1, %2,%3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "குறிப்பு: கையேடு ஒன்றினையின் பிறகு உபயோகிப்பவர் F7 வழியாக தொடர வேண்டும்." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "பிழை:நகல்( %1 -> %2 ) தோல்வி அடைந்தது. இருக்கும் சேரிடம் நீக்கம் தோல்வி அடைந்தது" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "நகல் இணை( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "பிழை:தொடர்புப் படியெடு தோல்வியடைந்தது: தூரத் தொடர்பு இன்னும் ஆதரிக்கப்படவில்லை" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "பிழை: நகல் இணை தோல்வியடைந்தது." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "நகல்( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "மறுபெயரிடும் போது பிழை( %1 -> %2 ): தற்போதுள்ள சேருமிடத்தை நீக்க இயலாது." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "மறுபெயர்( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "பிழை: மறுபெயர் தோல்வி அடைந்தது." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "%1அடைவை உருவாக்கும் போது பிழை: தற்போதைய கோப்பினை நீக்க இயலாது." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "( %1 )அடைவை உருவாக்கு" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "அடைவை உருவாக்கும் போது பிழை" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "சேருமிடம்" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "விதம்" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "அளவு" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "தன்மை" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "கடைசி திருத்தம்" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "இணை-சேருமிடம்" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "File..." +msgid "File" +msgstr "கோப்பு" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "இணைப்பு." + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "கிடைக்கவில்லை" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (சேருமிடம்): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (அடித்தளம்):" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (சேருமிடம்): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (சேருமிடம்):" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "சேருமிடம்: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +msgid "Save Folder Merge State As..." +msgstr "அடைவுச் சேர்க்கை" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "அடைவை சேர்க்கத் துவங்கு" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "நிகழ் உருப்படிக்காக செயற்பாடு இயங்கு" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "தற்போதைய கோப்பினை ஒன்றுசேர்" + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "" +"Merge\n" +"File" +msgstr "ஒன்றாகச் சேர்." + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "அனைத்து உபஅடைவுகளையும் மடி" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "அனைத்து உபஅடைவுகளையும் பிரி" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "எல்லா விவரங்களுக்கும் Aவைத் தேர்ந்தெடு" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "எல்லா விவரங்களுக்கும் Bவைத் தேர்ந்தெடு" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "எல்லா விவரங்களுக்கும் Cவைத் தேர்ந்தெடு" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "எல்லா விவரங்களுக்கும் தானியக்கத்தேர்வு" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "எல்லா விவரங்களுக்கும் இயக்கமில்லை" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, fuzzy, kde-format +msgid "Show Different Files" +msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, fuzzy, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" + +#: directorymergewindow.cpp:2982 +#, fuzzy, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "ஒன்றும் செய்யாதே" + +#: directorymergewindow.cpp:2996 +#, fuzzy, kde-format +msgid "Delete A && B" +msgstr "A & Bஐ நீக்கு " + +#: directorymergewindow.cpp:2999 +#, fuzzy, kde-format +msgid "Merge to A && B" +msgstr "A & B ஐ ஒன்றாகச் சேர்." + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "கோப்புகளை படித்தல்: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "வார்ப்புரு படியெடு உருவாக்குவது %1 இயலவில்லை." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "திறப்பதற்கு %1 இயலவில்லை." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "%1னிலிருந்து படிக்கும் பிழை" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"ஒரு பின்கோப்பினை உருவாக்க முயற்சிக்கும்போது, பழைய பின்கோப்பினை நீக்க முடியவில்லை.\n" +"கோப்புப் பெயர்கள்:" + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"ஒரு பின்கோப்பினை உருவாக்க முயற்சிக்கும் போது, பெயர் மாற்றம் செய்யப்படவில்லை.\n" +"கோப்புப் பெயர்கள்:" + +#: kdiff3.cpp:163 +#, fuzzy, kde-format +msgid "Current Configuration:" +msgstr "நடப்பு உருப்படி இசைவு செயற்பாடு" + +#: kdiff3.cpp:168 +#, fuzzy, kde-format +msgid "Config Option Error:" +msgstr "கோப்பு திறப்பில் பிழை" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "தேர்வு தானே உபயோகிக்கப்பட்டுள்ளது ஆனால் வெளியீட்டுக் கோப்பு குறிப்பிடப்படவில்லை" + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "அடைவு ஒப்பீட்டுக்காக தேர்வு தானே மறுக்கப்பட்டுள்ளது" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "சேகரிப்பு தோல்வியடைந்தது." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "இந்த கோப்புகளின் திறப்பு தோல்வியடைந்தது:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "கோப்பு திறப்பு பிழை" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "ஒப்பிடுதலுக்கு ஆவணங்களைத் திறக்க..." + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +#| msgid "Ready." +msgid "Reload" +msgstr "தயார்." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "ஒன்றுசேர் முடிவை சேகரி. அனைத்து குழப்பங்களும் தீர வேண்டும்." + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "தற்போதைய ஆவணத்தை ....வாக சேமி " + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "பயன்பாட்டை முறிக்க" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "தேர்வு செய்த பகுதியை எடுத்து கிளிப்போர்டில் செலுத்துகிறது" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "தேர்வு செய்த பகுதியை கிளிப் போர்டை படி செய்கிறது." + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "கிளிப்போர்டின் உள்ளடக்கங்களை உரிய இடத்தில் சேர்க்கிறது" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "தொடர்ச்சிகளை தேடு" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "சரத்தை மீண்டும் தேடு" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "நிலைப்பட்டியை செயல்படுத்து/நீக்கு " + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3யை அமை" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "தற்போதைய டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:606 +#, fuzzy, kde-format +#| msgid "Go to Current Delta" +msgid "" +"Current\n" +"Delta" +msgstr "தற்போதைய டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "முதல் டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:608 +#, fuzzy, kde-format +#| msgid "Go to First Delta" +msgid "" +"First\n" +"Delta" +msgstr "முதல் டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "கடைசி டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:610 +#, fuzzy, kde-format +#| msgid "Go to Last Delta" +msgid "" +"Last\n" +"Delta" +msgstr "கடைசி டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "முந்தைய டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +#| msgid "Go to Previous Delta" +msgid "" +"Prev\n" +"Delta" +msgstr "முந்தைய டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "அடுத்த டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:616 +#, fuzzy, kde-format +#| msgid "Go to Next Delta" +msgid "" +"Next\n" +"Delta" +msgstr "அடுத்த டெல்டாவிற்குச் செல்க" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "முந்தைய குழப்பத்திற்குச் செல்க" + +#: kdiff3.cpp:618 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "" +"Prev\n" +"Conflict" +msgstr "குழப்பங்கள்" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "அடுத்த குழப்பத்திற்குச் செல்க" + +#: kdiff3.cpp:620 +#, fuzzy, kde-format +#| msgid "Go to Next Conflict" +msgid "" +"Next\n" +"Conflict" +msgstr "அடுத்த குழப்பத்திற்குச் செல்க" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "முந்தைய தீர்க்காத குழப்பத்திற்குச் செல்க" + +#: kdiff3.cpp:622 +#, fuzzy, kde-format +#| msgid "Unsolved" +msgid "" +"Prev\n" +"Unsolved" +msgstr "Unsolved" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "அடுத்த தீர்க்காத குழப்பத்திற்குச் செல்க" + +#: kdiff3.cpp:624 +#, fuzzy, kde-format +#| msgid "Unsolved" +msgid "" +"Next\n" +"Unsolved" +msgstr "Unsolved" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Aவிலிருந்து வரி(களை) தேர்ந்தெடு" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Bவிலிருந்து வரி(களை) தேர்ந்தெடு" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Cவிலிருந்து வரி(களை) தேர்ந்தெடு" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "மூலத்தை தேர்வு செய்த பிறகு தானாகவே அடுத்த தீர்க்கப்படாத குழப்பதற்கு செல் " + +#: kdiff3.cpp:629 +#, fuzzy, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "இடைவெளியை காட்டி மற்றும் வேறுபாட்டிற்காக பட்டியலிடுவான் எழுத்துக்கள்" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "வெள்ளை இடத்தை காட்டும்" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "வரி எண்களை காட்டு" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +#| msgid "Show Line Numbers" +msgid "" +"Line\n" +"Numbers" +msgstr "வரி எண்களை காட்டு" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "தானாகவே எளிய குழப்பங்களை தீர்க்க." + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr " Delta வை குழப்பத்திற்கு அமை" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, fuzzy, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "தானாகவே எளிய குழப்பங்களை தீர்க்க." + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, fuzzy, kde-format +msgid "Join Selected Diffs" +msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "A சாளரத்தைக் காட்டு" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "B சாளரத்தைக் காட்டு" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "C சாளரத்தைக் காட்டு" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normal Overview" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A vs. B Overview" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A vs. C Overview" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B vs. C Overview" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Word Wrap Diff Windows" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "அடுத்த சாளரத்தை நோக்கு" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "முந்தைய சாளரத்தை நோக்கு" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "பிரிப்பு திசையை மாற்று" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "அடைவு மற்றும் உரையின் பிளவின் திரைப்பார்வை" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "அடைவுக்கும் உரை பார்வைக்கும் இடையே மாற்றுக" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "ஒன்று சேர் முடிவு சேகரிக்கப்படவில்லை." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "சேகரித்து முடி" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "சேகரிக்காமல் மூடு" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "ஒன்றுசேர் முடிவை சேகரித்தல் தோல்வியடைந்தது." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "நீங்கள் தற்போது அடைவுகளை சேர்த்துக் கொண்டிருக்கிறீர்கள். நிறுத்த விரும்புகிறீர்களா?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "கோப்பு சேகரித்தல்..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "புதிய கோப்புப்பெயருடன் கோப்பினை சேகரித்தல்..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +msgid "Printing not implemented." +msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +msgid "Printing..." +msgstr "வெளியேறுதல்..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Select Another Font" +msgid " (Selection)" +msgstr "மற்றொரு எழுத்துருவை தேர்தெடு" + +#: kdiff3.cpp:1025 +#, fuzzy, kde-format +msgid "Printing completed." +msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" + +#: kdiff3.cpp:1029 +#, fuzzy, kde-format +msgid "Printing aborted." +msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "வெளியேறுதல்..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "கருவிப்பட்டி மாற்றப்படுகறது" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "நிலைப்பட்டியை மாற்று" + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "அமை KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, fuzzy, kde-format +#| msgid "" +#| "Could not find our part!\n" +#| "This usually happens due to an installation problem. Please read the " +#| "README-file in the source package for details." +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"உங்கள் பகுதியை காணவில்லை.\n" +"நிறுவும் போது இப்படிப்பட்ட பிரச்சனை ஏற்படும் விவரங்களுக்கு README தொகுப்பைப் படிக்கவும்" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, fuzzy, kde-format +#| msgid "File..." +msgid "&File" +msgstr "கோப்பு" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "நடப்பு உருப்படி ஒற்றிணை செயற்பாடு " + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "நடப்பு உருப்படி இசைவு செயற்பாடு" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "நகர்த்துவது " + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "வித்தியாச பார்வை" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "ஒன்றாகச் சேர்." + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "சாளரங்கள்" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "உள்ளீட்டை ஒன்று சேர்." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "தெளிவான அடித்தளக் கோப்பினை சில கருவிகளுடன் பொருத்துவதற்கு" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "வெளியீடு கோப்பு" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "மறுபடியும் கோப்பினை வெளியீடு(சில கருவிகளுடன் பொருத்துவதற்கு)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "எல்லா குழப்பங்களையும் தானாகவே நீங்குமானால் GUI தேவையில்லை" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore case" +msgid "Ignored." +msgstr "Ignore case" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Visible name replacement for input file 1 (base)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Visible name replacement for input file 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Visible name replacement for input file 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Alternative visible name replacement. Supply this once for every input." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, fuzzy, kde-format +msgid "Use a different config file." +msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "கோப்பு1 யை திற(அடித்தளம் அல்லது via அடித்தளம்)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "கோப்பு2 திற" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "கோப்பு 3ன்றை திற" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "இணைப்புகள் மற்றும் கோப்புகள் கலந்து உள்ளன." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "இணைப்பு." + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "அளவு." + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "தேதி மற்றும் அளவு." + +#: MergeFileInfos.cpp:466 +#, fuzzy, kde-format +msgid "Comparing file..." +msgstr "கோப்பினை ஒப்பிடுகிறது...." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "எல்லா இடத்திலும் Aவைத் தேர்ந்தெடு" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "எல்லா இடத்திலும் Bவைத் தேர்ந்தெடு" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "எல்லா இடத்திலும் Cவைத் தேர்ந்தெடு" + +#: mergeresultwindow.cpp:147 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "அனைத்து தீர்வற்ற முரணிற்கு A-வை தேர்ந்தெடுக்கவும்" + +#: mergeresultwindow.cpp:148 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "அனைத்து தீர்வற்ற முரணிற்கு B-யை தேர்ந்தெடுக்கவும்" + +#: mergeresultwindow.cpp:149 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "அனைத்து தீர்வற்ற முரணிற்கு C-யை தேர்ந்தெடுக்கவும்" + +#: mergeresultwindow.cpp:150 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு A-வை தேர்ந்தெடுக்கவும்" + +#: mergeresultwindow.cpp:151 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு B-யை தேர்ந்தெடுக்கவும்" + +#: mergeresultwindow.cpp:152 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு C-யை தேர்ந்தெடுக்கவும்" + +#: mergeresultwindow.cpp:258 +#, fuzzy, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "இன்னும் தீர்க்கப்படாத குழப்பங்களின் எண்ணிகை: %1" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "வெளீயிடு மாற்றப்பட்டுள்ளது. நீங்கள் தொடர்ந்தால் மாற்றங்களை இழந்து விடுவீர்கள்" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "அனைத்து உள்ளிடு கோப்புகளும் இருநிலை சமம்" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "அனைத்து உள்ளீட்டுக் கோப்புகளும் ஒரே உரையைக் கொண்டன." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, fuzzy, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "கோப்புகள் B மற்றும் C இருநிலை சமம் உடையன.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "கோப்புகள் A மற்றும் B சம உரை உடையன.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "குழப்பங்கள்" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, fuzzy, kde-format +msgid "" +msgstr "<ஒன்றுசேர் குழப்பம்>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<ஒன்றுசேர் குழப்பம்>" + +#: mergeresultwindow.cpp:2950 +#, fuzzy, kde-format +#| msgid "" +#| "Not all conflicts are solved yet.\n" +#| "File not saved.\n" +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"அனைத்து குழப்பங்களும் இன்னும் தீரவில்லை.\n" +"கோப்பினை சேமிக்கவில்லை \n" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "குழப்பமான இடது" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "கோப்பின சேமிப்பு பிழை" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "எழுதும் பொழுது பிழை" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr " வெளியீடு" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[திருத்தப்பட்டது]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +#| msgid "Conflicts" +msgid "Conflict" +msgstr "குழப்பங்கள்" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (அடிப்படை)" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "வெளீயிடு (விருப்பங்கள்)" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "கோப்பு" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (விருப்பங்கள்)" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "இல்லா-ஆஸ்கி-எழுத்துக்கள் சரியாக வெளிகாட்டவில்லை என்றால் இதை மாற்றுக" + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +#| msgid "Configure..." +msgid "Configure" +msgstr "அமை" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "திருத்துபவரும் வித்தியாசமான வெளியீட்டு எழுத்துக்களும்" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "கோப்பின சேமிப்பு பிழை" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "வர்ணம்" + +#: optiondialog.cpp:596 +#, fuzzy, kde-format +msgid "Colors Settings" +msgstr "இதர அமைப்புகளை உள்ளடக்கியது" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "முன்னணி நிறம்" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "பின்னணி நிறம்" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "வேறுபட்ட பின்னணி நிறம்" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "வர்ணம் A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "வர்ணம் B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "வர்ணம் C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "குழப்பமான நிறம்" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "பின்னணி நிறத்தின் தற்போதைய வரம்பு " + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "பின்னணி நிறத்தின் வேறுபட்ட தற்போதைய வரம்பு " + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +msgid "Folder Comparison View:" +msgstr "அடைவு ஒப்பிடும் நிலை" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "திருத்தியவர்" + +#: optiondialog.cpp:764 +#, fuzzy, kde-format +msgid "Editor Behavior" +msgstr "திருத்துபவரின் செயல்பாடு" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "தத்தல் இடைவெளியை சொருகும்" + +#: optiondialog.cpp:790 +#, fuzzy, kde-format +#| msgid "" +#| "On: Pressing tab generates the appropriate number of spaces.\n" +#| "Off: A Tab-character will be inserted." +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"On:தத்தலை அழுத்தும் போது தேவையான இடைவெளி உருவாகிறது, \n" +"Off:ஒர் தத்தல் எழுத்து சொருகப்படும்" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tab அளவு" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "தானியக்க உள்ளடக்கம்" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "முந்தைய வரியில் பயன்படுத்தப்பட்ட நகர்ப்பு புதிய வரியிலும் பயன்படுத்தப்படுகிறது\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" + +#: optiondialog.cpp:813 +#, fuzzy, kde-format +#| msgid "" +#| "On: Any selection is immediately written to the clipboard.\n" +#| "Off: You must explicitely copy e.g. via Ctrl-C." +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"எந்த ஒரு தேர்வையும் உடனடியாக கிளிப் போர்டுக்கு எழுதவும்.\n" +"நீங்கள் வெளிப்படையாக படிவு செய்" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "சாளரங்கள்" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" + +#: optiondialog.cpp:828 +#, fuzzy, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"கோட்டின் முடிவை அமைத்து தொகுப்புக்கோப்பில் சேமிDOS/விண்டோஸ்: CR+LF;யுனிக்ஸ்:மற்றும் " +"CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, fuzzy, kde-format +msgid "Diff" +msgstr "KDiff3" + +#: optiondialog.cpp:839 +#, fuzzy, kde-format +msgid "Diff Settings" +msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, fuzzy, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "C/C++ குறிப்புரைகளை வெள்ளை இடம் போல உபசரி." + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "வரி பொருத்துதலின் போது எண் எழுத்துக்களை நிராகரி." + +#: optiondialog.cpp:881 +#, fuzzy, kde-format +#| msgid "Treat C/C++ comments like white space." +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ குறிப்புரைகளை வெள்ளை இடம் போல உபசரி." + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ குறிப்புரைகளை வெள்ளை இடம் போல உபசரி." + +#: optiondialog.cpp:887 +#, fuzzy, kde-format +msgid "Ignore case (treat as white space)" +msgstr "C/C++ குறிப்புரைகளை வெள்ளை இடம் போல உபசரி." + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Treat case differences like white space changes. ('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "முன் செயலாக்க கட்டளை" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "உபயோகிப்பாளரால் அறுதியிடப்பட்ட முன்-செயலாக்கி" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "வரி-பொருத்து முன்-செயலாக்கி கட்டளை" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "முன்-செயலாக்கி வரி-பொருத்துதலின் போது பயன்ப்படுத்தப்படுகிறது" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "கடினமாக முயற்சி(மெதுவாக)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"வெளி வேற்றுமைக்கான --குறைந்த விருப்பத்தை செயல்படுத்துகிறது.\n" +"பெரிய கோப்புகளின் பகுப்பாய்வு மெதுவாக இருக்கும்." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "ஒன்றாகச் சேர்." + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "தானாக முன்னேறிய தாமதம் (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"தற்போதைய தேர்ந்தெடுப்பின் முடிவை தானாக - முன்னேறும் அமைப்பில்.\n" +"குறிப்பிட்ட கால இடைவெளியில், அடுத்த சிக்கலுக்கு முன் தெரிந்துகொள்ளலாம்." + +#: optiondialog.cpp:967 +#, fuzzy, kde-format +#| msgid "Show Window A" +msgid "Show info dialogs" +msgstr "A சாளரத்தைக் காட்டு" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "வெள்ளை இடம் 2-கோப்பு ஒன்றிணை முன்னிருப்பு:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, fuzzy, kde-format +msgid "Manual Choice" +msgstr "கையேடு விருப்பம்" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"வெள்ளை-இடம்-மாற்றங்களுக்காக தானாக தேர்ந்தெடுக்கும் உள்ளீட்டிற்க்கு ஒன்றிணை படிமுறையை " +"அனுமதிக்கும்." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "வெள்ளை இடம் 3-கோப்பு ஒன்றிணை முன்னிருப்பு:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "உப அடைவுகளின் எண்ணிக்கை:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +#| msgid "Recursive directories" +msgid "Recursive folders" +msgstr "திரும்ப நிகழும் அடைவுகள்" + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +#| msgid "Whether to analyze subdirectories or not." +msgid "Whether to analyze subfolders or not." +msgstr "உபஅடைவுகளை பரிசோதிக்க வேண்டுமா?" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "கோப்பு வடிவங்கள்:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' " +"உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "வடிவற்ற கோப்பு" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' " +"உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்" + +#: optiondialog.cpp:1172 +#, fuzzy, kde-format +#| msgid "File-anti-pattern(s):" +msgid "Folder-anti-pattern(s):" +msgstr "வடிவற்ற கோப்பு" + +#: optiondialog.cpp:1178 +#, fuzzy, kde-format +#| msgid "" +#| "Pattern(s) of files to be excluded from analysis. \n" +#| "Wildcards: '*' and '?'\n" +#| "Several Patterns can be specified by using the separator: ';'" +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' " +"உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்" + +#: optiondialog.cpp:1183 +#, fuzzy, kde-format +#| msgid "Use .cvsignore" +msgid "Use Ignore File" +msgstr ".cvsignore உபயோகி" + +#: optiondialog.cpp:1187 +#, fuzzy, kde-format +#| msgid "" +#| "Extends the antipattern to anything that would be ignored by CVS.\n" +#| "Via local \".cvsignore\"-files this can be directory specific." +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Extends the antipattern to anything that would be ignored by CVS.\n" +"Via local \".cvsignore\"-files this can be directory specific." + +#: optiondialog.cpp:1191 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Find hidden files and folders" +msgstr "மறைந்த கோப்புகளையும் அடைவுகளையும் தேடு" + +#: optiondialog.cpp:1194 +#, fuzzy, kde-format +#| msgid "Find hidden files and directories" +msgid "Finds hidden files and folders." +msgstr "மறைந்த கோப்புகளையும் அடைவுகளையும் தேடு" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "கோப்பு இணைப்பை பின்பற்று" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"கோப்பினை இணைப்பு குறியோடு ஒப்பிடு.\n" +" இணைப்பை ஒப்பிடு" + +#: optiondialog.cpp:1205 +#, fuzzy, kde-format +#| msgid "Follow file links" +msgid "Follow folder links" +msgstr "கோப்பு இணைப்பை பின்பற்று" + +#: optiondialog.cpp:1209 +#, fuzzy, kde-format +#| msgid "" +#| "On: Compare the file the link points to.\n" +#| "Off: Compare the links." +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"கோப்பினை இணைப்பு குறியோடு ஒப்பிடு.\n" +" இணைப்பை ஒப்பிடு" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "அனைத்து உபஅடைவுகளையும் பிரி" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "File Comparison Mode" + +#: optiondialog.cpp:1247 +#, fuzzy, kde-format +msgid "Binary comparison" +msgstr "Binary Comparison" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Binary comparison of each file. (Default)" + +#: optiondialog.cpp:1252 +#, fuzzy, kde-format +msgid "Full analysis" +msgstr "Full Analysis" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" + +#: optiondialog.cpp:1258 +#, fuzzy, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "மாற்றிய தேதியை நம்பு(பாதுகாப்பில்லை)" + +#: optiondialog.cpp:1260 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது " +"பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்" + +#: optiondialog.cpp:1265 +#, fuzzy, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "மாற்றிய தேதியை நம்பு(பாதுகாப்பில்லை)" + +#: optiondialog.cpp:1267 +#, fuzzy, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது " +"பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "அளவை உறுதிபடுத்து(பாதுகாப்பில்லை)" + +#: optiondialog.cpp:1274 +#, fuzzy, kde-format +#| msgid "" +#| "Assume that files are equal if their file lengths are equal.\n" +#| "Useful for big directories or slow networks when the date is modified " +#| "during download." +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது " +"பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்." + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +#| msgid "Synchronize directories" +msgid "Synchronize folders" +msgstr "ஒத்தியக்கு அடைவை" + +#: optiondialog.cpp:1285 +#, fuzzy, kde-format +#| msgid "" +#| "Offers to store files in both directories so that\n" +#| "both directories are the same afterwards.\n" +#| "Works only when comparing two directories without specifying a " +#| "destination." +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"இரண்டு அடைவிலும் கோப்புகளை சேமிப்பதற்கு அனுமதிப்பதால், இரண்டு அடைவுகளும் பின்னர் " +"ஒன்றாகவே இருக்கும் .இரண்டு அடைவுகளையும் சேருமிடம் குறிப்பிடாமல் ஒத்திடும் பொழுதுதான் " +"வேலை செய்யும்." + +#: optiondialog.cpp:1291 +#, fuzzy, kde-format +msgid "White space differences considered equal" +msgstr "வெள்ளை இடம் 3-கோப்பு ஒன்றிணை முன்னிருப்பு:" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "ஒன்றாக சேர்ப்பதற்கு பதிலாக புதியவரை பதியெடு(பாதுகாப்பில்லை)" + +#: optiondialog.cpp:1305 +#, fuzzy, kde-format +#| msgid "" +#| "Don't look inside, just take the newer file.\n" +#| "(Use this only if you know what you are doing!)\n" +#| "Only effective when comparing two directories." +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"உள்ளே பார்க்காதே புதிய கோப்பினை மட்டும் எடு.(நீ செய்வது என்ன என்று தெரிந்தால் மட்டுமே இதை " +"உபயோகப்படுத்து) இரண்டு அடைவுகளை ஒத்திடும் போது மட்டுமே விளைவுகள் ஏற்படும்" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "பின்சேமிப்பு கோப்புகள்(.orig)" + +#: optiondialog.cpp:1314 +#, fuzzy, kde-format +#| msgid "" +#| "When a file would be saved over an old file, then the old file\n" +#| "will be renamed with a '.orig'-extension instead of being deleted." +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"பழைய கோப்பில் ஒரு கோப்பினை சேமிக்கும் பொழுது, பழைய கோப்பில் மூல நீட்டுதலுடன் பெயர் " +"மாறும், நீக்கபடுவதற்கு பதிலாக. " + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "இதர அமைப்புகளை உள்ளடக்கியது" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, fuzzy, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "லொகல் குறிமுறையாக்கம் உபயோகி" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, fuzzy, kde-format +msgid "Auto Select" +msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, fuzzy, kde-format +msgid "Integration" +msgstr "இயக்கம்." + +#: optiondialog.cpp:1436 +#, fuzzy, kde-format +msgid "Integration Settings" +msgstr "இதர அமைப்புகளை உள்ளடக்கியது" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "இது அனைத்து தேர்வுகளையும் மாற்றியமைக்கும். தற்பொழுதுள்ள தலைப்பு மட்டுமல்ல" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "முன் செயலாக்க கட்டளை:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "கீழ்கண்ட தேர்வுகளில் தரவை தேர்வுசெய்:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"தேவை இல்லாத செல்கள்.\n" +"இவற்றை முடக்க வேண்டுமா?" + +#: pdiff.cpp:97 +#, fuzzy, kde-format +msgid "Option Unsafe for Merging" +msgstr "காப்பு இல்லாத தேர்வுகள் செல்கள்" + +#: pdiff.cpp:98 +#, fuzzy, kde-format +msgid "Use These Options During Merge" +msgstr "செல்களில் தேர்வுகளை உபயோகப்படுத்து " + +#: pdiff.cpp:99 +#, fuzzy, kde-format +msgid "Disable Unsafe Options" +msgstr "பாதுகாப்பு இல்லாத தேர்வுகளை முடக்கு" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A ஏற்றுதல்" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "A ஏற்றுதல்" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr " B ஏற்றுதல்" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "A ஏற்றுதல்" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "வித்தியாசம் A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "வரி வித்தியாசம் : A <->B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr " C ஏற்றுதல்" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "A ஏற்றுதல்" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "வித்தியாசம் A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "வித்தியாசம் B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "வரி வித்தியாசம் B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "வரி வித்தியாசம் : A <-> C" + +#: pdiff.cpp:748 +#, fuzzy, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "அனைத்து உள்ளீட்டுக் கோப்புகளும் ஒரே உரையைக் கொண்டன." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, fuzzy, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "கோப்புகள் A மற்றும் B இருநிலை சமம் உடையன.\n" + +#: pdiff.cpp:772 +#, fuzzy, kde-format +#| msgid "" +#| "Some inputfiles don't seem to be pure textfiles.\n" +#| "Note that the KDiff3-merge was not meant for binary data.\n" +#| "Continue at your own risk." +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Some inputfiles don't seem to be pure textfiles.\n" +"Note that the KDiff3-merge was not meant for binary data.\n" +"Continue at your own risk." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "விடுதல்" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "திறந்த கோப்புகள்" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "வெட்டுதலை தேர்ந்தெடு" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "தேர்ந்தெடுக்கப்பட்டதை கிளிப்போர்டிற்கு நகலெடுக்க" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "கிளிப்போர்டு உள்ளடக்கத்தை சொருகு" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "சேமி தொடரு" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "சேமிக்காமல் தொடரு" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "தேடல் முடிவடைந்தது" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "தேடல் முடிவடைந்தது" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, fuzzy, kde-format +msgid "Error while adding manual diff range" +msgstr "அடைவை உருவாக்கும் போது பிழை" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "அமை" + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "திறந்த கோப்புகள்" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, fuzzy, kde-format +msgid "Search text:" +msgstr "உரையைத் தேடு:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "எழுத்து வகை உணரக்கூடிய" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Aவைத் தேடு" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Bவைத் தேடு" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Cவைத் தேடு" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "வெளியீட்டைத் தேடு" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "தேடு" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, fuzzy, kde-format +msgid "Match failed." +msgstr "சேகரிப்பு தோல்வியடைந்தது." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "க்ளிப்போர்டின் எழுத்தின் தரத்தில் உள்ள டெம்ப் கோப்பு தவறு." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "கிளிப் போர்டிலிருந்து." + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "இணைப்புகள் மற்றும் கோப்புகள் கலந்து உள்ளன." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"முன்செயலிகள் தவறு. கட்டளையை சரிப்பார்:\n" +"\n" +" %1\n" +"\n" +"முன்செயலிகள் கட்டளையை இப்பொழுதே முடக்கு," + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"முன்செயலிகள் தவறு. கட்டளையை சரிப்பார்:\n" +"\n" +" %1\n" +"\n" +"வரிசெல்களின் கட்டளையை இப்பொழுதே முடக்கு," + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/tg/kdiff3.po b/po/tg/kdiff3.po new file mode 100644 index 0000000..7fbf066 --- /dev/null +++ b/po/tg/kdiff3.po @@ -0,0 +1,3450 @@ +# translation of kdiff3.po to Tajik +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# 2004, infoDev, a World Bank organization +# 2004, Khujand Computer Technologies, Inc. +# 2004, Youth Opportunities, NGO +# Akmal Vatanshoev , 2004. +# Akbar Vatanshoev , 2004. +# Victor Ibragimov , 2004. +# Victor Ibragimov , 2005. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2005-09-17 13:29+0500\n" +"Last-Translator: Victor Ibragimov \n" +"Language-Team: Tajik\n" +"Language: tg\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.10\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Гирифтани ҳолати файл: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Хониши файл: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Навишти файл: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Аз хотира" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "Эҷоди каталогҳо : %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "Дур кардани файл: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Дур кардани файл: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Сохтани пайвасти рамзӣ: %1-> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Аз нав номгузории файл: %1-> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Нусха бардошатани: %1-> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "Хониши файл: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Нигоҳ кардани директория: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, fuzzy, kde-format +#| msgid "" +#| "Data loss error:\n" +#| "If it is reproducable please contact the author.\n" +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Маълумотҳои гумкарда:\n" +"Агар ин зиёд карда шавад илтимос бо муаллиф алоқа кунед.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Хатогии даруни" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Хатогии даруни" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Хатогии даруни" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "дастрас нест" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +msgid "A (Base)" +msgstr "A (баромад): " + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, fuzzy, kde-format +msgid "Top line" +msgstr "Сатри яккум%1" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Охир" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +msgid "Open File" +msgstr "Кушодан %1 нашуд." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Нусха кардан А ба В" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Нусха кардан В ба А" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Нест кардани А" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Нест кардани В" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Нест кардани А ва В" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Пайваст кардан ба A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Пайваст кардан ба В" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Пайваст кардан ба A & В" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Нест кардан (агар вуҷуд дорад)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Пайваст кардан" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Пайваст кардан (дастӣ)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Хатогӣ: Якҷоянашавандаи шакли файлҳо" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Хатогӣ: Вақт мувофиқ аст, лекин файлҳо нет." + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "Тайёр аст." + +#: directorymergewindow.cpp:469 +#, fuzzy, kde-format +#| msgid "Error." +msgid "Error" +msgstr "Хатогӣ." + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Са дода шуд." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Захира нашуд." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Кор рафта истодааст..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Кардан." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Ном" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Амал" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Вазъият" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Иҷозат дода нашуд" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Иҷозат дода шуда" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Сиёҳ" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Сафед" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Ҳоло барнома дар тартиби якҷошавии каталогҳо кор мекунад. Оё шумо дар " +"ҳақиқат мехоҳед, ки ҳамаи тағйиротҳоро нест кунед ва таркиби каталогро ан " +"нав кунед?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Дигар кардан" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Давом додан" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "Наметавонам каталогҳоро кушоям:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Каталоги А \"%1\" вуҷуд надорад.\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Каталоги В \"%1\" вуҷуд надорад.\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Каталоги C \"%1\" вуҷуд надорад.\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "Хатогӣ дар кушодани файл" + +#: directorymergewindow.cpp:868 +#, fuzzy, kde-format +#| msgid "" +#| "The destination directory must not be the same as A or B when three " +#| "directories are merged.\n" +#| "Check again before continuing." +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Директорияи муаёянкуни бояд бошад мисли А ё В вақте,ки се директорияҳо якҷо " +"шуданд.\n" +"Санҷед бори дигар пеш аз давомкуни." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Параметри нодуруст" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +msgid "Scanning folders..." +msgstr "Мушоҳидакунии каталогҳо..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "Хониши файл: %1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "Хониши файл: %1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "Хониши файл: %1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "Наметавонам баъзе зеркаталогҳоро хонам дар" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "Ҳуқуқҳои ин каталогҳоро тафтиш кунед." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Тайёр аст." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "Миқдори якҷошавии дастӣ:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Ин ба ҳамаи якҷошавӣ таъсир мерасонад." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Тағйироти ҳамаи якҷошавиҳо" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "Коркард " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Ҳоло номумкин аст." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Пайваст кардан" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "Хатогии нусхакунӣ.\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Хатогии якҷояшавӣ" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Пайвастшавии номаълум" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Пайвастшавии номаълум." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Ҳоло якҷояшавӣ сар мешавад.\n" +"\n" +"Баъди хондани дастур, \"Ҳал кардан\"-ро пахш кунед.\n" +"Барои нигоҳ кардани воқеа, \"Моделсозӣ\"-ро пахш кунед.\n" +"\n" +"Мо малиҳат медиҳем, ки доимо пеш аз якҷояшавӣ нусхаҳои захиравиро кунед!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Оғози якҷояшавӣ" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Ҳал кардан" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Моделсозӣ" + +#: directorymergewindow.cpp:2140 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Файли интихобшуда дар ҳар каталог шкли гуногун дорад. Чӣ кор карданро " +"интихоб кунед." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Маълумотҳои охирини тағйироти файлҳо якхела ҳастанд, вале таркиб нест. Чӣ " +"кор карданро интихоб кунед." + +#: directorymergewindow.cpp:2148 +#, fuzzy, kde-format +#| msgid "" +#| "The highlighted item has a different type in the different directories. " +#| "Select what to do." +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Файли интихобшуда дар ҳар каталог шкли гуногун дорад. Чӣ кор карданро " +"интихоб кунед." + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "" +#| "This operation is currently not possible because directory merge is " +#| "currently running." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "Ҳоло якҷояшавии каталогҳо ҳал карда мешавад." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Дар этапи ҷорӣ хатогие ба амал омад.\n" +"Давом додан ё сар додан?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Давом додан баъди хатогӣ" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Давом додан" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Сар додан" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Якҷояшавӣ ба анҷом расид." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Якҷояшавӣ ба анҷом расид" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "Якҷояшавӣ ба анҷом расид. Оё шумо бо тағйиротҳои додашуда розӣ ҳастед?" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "Хатогӣ ба амал омад. Барои ахбороти илова OK-ро пахш кунед.\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Хатогӣ: Наметавонам нусхаи захираро эҷод кунам %1." + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "нест кардани каталог рекурсивӣ( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "нест кардан( %1 )" + +#: directorymergewindow.cpp:2467 +#, fuzzy, kde-format +#| msgid "" +#| "Error: delete dir operation failed while trying to read the directory." +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Хатогӣ: наметавонам каталогро нест кунам." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Хатогӣ: хатогии rmdir( %1 )." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Хатогӣ: наметавонам нест кунам." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "якҷояшавии дастӣ( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr " Қайд: Баъди анҷоми якҷояшавии дастӣ F7-ро пахш кунед." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Хатогӣ: наметавонам( %1 -> %2 ) нусха кунам. Нест кардани муайяни вуҷулшуда " +"муяссар карда нашуд." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "бадарғаи нишонавӣ( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Хатогӣ: Бадарғаҳои нестшуда пуштибонӣ карда намешаванд." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Хатогӣ: наметавонам бадарғаро эҷод кунам." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "нусха кардани ( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Хатогӣ дар вақти тағйири ном( %1 -> %2 ): Наметавонам муайяни вуҷудшударо " +"нест кунам." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "тағйири ном( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Хатогӣ: Наметавонам тағйири номро кунам." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Хатогӣ дар вақти эҷод кардани каталоги %1. Файли вуҷудшуда нест карда " +"намешавад." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "эҷоди каталог( %1 )" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while creating directory." +msgid "Error while creating folder." +msgstr "Хатогӣ дар вақти эҷод кардани каталог." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Муайяншуда" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Шакл" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Андоза" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Хусусиятҳо" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Тағйироти охирон" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Бадарғаи-объект" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "Алоқа: " + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "дастрас нест" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (муайяншуда): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (баромад): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (муайяншуда): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (муайяншуда): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Муаяйншуда: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, fuzzy, kde-format +msgid "Save Folder Merge State As..." +msgstr "Хатогӣ дар вақти хониши каталог" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Start/Continue Directory Merge" +msgid "Start/Continue Folder Merge" +msgstr "Сар кардан/давом додани якҷояшаии каталогҳо" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Ба кор даровардан барои нуқтаи ҷорӣ" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Муқоисаи файли интихобшуда" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Якҷоя кардани файли ҷорӣ" + +#: directorymergewindow.cpp:2958 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "" +"Merge\n" +"File" +msgstr "Пайваст кардан" + +#: directorymergewindow.cpp:2959 +#, fuzzy, kde-format +#| msgid "Fold All Subdirs" +msgid "Fold All Subfolders" +msgstr "Дохили ҳамаи зеркаталогҳо" + +#: directorymergewindow.cpp:2960 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold All Subfolders" +msgstr "Дохилнашудаи ҳамаи зеркаталогҳо" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Интихоби A барои ҳама" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Интихоби B барои ҳама" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Интихоби C барои ҳама" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Худ-интихобкунии шакли амал барои ҳама" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Гирифтани амалҳо барои ҳама" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, fuzzy, kde-format +msgid "Show Different Files" +msgstr "Миқдори файлҳои ҳархела:" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, fuzzy, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Муқоисаи файли интихобшуда" + +#: directorymergewindow.cpp:2982 +#, fuzzy, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Муқоисаи файли интихобшуда" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Ягон чиз" + +#: directorymergewindow.cpp:2996 +#, fuzzy, kde-format +msgid "Delete A && B" +msgstr "Нест кардани А ва В" + +#: directorymergewindow.cpp:2999 +#, fuzzy, kde-format +msgid "Merge to A && B" +msgstr "Пайваст кардан ба A & В" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "Хониши файл: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Наметавонам нусхаи яквақтаро эҷод кунам %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "Кушодан %1 нашуд." + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "Хатогӣ дар вақти хониш аз %1" + +#: fileaccess.cpp:1077 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, deleting an older backup failed. \n" +#| "Filename: " +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Наметавонам нусхаи кӯҳнаи захираро нест кунам. \n" +"Номи файл: " + +#: fileaccess.cpp:1084 +#, fuzzy, kde-format +#| msgid "" +#| "While trying to make a backup, renaming failed. \n" +#| "Filenames: " +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Наметавонам номгузориро ҳал кунам. \n" +"Номи файлҳо: " + +#: kdiff3.cpp:163 +#, fuzzy, kde-format +msgid "Current Configuration:" +msgstr "Тағйироти ҳамаи якҷошавиҳо" + +#: kdiff3.cpp:168 +#, fuzzy, kde-format +msgid "Config Option Error:" +msgstr "Хатогӣ дар кушодани файл" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Интихоб --худ истифода шуда, аммо ягон файли хуруҷ муайян карда нашуд." + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Option --auto ignored for directory comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "Интихоб --худ аҳамият надиҳи барои муқоисаи директория." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Нигоҳ куни нашуд." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Кушодани ин файлҳо нашуд:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, fuzzy, kde-format +msgid "File open error" +msgstr "Хатогӣ дар кушодани файл" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Мекушояд документҳоро барои муқоиса..." + +#: kdiff3.cpp:551 +#, fuzzy, kde-format +#| msgid "Ready." +msgid "Reload" +msgstr "Тайёр аст." + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" +"Нигоҳ медорад натиҷаи якҷошавиро. Ҳамаи ҷанҷолҳо бояд ҳал карда шаванд!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Нигоҳ медорад документи ҷориро мисли..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Маҳкам мекунад аризаро" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Мебурад қисми интихоб карда шударо ва меандозад онро ба клипборд" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Нусха мебардорад қисми интихоб карда шударо ба клипборд" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "Мечаспонад таркиботҳои клибордро ба ҷойгиршавии амалӣ" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Ковтукови ришта" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Бори дигар ковтуков барои ришта" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Пайраҳаи ҳолати фаъол/ғайри фаъолро созед" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Танзимоти KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Равед ба Делтаи Ҷори" + +#: kdiff3.cpp:606 +#, fuzzy, kde-format +#| msgid "Go to Current Delta" +msgid "" +"Current\n" +"Delta" +msgstr "Равед ба Делтаи Ҷори" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Равед ба Делтаи Аввала" + +#: kdiff3.cpp:608 +#, fuzzy, kde-format +#| msgid "Go to First Delta" +msgid "" +"First\n" +"Delta" +msgstr "Равед ба Делтаи Аввала" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Равед ба Делтаи Охирон" + +#: kdiff3.cpp:610 +#, fuzzy, kde-format +#| msgid "Go to Last Delta" +msgid "" +"Last\n" +"Delta" +msgstr "Равед ба Делтаи Охирон" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Равед ба Делтаи Пешангӣ" + +#: kdiff3.cpp:614 +#, fuzzy, kde-format +#| msgid "Go to Previous Delta" +msgid "" +"Prev\n" +"Delta" +msgstr "Равед ба Делтаи Пешангӣ" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Равед ба Делтаи Дар пеш интизор" + +#: kdiff3.cpp:616 +#, fuzzy, kde-format +#| msgid "Go to Next Delta" +msgid "" +"Next\n" +"Delta" +msgstr "Равед ба Делтаи Дар пеш интизор" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Равед ба Ҷанҷоли Пешангӣ" + +#: kdiff3.cpp:618 +#, fuzzy, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "Якҷояшавӣ ба анҷом расид" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Равед ба Ҷанҷоли Дар пеш интизор " + +#: kdiff3.cpp:620 +#, fuzzy, kde-format +#| msgid "Go to Next Conflict" +msgid "" +"Next\n" +"Conflict" +msgstr "Равед ба Ҷанҷоли Дар пеш интизор " + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Равед ба Ҷанҷоли Пешангии Ҳалнашуда" + +#: kdiff3.cpp:622 +#, fuzzy, kde-format +#| msgid "Unsolved" +msgid "" +"Prev\n" +"Unsolved" +msgstr "Иҷозат дода нашуд" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Равед ба Ҷанҷоли Дар пеш интизори Ҳалнашуда" + +#: kdiff3.cpp:624 +#, fuzzy, kde-format +#| msgid "Unsolved" +msgid "" +"Next\n" +"Unsolved" +msgstr "Иҷозат дода нашуд" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Интихоб кунед Рах(ҳо)-ро Аз А" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Интихоб кунед Рах(ҳо)-ро Аз В" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Интихоб кунед Рах(ҳо)-ро Аз С" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Зуд равед ба ҷанҷоли пешангии ҳалнашуда баъди интихоби сарчашма" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, fuzzy, kde-format +#| msgid "Show Space && Tabulator Characters for Differences" +msgid "Show Space && Tabulator Characters" +msgstr "Нишон диҳед фосиларо && Феълҳои табулятори барои гуногуниҳо" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Нишон диҳед фосиларо" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Нишон диҳед рахи рақамҳоро" + +#: kdiff3.cpp:634 +#, fuzzy, kde-format +#| msgid "Show Line Numbers" +msgid "" +"Line\n" +"Numbers" +msgstr "Нишон диҳед рахи рақамҳоро" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Танзим кунед делтаҳоро ба ҷанҷолҳо" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, fuzzy, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, fuzzy, kde-format +msgid "Join Selected Diffs" +msgstr "Муқоисаи файли интихобшуда" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Нишон диҳед Тирезаи А-ро" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Нишон диҳед Тирезаи В-ро" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Нишон диҳед Тирезаи С-ро" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Оддӣ аз назар гузарондан" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Аз назар гузарондани A vs. B " + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Аз назар гузарондани A vs. C" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Аз назар гузарондани B vs. C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Калимаи печидаи тирезаҳои гуногун" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Активация кардани дигар тиреза" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Активация кардани тирезаи гузашта" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Дигаркунӣ ва тақсимкунии ҷои исти худ" + +#: kdiff3.cpp:659 +#, fuzzy, kde-format +#| msgid "Dir && Text Split Screen View" +msgid "Folder && Text Split Screen View" +msgstr "аппп" + +#: kdiff3.cpp:661 +#, fuzzy, kde-format +#| msgid "Toggle Between Dir && Text View" +msgid "Toggle Between Folder && Text View" +msgstr "Дигаркунӣ байни феҳристҳо && намоиши матн" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, fuzzy, kde-format +#| msgid "The merge result hasn't been saved." +msgid "The merge result has not been saved." +msgstr "Натиҷаи иттиҳодия нигоҳ надоштагӣ." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Нигоҳ доштан && баромадан" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Бе нигоҳдорӣ баромадан" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Натиҷаи якҷоя кардан,нигоҳ дошта нашуд." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "Якҷояшавии каталогро нигоҳ дорем.Оё,шумо дилпур мехоҳед, баровардан?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Нигоҳ доштани файл..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Бо номи нав нигоҳ доштани файл..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "" + +#: kdiff3.cpp:799 +#, fuzzy, kde-format +msgid "Printing not implemented." +msgstr "Якҷояшавӣ ба анҷом расид." + +#: kdiff3.cpp:837 +#, fuzzy, kde-format +msgid "Printing..." +msgstr "Баромад..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +msgid " (Selection)" +msgstr "Интихоб кунед Рах(ҳо)-ро Аз С" + +#: kdiff3.cpp:1025 +#, fuzzy, kde-format +msgid "Printing completed." +msgstr "Якҷояшавӣ ба анҷом расид." + +#: kdiff3.cpp:1029 +#, fuzzy, kde-format +msgid "Printing aborted." +msgstr "Якҷояшавӣ ба анҷом расид." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Баромад..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Тасвир кардан/панели асбобҳои пинҳонӣ..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Тасвир кардан/вазъияти панели пинҳонӣ..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, fuzzy, kde-format +msgid "&KDiff3" +msgstr "KDiff3Part" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, fuzzy, kde-format +msgid "Configure KDiff3" +msgstr "Танзимоти KDiff3..." + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, fuzzy, kde-format +msgid "KDiff3" +msgstr "KDiff3Part" + +#: kdiff3_shell.cpp:63 +#, fuzzy, kde-format +#| msgid "" +#| "Could not find our part!\n" +#| "This usually happens due to an installation problem. Please read the " +#| "README-file in the source package for details." +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Қисми мо ёфт нашуд!\n" +"Ин масъала одатан дар вақти аниқ рӯй медиҳад.Файли README-ро хонед, ҷой ва " +"калидро ба тафсил баён кунед." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, fuzzy, kde-format +msgid "Current Item Merge Operation" +msgstr "Тағйироти ҳамаи якҷошавиҳо" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "Пайваст кардан" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, fuzzy, kde-format +msgid "&Window" +msgstr "Нишон диҳед Тирезаи С-ро" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Якҷоя даровардан." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" +"Эзоҳ додани маълумоти файл.Барои мутобиқ будан бо асбобҳои муқаррар- шуда." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Баромади файл.Тахмин кардани мавҷуд ҳамчун-m. Мисли: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Барориши файл.(Барои мутобиқ бо асбобҳои монанд.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, fuzzy, kde-format +msgid "Use a different config file." +msgstr "Миқдори файлҳои ҳархела:" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Мувофиқкунии ишораҳо бо файлҳои оддӣ." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Алоқа: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Андоза. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Таърихи рӯз ва андоза: " + +#: MergeFileInfos.cpp:466 +#, fuzzy, kde-format +msgid "Comparing file..." +msgstr "Нигоҳ доштани файл ..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Интихоб кунед А-ро дар ҳамаҷой" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Интихоб кунед В-ро дар ҳамаҷой" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Интихоб кунед В-ро дар ҳамаҷой" + +#: mergeresultwindow.cpp:147 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Интихоб кунед А-ро барои ҳамаи ҷанҷолҳои ҳалнашуда" + +#: mergeresultwindow.cpp:148 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Интихоб кунед В-ро барои ҳамаи ҷанҷолҳои ҳалнашуда" + +#: mergeresultwindow.cpp:149 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Интихоб кунед С-ро барои ҳамаи ҷанҷолҳои ҳалнашуда" + +#: mergeresultwindow.cpp:150 +#, fuzzy, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Интихоб кунед А-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда" + +#: mergeresultwindow.cpp:151 +#, fuzzy, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Интихоб кунед В-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда" + +#: mergeresultwindow.cpp:152 +#, fuzzy, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Интихоб кунед С-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, fuzzy, kde-format +msgid "" +msgstr "Якҷояшавӣ ба анҷом расид" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, fuzzy, kde-format +msgid "" +msgstr "Якҷояшавӣ ба анҷом расид" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, fuzzy, kde-format +msgid "File Save Error" +msgstr "Хатогӣ дар кушодани файл" + +#: mergeresultwindow.cpp:3020 +#, fuzzy, kde-format +msgid "Error while writing." +msgstr "Хатогӣ дар вақти эҷод кардани каталог." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "" + +#: mergeresultwindow.cpp:3215 +#, fuzzy, kde-format +msgid "Conflict" +msgstr "Якҷояшавӣ ба анҷом расид" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, fuzzy, kde-format +msgid "A (Base):" +msgstr "A (баромад): " + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, fuzzy, kde-format +msgid "Configure" +msgstr "Танзимоти KDiff3..." + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +msgid "File view font" +msgstr "Хатогӣ дар кушодани файл" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, fuzzy, kde-format +msgid "Folder Comparison View:" +msgstr "Ҳолати муқоисакунии каталогҳо" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Нишон диҳед Тирезаи С-ро" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, fuzzy, kde-format +msgid "Diff" +msgstr "KDiff3Part" + +#: optiondialog.cpp:839 +#, fuzzy, kde-format +msgid "Diff Settings" +msgstr "Воситаи муқоиса ва якҷоя кардан" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "Пайваст кардан" + +#: optiondialog.cpp:934 +#, fuzzy, kde-format +msgid "Merge Settings" +msgstr "Воситаи муқоиса ва якҷоя кардан" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, fuzzy, kde-format +#| msgid "Show Window A" +msgid "Show info dialogs" +msgstr "Нишон диҳед Тирезаи А-ро" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, fuzzy, kde-format +msgid "Max number of history entries:" +msgstr "Миқдори зеркаталогҳо:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, fuzzy, kde-format +msgid "Recursive folders" +msgstr "Мушоҳидакунии каталогҳо..." + +#: optiondialog.cpp:1148 +#, fuzzy, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Ҳуқуқҳои ин каталогҳоро тафтиш кунед." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, fuzzy, kde-format +#| msgid "Unfold All Subdirs" +msgid "Unfold all subfolders on load" +msgstr "Дохилнашудаи ҳамаи зеркаталогҳо" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, fuzzy, kde-format +msgid "Binary comparison" +msgstr "Ҳолати муқоисакунии каталогҳо" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, fuzzy, kde-format +msgid "Synchronize folders" +msgstr "Мушоҳидакунии каталогҳо..." + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, fuzzy, kde-format +msgid "Integration" +msgstr "Амал" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading A: %1" +msgstr "Хониши файл: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading B: %1" +msgstr "Хониши файл: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Loading C: %1" +msgstr "Хониши файл: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, fuzzy, kde-format +msgid "Opening files..." +msgstr "Кушодан %1 нашуд." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "" + +#: pdiff.cpp:1067 +#, fuzzy, kde-format +msgid "Copying selection to clipboard..." +msgstr "Нусха мебардорад қисми интихоб карда шударо ба клипборд" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, fuzzy, kde-format +msgid "Save && Continue" +msgstr "Нигоҳ доштан && баромадан" + +#: pdiff.cpp:1690 +#, fuzzy, kde-format +msgid "Continue Without Saving" +msgstr "Бе нигоҳдорӣ баромадан" + +#: pdiff.cpp:1882 +#, fuzzy, kde-format +msgid "Search complete." +msgstr "Ҷустуҷу дар ҷамъбаст" + +#: pdiff.cpp:1882 +#, fuzzy, kde-format +msgid "Search Complete" +msgstr "Якҷояшавӣ ба анҷом расид" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, fuzzy, kde-format +msgid "Error while adding manual diff range" +msgstr "Хатогӣ дар вақти эҷод кардани каталог." + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, fuzzy, kde-format +msgid "Configure..." +msgstr "Танзимоти KDiff3..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +msgid "Open Folder" +msgstr "Кушодан %1 нашуд." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, fuzzy, kde-format +msgid "Search text:" +msgstr "Пайдо кардан:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Ба ҳисоб гирифтани рӯйхат" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Ҷустуҷуи A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Ҷустуҷуи B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Ҷустуҷуи C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Ҷустуҷу дар ҷамъбаст" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Ҷустуҷӯ" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, fuzzy, kde-format +msgid "Match failed." +msgstr "Нигоҳ куни нашуд." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Дар силули мухобиротӣ навиштани таърих ва суръати файл." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Аз буфери иваз" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "Мувофиқкунии ишораҳо бо файлҳои оддӣ." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Пеш-коркардкуни мумкин ,ки аз кор монд. Санҷед ин фармонро:\n" +"\n" +" %1\n" +"\n" +"Фармони пеш-коркардкуни ҳоло аз кор мемонад." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Хати-ҷамъ кунии- пешкоркардкуни мумкин нашуд.Санҷед ин фармонро:\n" +"\n" +" %1\n" +"\n" +"\n" +"Хати-ҷамъ кунии- пешкоркардкунии фармон ҳоло аз кор мемонад." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/tr/kdiff3.po b/po/tr/kdiff3.po new file mode 100644 index 0000000..b062caa --- /dev/null +++ b/po/tr/kdiff3.po @@ -0,0 +1,3591 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +# Adem Alp Yıldız , 2005. +# Alper Sen , 2005. +# Alper Şen , 2005. +# Engin ÇAĞATAY , 2004. +# Görkem Çetin , 2003. +# Muhammet Kara , 2014. +# obsoleteman , 2008-2009,2012-2013. +# Volkan Gezer , 2013-2014. +# Emir SARI , 2022. +msgid "" +msgstr "" +"Project-Id-Version: extragear-utils-kde4\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-04-01 13:34+0300\n" +"Last-Translator: Emir SARI \n" +"Language-Team: Turkish \n" +"Language: tr\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 21.12.3\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Serdar Soytetir, Emir SARI" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "tulliana@gmail.com, emir_sari@icloud.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Dosya durumu okunuyor: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Dosya okunuyor: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Dosya yazılıyor: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Hafıza yetersizliği" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Klasör oluşturuluyor: %1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Klasör kaldırılıyor: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Dosya siliniyor: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Sembolik bağ oluşturuluyor: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Dosya yeniden adlandırılıyor: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Dosya kopyalanıyor: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Klasör okunuyor: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Klasör listeleniyor: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Veri kaybı hatası:\n" +"Eğer tekrarlanabilirse lütfen yazar ile iletişime geçiniz.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Ciddi Dahili Hata" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "Ciddi Dahili Hata" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "Ciddi Dahili Hata" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Dosya %1: Satır %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Dosya %1: Satır kullanılamıyor" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Kodlama:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Satır ve biçim:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Temel)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Kodlanıyor: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Satır sonu biçemi: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "En üst satır" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Son" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Dosya Aç" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8 bit" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Diğer" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "A'yı B'ye kopyala" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "B'yi A'ya kopyala" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "A'yı Sil" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "B'yi Sil" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "A ve B'yi Sil" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "A ile Birleştir" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "B ile Birleştir" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "A ve B ile Birleştir" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "(varsa) Sil" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Birleştir" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Birleştir (el ile)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Hata: Çakışan Dosya Türleri" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Hata: Değiştirildi ve Silindi" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Hata: Tarihler aynı fakat dosyalar aynı değil." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Tamamlandı" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Hata" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Atlandı." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Kaydedilmedi." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Uygulanıyor..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Yapılacak." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Ad" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "İşlem" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Durum" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Çözülmemiş" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Çözülmüş" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Beyaz değil" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Beyaz" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Şu anda bir klasör birleştirmesi yapıyorsunuz. Birleştirmeyi iptal edip " +"klasörü yeniden taramak istediğinize emin misiniz?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Uyarı" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Yeniden Tara" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Birleştirmeye Devam Et" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Klasör açma başarısız:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "A Klasörü \"%1\" mevcut değil veya bu bir klasör değil.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "B Klasörü \"%1\" mevcut değil veya bu bir klasör değil.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "C Klasörü \"%1\" mevcut değil veya bu bir dizin değil.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Klasör Açma Hatası" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Üç klasör birleştirilirken hedef klasörü A veya B ile aynı olmamalıdır.\n" +"Sürdürmeden önce yeniden denetleyin." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Parametre Uyarısı" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Klasörler taranıyor..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "A Klasörü Okunuyor" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "B Klasörü Okunuyor" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "C Klasörü Okunuyor" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Bazı alt klasörler okunabilir değildi" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Alt klasörlerin izinlerini denetleyin." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Hazır." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Klasör Karşılaştırma durumu\n" +"\n" +"Alt klasörlerin sayısı: %1\n" +"Eşdeğer dosyaların sayısı: %2\n" +"Ayrımlı dosyaların sayısı: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "El ile birleştirmelerin sayısı: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Bu, tüm birleştirme işlemlerini etkiler." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Tüm Birleştirme İşlemleri Değiştiriliyor" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"%1/%2 işleniyor\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Bazı dosyalar işlenemedi." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Çok fazla hatadan dolayı iptal ediliyor." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Bu işlem şu anda yapılabilir değil." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "İşlem Yapılabilir Değil" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Kopyalanırken bir hata oluştu." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Birleştirme Hatası" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Bilinmeyen birleştirme işlemi. (Bu, hiçbir zaman oluşmamalı!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Bilinmeyen birleştirme işlemi." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Birleştirme başlamak üzere.\n" +"\n" +"Açıklamaları okuduysanız ve ne yaptığınızı biliyorsanız \"Yap\"ı seçin.\n" +"\"Dene\"yi seçmek size ne olabileceğini gösterir.\n" +"\n" +"Bu uygulama hâlâ beta durumundadır ve ne olursa olsun hiçbir GARANTİSİ " +"YOKTUR! Önemli verilerinizin yedeğini alın!!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Birleştirme Başlıyor" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Yap" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Dene" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Vurgulanan nesne, değişik klasörlerde değişik dosya türüne sahip. Ne " +"yapılacağını seçin." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" +"Dosyaların değiştirilme tarihleri aynı fakat dosyalar aynı değil. Ne " +"yapılacağını seçin." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Vurgulanan öge bir klasörde değiştirildi ve diğerinde silindi. Ne " +"yapılacağını seçin." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "Bu işlem şu anda yapılamaz çünkü klasör birleştirmesi hâlâ sürüyor." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"Son adımda bir hata oluştu.\n" +"Hata oluşturan nesne ile devam etmek mi yoksa bu nesneyi atlamak mı " +"istiyorsunuz?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Bir hatadan sonra birleştirmeye devam et" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Son Nesne ile Devam Et" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Nesneyi Atla" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Birleştirme işlemi tamamlandı." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Birleştirme Tamamlandı" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Simüle edilen birleştirme tamamlandı: Önerilen işlemleri kabul edip " +"etmediğinizi denetleyin." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "Bir hata oluştu. Ayrıntılı bilgiyi görmek için Tamam düğmesine basın." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Hata: %1 silinirken oluştu: Yedek alınamadı." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "klasörü özyineli olarak sil( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "sil( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "Hata: Klasör okunmaya çalışırken klasörü silme işlemi başarısız oldu." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Hata: rmdir( %1 ) işlemi başarısız oldu." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Hata: silme işlemi başarısız oldu." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "el ile birleştir( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Not: El ile birleştirmeden sonra kullanıcı F7 ile devam etmelidir." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Hata: kopyala( %1 -> %2) başarısız oldu. Mevcut hedefin silinmesi başarısız " +"oldu." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "BağıKopyala( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "Hata: BağıKopyala başarısız oldu: Uzak bağlar henüz desteklenmiyor." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Hata: BağıKopyala başarısız oldu." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "kopyala( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Yeniden adlandırılırken ( %1 -> %2 ) hata oluştu: Mevcut hedef silinemiyor." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "yeniden adlandır( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Hata: Yeniden adlandırma başarısız oldu." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "%1 klasörü oluşturulurken hata: Mevcut dosya silinemiyor." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "klasörOluştur( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Klasör oluşturulması sırasında hata oluştu." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Hedef" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Klasör" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Tür" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Boyut" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Özellikler" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Son Değiştirme" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Bağ-Hedefi" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Dosya" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Bağ" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "mümkün değil" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Hedef): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Temel): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Hedef): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Hedef): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Hedef: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Klasör Birleştirme Durumunu Farklı Kaydet..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Klasör Birleştirmesini Başlat/Sürdür" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Mevcut Nesne için İşlem Başlat" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Seçili Dosyayı Karşılaştır" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Mevcut Dosyayı Birleştir" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Birleştir\n" +"Dosya" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Tüm Alt Klasörleri Kapat" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Tüm Alt Klasörleri Aç" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Tüm Nesneler için A'yı Seç" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Tüm Nesneler için B'yi Seç" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Tüm Nesneler için C'yi Seç" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Tüm Nesneler için Atomatik-Seçim İşlemi" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Tüm Nesneler için Hiçbir Seçim" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Özdeş Dosyaları Göster" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Özdeş\n" +"Dosyalar" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Farklı Dosyaları Göster" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Yalnızca A'daki Dosyaları Göster" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Dosyalar\n" +"Yalnızca A içinde" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Yalnızca B'deki Dosyaları Göster" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Dosyalar\n" +"yalnızca B içinde" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Yalnızca C'deki Dosyaları Göster" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Dosyalar\n" +"yalnızca C içinde" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Seçilen Dosyaları Karşılaştır" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Seçilen Dosyaları Birleştir" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Bir Şey Yapma" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "A ve B'yi Sil" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "A ve B ile Birleştir" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Tam URL algılanamıyor. Üst öge belirtilmemiş." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Dosya okunumadı: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "%1 dosyasının geçici kopyasının oluşturulmasında hata oluştu." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "%1 açılamadı. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "%1 konumundan okunamıyor. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Yedekleme yapılırken, eski bir yedeğin silinmesi başarısız oldu.\n" +"Dosya adı: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Yedekleme yapılırken, yeniden adlandırma başarısız oldu.\n" +"Dosya adları: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Geçerli Yapılandırma:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Yapılandırma Seçeneği Hatası:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "--auto seçeneği kullanıldı, fakat çıktı dosyası belirtilmedi." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "--auto seçeneği klasör karşılaştırmasını reddetti." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Kaydetme başarısız oldu." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Şu dosyaların açılması başarısız oldu:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Dosya açma hatası" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Karşılaştırmak için belge açar..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Yeniden Yükle" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Birleştirme sonuçlarını kaydeder. Tüm çakışmalar çözülmelidir!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Mevcut belgeyi farklı kaydeder..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Farkları yazdır" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Uygulamadan çıkar" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Seçili bölümü keser ve panoya koyar" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Seçili bölümü panoya kopyalar" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Pano içeriğini mevcut konuma yapıştırır" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Geçerli penceredeki her şeyi seç" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Bir satırı ara" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Satırı tekrar ara" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Durum çubuğunu açar/kapatır" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "KDiff3 Uygulamasını Yapılandır..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Mevcut Delta'ya Git" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Mevcut\n" +"Delta" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "İlk Delta'ya Git" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"İlk\n" +"Delta" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Son Delta'ya Git" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Son\n" +"Delta" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" +"(\"Boşluk Karakterini Göster\" seçeneği kapalı iken boşluk farklarını göz " +"ardı eder.)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(\"Boşluk Karakterini Göster\" seçeneği kapalı iken boşluk farklarını göz " +"ardı etmez.)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Önceki Delta'ya Git" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Önceki\n" +"Delta" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Sonraki Delta'ya Git" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Sonraki\n" +"Delta" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Bir Önceki Çakışmaya Git" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Önceki\n" +"Çakışma" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Bir Sonraki Çakışmaya Git" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Sonraki\n" +"Çakışma" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Bir Önceki Çözülmeyen Çakışmaya Git" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Önceki\n" +"Çözümlenmemiş" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Bir Sonraki Çözülmeyen Çakışmaya Git" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Sonraki\n" +"Çözümlenmemiş" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "A'dan Satır(lar) Seç" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Seç\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "B'den Satır(lar) Seç" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Seç\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "C'den Satır(lar) Seç" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Seç\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" +"Kaynak Seçiminden Sonra Otomatik Olarak Bir Sonraki Çözülmeyen Çakışmaya Git" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Otomatik\n" +"Sonraki" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Boşluk ve Sekme Karakterlerini Göster" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Beyaz\n" +"Karakter" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Boşluğu Göster" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Beyaz\n" +"Deltalar" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Satır Numaralarını Göster" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Satır\n" +"Numaraları" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Basit Çakışmaları Otomatik Olarak Çöz" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Deltaları Çakışmalara Ayarla" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Düzenli İfade Otomatik Birleştirme'yi Çalıştır" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Geçmiş Çakışmalarını Otomatik Olarak Çözümle" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Seçimde Farkı Ayır" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Seçili Farkları Birleştir" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "A Penceresini Göster" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "B Penceresini Göster" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "C Penceresini Göster" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Normal Öngörünüm" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A - B Karşılaştırılması Öngörünümü" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A - C Karşılaştırılması Öngörünümü" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B - C Karşılaştırılması Öngörünümü" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Sözcük Kaydırma Fark Pencereleri" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Elle Fark Hizalaması Ekle" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Elle Fark Hizalamalarının Tamamını Temizle" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Bir Sonraki Pencereye Odaklan" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Bir Önceki Pencereye Odaklan" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Bölme Yönünü Değiştir" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Klasör ve Metin Ayırma Ekran Görünümü" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Klasör ve Metin Görünümü Arasında Geçiş Yap" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Birleştirme sonucu kaydedilmedi." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Kaydet ve Çık" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Kaydetmeden Çık" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Birleştirme sonucunun kaydedilmesi başarısız oldu." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Şu anda bir klasör birleştirmesi gerçekleştiriyorsunuz. Çıkmak " +"istediğinizden emin misiniz?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Dosya kaydediliyor..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Dosya yeni bir adla kaydediliyor..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Farklı Kaydet..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Yazdırma uygulamaya konmadı." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Yazdırma..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "%1/%2 sayfa yazdırılıyor" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Seçim)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Yazdırma işlemi tamamlandı." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Yazdırma işlemi sonlandırıldı." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Çıkılıyor..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Araç çubuğu açılıyor/kapatılıyor..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Durum çubğunu göster/sakla..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "SVG görsellerini görüntülemek için bir KPart" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "Telif hakkı 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "KDiff3 Uygulamasını Yapılandır" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"KDiff3 parçasını başlatılamadı.\n" +"Bu genellikle bir yükleme sorunu nedeniyle oluşur. Ayrıntılar için lütfen " +"kaynak paketindeki README dosyasını okuyun." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Dosya" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "K&lasör" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Geçerli Öge Birleştirme İşlemi" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Geçerli Öge Eşitleme İşlemi" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "&Hareket" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "F&arkGörünümü" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "B&irleştir" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Pencere" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Ana Araç Çubuğu" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Göz ardı edildi. (Kullanıcı tanımlı)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 bit)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 bit)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Dosyaları ve Klasörleri Karşılaştırma ve Birleştirme Aracı" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 aktarımı" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Girdiyi birleştir." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Açık temel dosya. Belirli araçlarla uyumluluk için." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Çıktı dosyası. -m ima eder. Örneğin: -o yenidosya.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Çıktı dosyası, tekrar. (Belirli araçlarla uyumluluk için.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Tüm çakışmalar otomatik çözülebilirse GUI yok. (-o dosyaadı na ihtiyaç duyar)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "--auto'yu yok say ve her zaman grafik arabirimi göster." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Yok sayıldı." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Giriş dosyası 1 için görünür ad değiştirme (temel)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Giriş dosyası 2 için görünür ad değiştirme." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Giriş dosyası 3 için görünür ad değiştirme." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "Alternatif görünür ao değiştirme. Her giriş için bunu bir kez verin." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Bir yapılandırma ayarının üzerine yazın. Her ayar için bir kez kullanın. " +"Örneğin: --cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Yapılandırma ayarlarının listesini ve geçerli değerleri göster." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Farklı bir yapılandırma dosyası kullan." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "file1'i açmak için (baz, --base ile belirtilmemişse)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "açılacak ikinci dosya" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "açılacak üçüncü dosya" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Desteklenen seçenekler için kdiff3 --help'e bakın." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Normal olmayan dosya, normal dosya ile karşılaştırılamıyor." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Bağların ve normal dosyaların karışımı." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Bağ: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Boyut. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Tarih & Boyut: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Dosya karşılaştırılıyor..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "A'yı Heryerde Seç" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "B'yi Heryerde Seç" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "C'yi Heryerde Seç" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Tüm Çözümlenmemiş Çakışmalar için A'yı Seç" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Tüm Çözümlenmemiş Çakışmalar için B'yi Seç" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Tüm Çözümlenmemiş Çakışmalar için C'yi Seç" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Tüm Çözümlenmemiş Boşluk Çakışmaları için A'yı Seç" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Tüm Çözümlenmemiş Boşluk Çakışmaları için B'yi Seç" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Tüm Çözümlenmemiş Boşluk Çakışmaları için C'yi Seç" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Bekleyen çözülmeyen çakışmaların sayısı: %1 (%2 boşluk)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Çıktı üzerinde değişiklik yapıldı.\n" +"Devam ederseniz değişiklikleri kaybedeceksiniz." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Tüm girdi dosyaları ikili olarak eşittir." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Tüm girdi dosyaları aynı metni içeriyor." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "%1 ve %2 dosyaları ikili olarak denk.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "%1 ve %2 dosyaları aynı metne sahip.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Toplam çakışma sayısı: %1\n" +"Kendiliğinden çözülen çakışma sayısı: %2\n" +"Çözülemeyen çakışma sayısı: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Çakışmalar" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Daha tüm çakışmalar çözülmedi.\n" +"Dosya kaydedilmedi." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Çakışmalar Var" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Bir satır sonu biçemi çakışması var. Lütfen satır sonu biçemini elle " +"seçiniz.\n" +"Dosya kaydedilemedi." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Yedek oluşturma başarısız oldu. Dosya kaydedilmedi." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Dosya Kaydetme Hatası" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Yazılırken hata oluştu." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Çıktı:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Değişiklik Yapıldı]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Kaydetme kodlaması:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Çakışma" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "A'dan kod çözücü: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "B'den kod çözücü: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "C'den kod çözücü: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "İletişim Kutusu" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Temel):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Çıktı (İsteğe Bağlı):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Dosya..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Adları Takas Et/Kopyala..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (İsteğe Bağlı):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Klasör..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Bir sürüm denetim geçmiş girdisi birkaç satırdan oluşur.\n" +"İlk satırı saptamak için düzenli ifadeyi belirtin (baştaki yorum olmadan).\n" +"Sıralama için kullanmak istediğiniz tuşları gruplandırmak için parantez " +"kullanın.\n" +"Boş bırakılırsa KDiff3 boş satırların geçmiş kayıtlarını ayırdığını " +"varsayar.\n" +"Ayrıntılar için belgelendirmeye bakınız." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Geçmişe başlama girdisinin düzenli ifadesinde kullanılan her parantez çifti\n" +"sıralama için kullanılabilecek bir düğmeyi gruplar.\n" +"Düğmelerin listesini belirtin (oluşma sırasına göre numaralandırılmış olan\n" +"1) 'den başlayarak ayırıcı olarak ',' kullanarak (ör. \"4,5,6,1,2,3,7\").\n" +"Boş bırakılırsa herhangi bir sıralama yapılmaz.\n" +"Ayrıntılar için belgelendirmeyi inceleyiniz." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"KDiff3'ün otomatik olarak bir kaynak seçmesi gereken satırlar için düzenli " +"ifade.\n" +"Çakışma olan bir satır düzenli ifadeyle eşleştiğinde\n" +"- Eğer varsa-C, aksi halde B seçilecektir." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Sürüm denetim geçmişi girdisinin başlangıcı için düzenli ifade.\n" +"Genellikle bu satırda \"$Log$\" anahtar kelimesi bulunur.\n" +"Varsayılan değer: \".*\\$Log.*\\$.*\"" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Pijamalı hasta yağız şoföre çabucak güvendi;\n" +"ancak arabası birkaç yüz metre gidip yolda kaldı.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "Yazıtipini Değiştir" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Yazıtipi: %1, %2, %3\n" +"\n" +"Örnek:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "ASCII olmayan karakterler doğru görüntülenmiyorsa bunu değiştirin." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Yapılandır" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Yazı Tipi" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Düzenleyici ve Karşılaştırıcı Çıktısı Yazı Tipi" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Uygulama yazıtipi" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Dosya görüntüleme yazıtipi" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Renk" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Renk Ayarları" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Düzenleyici ve Diff Görünümü:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Önplan rengi:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Arka alan rengi:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Karşılaştırıcı arka alanı rengi:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "A'nın rengi:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "B'nin rengi:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "C'nin rengi:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Çakışma rengi:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Geçerli aralık arka plan rengi:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Geçerli aralık fark arka plan rengi:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Elle hizalanan fark aralıkları için renk:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Klasör Karşılaştırma Görünümü:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "En yeni dosya rengi:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Bu rengi değiştirmek, yalnızca bir sonraki klasör karşılaştırmasını " +"başlatırken etkili olur." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "En eski dosya rengi:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Orta çağ dosya rengi:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Kayıp dosyalar için renk:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Düzenleyici" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Düzenleyici Davranışı" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Tab düğmesi boşluk yerleştirir" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Açık: Sekmeye basmak uygun sayıda boşluk oluşturur.\n" +"Kapalı: Bir sekme karakteri eklenecektir." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Tab boyutu:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Otomatik girintileme" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "Açık: Bir önceki satırın girintisi yeni bir satır için kullanılır.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Seçimi otomatik olarak kopyala" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Açık: Herhangi bir seçim panoya hemen yazılır.\n" +"Kapalı: Kesin olarak kopyalamalısınız Ör. Ctrl-C ile." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "DOS/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Otomatik Algıla" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Düzenlenen bir dosya kaydedildiğinde satır sonlarını ayarlar.\n" +"DOS/Windows: CR+LF; UNIX: LF; CR=0D, LF=0A ile" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff Ayarları" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Sayıları yok say (boşluk olarak gör)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Satır eşleme aşaması sırasında sayı karakterlerini yok sayın. (Boşluğu yok " +"saymaya benzer.)\n" +"Sayısal verilerle dosyaları karşılaştırmak için yardımcı olabilir." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "C/C++ yorumlarını yok say (boşluk olarak gör)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ yorumlarına boşluk olarak davran." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "BÜYÜK/küçük harf durumunu yok say (boşluk olarak gör)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" +"Boşluk değişiklikleri gibi büyük küçük harf farklılıklarını iyileştir. " +"('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Önişlemci komutu:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Kullanıcı tanımlı ön-işleme. (Ayrıntılar için belgelere bakınız.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Satır-eşleştirme önişlemci komutu:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Bu ön-işlemci yalnızca satır eşleştirmesi sırasında kullanılır.\n" +"(Detaylar için belgelere bakınız.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Çok uğraş (yavaştır)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Harici fark için --minimal seçeneğini etkinleştirir.\n" +"Büyük dosyaların çözümlemesi çok daha yavaş olacaktır." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "3 girdi dosyası için B ve C'yi hizalayın" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Üç girdi dosyasını karşılaştırırken veya birleştirirken B ve C'yi hizalamaya " +"çalışın.\n" +"Birleştirme daha karışık hale gelebileceğinden birleştirme işlemi için " +"önerilmez.\n" +"(Varsayılan olarak kapalıdır.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Birleştir" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Birleştirme Ayarları" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Otomatik ilerleme gecikmesi (ms):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"Otomatik-İlerleme modunda, bir sonraki çakışmaya atlamadan önce, \n" +"geçerli seçimin sonucu belirtilen süre boyunca gösterilir. Aralık: 0-2000 ms" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Bilgi pencerelerini göster" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" +"Çakışmaların sayısı hakkında bilgi içeren bir iletişim penceresi göster." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Boşluk 2 dosya birleştirme varsayılanı:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "El ile Seçim" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Birleştirme algoritmasına yalnızca boşluk değişiklikleri için otomatik " +"olarak bir girdi seçmesine izin verin." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Boşluk 3 dosyalı birleştirme varsayılanı:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Otomatik Birleştirme Düzenli İfadesi" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Otomatik birleştirme düzenli ifadesi:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" +"Birleştirme başlangıcında düzenli ifade otomatik birleştirmeyi çalıştır" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Bir birleştirme başladığında düzenli ifadeleri\n" +"derhal otomatik birleştirmek için birleştirmeyi çalıştırın.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Sürüm Denetim Geçmişi Birleştirme" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Tarih başlangıcı düzenli ifadesi:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Tarih girdi başlangıç düzenli ifadesi:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Geçmiş birleştirme sıralama" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Bir düğme ile denetim geçmişini sırala." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Geçmiş girdisi sıralama düğmesi sıralamasını başlat:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Birleştirme başlangıcında sürüm denetim geçmişini birleştir" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" +"Birleştirme başlangıcında sürüm denetim geçmişi otomatik birleştirmesini " +"çalıştır." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "En fazla geçmiş girdisi sayısı:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "Belirlenen sayıdan sonra kesin. Sonsuz sayıda giriş için -1 kullanın." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Düzenli ifadenizi test edin" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Alakasız birleştirme komutu:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Belirtilirse bu komut dosyası başka ilgili bir değişiklik tespit " +"edilmediğinde\n" +"otomatik birleştirmeden sonra çalıştırılır.\n" +"Bu parametrelerle çağrılır: filename1 filename2 filename3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Birleştirmede çakışmalar olmadan otomatik kaydedin ve çıkın" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Komut satırından bir dosya birleştirme için KDiff3 başlatılmışsa ve\n" +"tüm çakışmalar kullanıcı etkileşimi olmaksızın çözülebilirse otomatik olarak " +"kaydet ve çık.\n" +"(Komut satırı seçeneği \"--auto\" ya benzer şekilde.)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Özyineli klasörler" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Alt klasörlerin çözümlenip çözümlenmeyeceği." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Dosya Türleri:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Analiz edilecek dosyaların desenleri. \n" +"Joker karakterler: '*' ve '?'\n" +"Çeşitli desenler ayırıcı kullanılarak belirtilebilir: ';'" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Dosya-karşıtı-desen(ler):" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Analizden hariç tutulan dosyaların desen(leri). \n" +"Joker karakterler: '*' ve '?'\n" +"Çeşitli Desenler, ayırıcı kullanılarak belirtilebilir: ';'" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Dosya karşıtı dizgi(ler):" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Çözümlemeden hariç tutulan dosyaların dizgi(leri). \n" +"Joker karakterler: '*' ve '?'\n" +"Çeşitli dizgiler, ayırıcı kullanılarak belirtilebilir: ';'" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Yok Sayma Dosyası Kullan" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Karşıt dizgiyi kaynak denetimi tarafından yok sayılacak herhangi bir şeye " +"genişletir.\n" +"Yerel \"yok sayma\" dosyaları ile bu klasöre özgü yapılabilir." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Gizli dosya ve klasörleri bul" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Gizli dosya ve klasörleri bulur." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Dosya bağlarını takip et" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Açık: Bağın işaret ettiği dosyayı karşılaştır.\n" +"Kapalı: Bağları karşılaştır." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Klasör bağlarını takip et" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Açık: Bağın işaret ettiği dosyayı karşılaştır.\n" +"Kapalı: Bağları karşılaştır." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Büyük ve küçük harfe duyarlı karşılaştırma" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Klasör karşılaştırması, dosyaları veya klasörleri adları eşleştiğinde " +"karşılaştırır.\n" +"Adların büyük/küçük harf eşleşmesi gerekiyorsa bu seçeneği ayarlayın. " +"(Windows için varsayılan ayar kapalıdır, aksi durumlarda açıktır.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Tüm Alt Klasörleri Aç" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Açık: Bir klasör diff'i başlatırken tüm alt klasörleri aç.\n" +"Kapalı: Alt klasörleri katlı bırak." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Klasör durum raporunu atla" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Açık: Klasör Karşılaştırma Durumu'nu gösterme.\n" +"Kapalı: Durum iletişim kutusunu başlangıçta göster." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Dosya Karşılaştırma Kipi" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "İkili dosya karşılaştırması" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Her dosyanın ikili karşılaştırması. (Varsayılan)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Tam analiz" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Tam analiz yapın ve istatistik bilgilerini ek sütunlarda gösterin.\n" +"(İkili karşılaştırmadan daha yavaştır, ikili dosyalar için çok daha " +"yavaştır.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Değiştirilme tarihine ve boyutuna güven (güvenli değil)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Değişiklik tarihi ve dosya uzunluğu eşitse dosyaların eşit olduğunu varsay.\n" +"İçeriği aynı ancak değişiklik tarihleri farklı olan dosyalar farklı " +"görünecektir.\n" +"Büyük klasörler veya yavaş ağlar için kullanışlıdır." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Boyuta ve tarihe güvenin, ancak eğer tarih uyuşmuyorsa ikili karşılaştırma " +"kullanın (güvensizdir)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Değişiklik tarihi ve dosya uzunluğu eşitse dosyaların eşit olduğunu varsay.\n" +"Tarihler eşit değilse ama boyutlar eşitse ikili karşılaştırma kullanın.\n" +"Büyük klasörler veya yavaş ağlar için kullanışlıdır." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Boyuta güven (güvenilir değil)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Dosya uzunlukları eşitse dosyaların aynı olduğunu varsay.\n" +"Tarih, indirme sırasında değiştirildiğinde büyük klasörler ve yavaş ağlar " +"için kullanışlıdır." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Klasörleri eşzamanla" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Dosyaları her iki klasörde de saklayarak\n" +" her iki klasörün de aynı kalmasını sağlar.\n" +"Yalnızca bir alış noktası belirtmeden iki klasörü karşılaştırırken çalışır." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Boşluk farklılıkları eşit kabul edildi" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Dosyalar yalnızca boşluklara göre farklılık gösteriyorsa onları eşit olarak " +"düşünün.\n" +"Bu, yalnızca tam çözümleme seçildiğinde etkindir." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Birleştirmek yerine daha yeni olanı kopyala (güvenli değil)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"İçeriğe bakma, yalnızca daha yeni olan dosyayı al.\n" +"(Bu seçeneği yalnızca ne yaptığınızı biliyorsanız kullanın!)\n" +"Yalnızca iki klasörü karşılaştırırken etkilidir." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Dosyaları yedekle (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Bir dosya eski bir dosyanın üzerine kaydedileceği zaman,\n" +"eski dosya silinmek yerine '.orig' uzantısıyla kaydedilir." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Bölgesel Ayarlar" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Her şey için aynı kodlamayı kullan:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Etkinleştirdiğinizde yalnızca ilkini değiştirerek tüm kodlamaları " +"değiştirmenize izin verir.\n" +" Farklı bireysel ayarlara ihtiyaç duyulursa bunu devre dışı bırakın." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Not: Yerel Kodlama \"%1\"" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "A için Dosya Kodlaması:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Etkinleştirilirse Unicode (UTF-16 veya UTF-8) kodlaması algılanır.\n" +" Dosya Unicode değilse seçilen kodlama geri dönüş olarak kullanılacaktır.\n" +" (Unicode algılama, dosyanın ilk baytlarına bağlıdır.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Unicode Kodlamasını Otomatik olarak Bul" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "B için Dosya Kodlaması:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "C için Dosya Kodlaması:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Birleştirme Çıktısı ve Kaydetme için Dosya Kodlaması:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Otomatik Seç" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Etkinleştirilirse girdi dosyalarındaki kodlama kullanılır.\n" +"Belirsiz durumlarda, bir iletişim penceresi kullanıcıdan kaydetmesi için " +"kodlamayı seçmesini ister." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Önişlemci Dosyaları için Dosya Kodlaması:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Sağdan Sola Yazılan Dil" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Bazı diller sağdan sola okunur.\n" +"Bu ayar görüntüleyiciyi ve düzenleyiciyi buna göre değiştirecektir." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Bütünleşme" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Bütünleşme Ayarları" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Göz ardı etmek için komut satırı seçenekleri:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"KDiff3 diğer araçlar tarafından kullanıldığında göz ardı edilmesi gereken " +"komut satırı seçeneklerinin listesi.\n" +"';' ile ayrılmışsa çeşitli değerler belirtilebilir\n" +"Bu, \"Bilinmeyen seçenek\" hatasını bastırır." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Esc düğmesiyle da çık" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Çıkmak için hızlı bir yöntem.\n" +"Escape düğmesini kullanmaya alışkın olanlar için." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "Bu, yalnızca bu bölümdekileri değil, tüm seçenekleri sıfırlar." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "ÖnişlemeKomutu: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Aşağıdaki seçtiğiniz seçenekler verileri değiştirebilir:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Büyük olasılıkla bu, bir birleştirme sırasında gerekli değildir.\n" +"Bu ayarları devre dışı bırakmak mı, ya da bu ayarları etkin duruma geçirmek " +"mi istiyorsunuz?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Seçenek Birleştirme için Güvenli değil" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Birleştirme Süresince Bu Seçenekleri Kullanın" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Güvenli Olmayan Seçenekleri Devre Dışı Bırak" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "A yükleniyor" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "A yükleniyor: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "B Yükleniyor" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "B yükleniyor: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Satır farkı: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "C Yükleniyor" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "C yükleniyor: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Satır farkı: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Satır farkı: A<-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Tüm girdi dosyaları aynı metni içerir, ancak ikili değer olarak eşit " +"değildir." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"%1 ve %2 dosyaları denk metinlere sahip ama ikili (binary) olarak denk " +"değil. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Bazı girdi dosyaları saf metin dosyaları gibi görünmüyor.\n" +"KDiff3 birleşiminin ikili veri için tasarlanmamış olduğunu unutmayınız.\n" +"Kendi sorumluluğunuzda sürdürün." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Bazı girdi karakterleri geçerli Unicode'a dönüştürülemez.\n" +"Yanlış kod çözücü kullanıyor olabilirsiniz. (Örneğin, UTF-8 olmayan dosyalar " +"için UTF-8).\n" +"Emin değilseniz sonucu kaydetmeyiniz. Kendi sorumluluğunuzu alarak " +"sürdürün.\n" +"Etkilenen girdi dosyaları %1 içerisindedir." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Çık" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Dosyalar açılıyor..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Seçim kesiliyor..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Seçim panoya kopyalanıyor..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Pano içeriği yerleştiriliyor..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Sözcük kaydırma (İptal, sözcük kaydırmayı devre dışı bırakır)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Yatay kaydırma çubuğu için en büyük genişlik hesaplanıyor" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Kaydet ve Devam Et" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Kaydetmeden Devam Et" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Arama tamamlandı." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Arama Tamamlandı" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Fark girişi pencerelerinde hiçbir şey seçilmedi." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Elle fark aralığı eklenirken hata oluştu" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&İptal" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Takas yap %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "%1 Kopyala->Çıktı" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Takas yap %1<->Çıktı" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Yapılandır..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Klasör Aç" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Çıktı Dosyasını Seç" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "tümü/tümdosyalar (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Aranacak metin:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "Büyük ve küçük harfe duyarlı" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "A'yı Ara" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "B'yi Ara" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "C'yi Ara" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Çıktıyı Ara" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Ara" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Düzenli İfade Deneyici" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Örnek otomatik birleştirme satırı:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Otomatik birleştirmeyi test etmek için dosyalarınızda kullanıldığı gibi bir " +"satırı kopyalayın." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Eşleştirme sonuçları:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Örnek geçmiş başlangıç satırı (önündeki yorumla birlikte):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Dosyalarınızda kullanıldığı gibi bir geçmiş başlangıç satırını,\n" +"önündeki yorum da dahil olmak üzere kopyalayın." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Geçmişi sıralama düğme sırası:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Örnek geçmiş girdi başlangıç satırı (önünde yorum olmadan):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Dosyalarınızda kullanıldığı gibi bir geçmiş girdi başlangıç satırını " +"kopyalayın,\n" +"ancak önündeki yorumu atlayın." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Sıralama düğmesi sonucu:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Eşleme başarılı oldu." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Eşleme başarısız oldu." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Düzenli ifadedeki açılış ve kapanış parantezleri eşleşmiyor." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Geçici dosyaya pano verisi yazma başarısız." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "Panodan" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1, normal bir dosya değil." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Geçici dosya: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Önişleme başarısız oldu. Şu komutu inceleyin:\n" +"\n" +" %1\n" +"\n" +"Önişleme komutu artık devre dışı bırakılacak." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "%1 dosyası işlemek için pek büyük. Atlanıyor." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Satır-eşleme-önişleme başarısız oldu. Şu komutu inceleyin:\n" +"\n" +" %1\n" +"\n" +"Satır-eşleme-önişleme komutu devre dışı bırakılacak." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Kapatma tırnağından sonra boşluk bekleniyor." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Eşleştirilmeyen tırnak." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Argüman içinde beklenmedik bir tırnak işareti." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Program belirtilmemiş." \ No newline at end of file diff --git a/po/ug/kdiff3.po b/po/ug/kdiff3.po new file mode 100644 index 0000000..1d1269a --- /dev/null +++ b/po/ug/kdiff3.po @@ -0,0 +1,3332 @@ +# Uyghur translation for kdiff3. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Sahran , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2013-09-08 07:04+0900\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur Computer Science Association \n" +"Language: ug\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sahran.ug@gmail.com, gheyret@gmail.com" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "ئەسلەك يېتىشمىدى" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Making folder: %1" +msgstr "مۇندەرىجە" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Removing folder: %1" +msgstr "مۇندەرىجە" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading folder: %1" +msgstr "مۇندەرىجە" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "not available" +msgid "File %1: Line not available" +msgstr "ئىشلەتكىلى بولمايدۇ" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "كودلاش:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "كودلاش:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "تامام" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open File" +msgstr "ھۆججەت" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "بىرىكتۈر" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "تامام." + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "خاتالىق" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "ئاتى" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "مەشغۇلات" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "ھالىتى" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "ئاق" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "ئاگاھلاندۇرۇش" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "قايتا تەكشۈر" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Saving file..." +msgid "Scanning folders..." +msgstr "ھۆججەت ساقلاۋاتىدۇ…" + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder A" +msgstr "مۇندەرىجە" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder B" +msgstr "مۇندەرىجە" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Directory" +msgid "Reading Folder C" +msgstr "مۇندەرىجە" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "تەييار." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "بىر تەرەپ قىلىۋاتىدۇ " + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "تىپى" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "چوڭلۇقى" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "ھۆججەت" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "ئىشلەتكىلى بولمايدۇ" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "ھېچقانداق قىلما" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "قايتا يۈكلە" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "پروگراممىنى ئاخىرلاشتۇرىدۇ" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "تاللانغان بۆلەكنى كېسىپ چاپلاش تاختىسىغا كۆچۈرىدۇ" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "تاللانغان بۆلەكنى چاپلاش تاختىسىغا كۆچۈرىدۇ" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "چاپلاش تاختىسىنىڭ مەزمۇنىنى نۆۋەتتىكى ئورۇنغا چاپلايدۇ" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "بىر ھەرپ-بەلگە ئىزدە" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "ھالەت بالداقنى ئىناۋەتلىك/ئىناۋەتسىز قىل" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "قۇر نومۇرىنى كۆرسەت" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "ھۆججەت ساقلاۋاتىدۇ…" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "يېڭى ھۆججەت ئاتىنى ئىشلىتىپ ساقلاۋاتىدۇ…" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "باشقا ئاتتا ساقلا…" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "بېسىۋاتىدۇ…" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "تاللاش" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "چېكىنىۋاتىدۇ…" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "ھالەت بالداقنى ئالماشتۇرۇش…" + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "ھۆججەت(&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "بىرىكتۈر" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "كۆزنەك(&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "ئاساسىي قورال بالداق" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, fuzzy, kde-format +#| msgid "Ignore" +msgid "Ignored." +msgstr "پەرۋا قىلما" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "توقۇنۇشلار" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "چىقار" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding for saving:" +msgstr "كودلاش:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "توقۇنۇش" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "ھۆججەت …" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "يۇنىكود" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "سەپلە" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "خەت نۇسخا" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "" + +#: optiondialog.cpp:595 +#, fuzzy, kde-format +#| msgid "Color" +msgctxt "Title for color settings page" +msgid "Color" +msgstr "رەڭ" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "ئالدى رەڭگى:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "تەگلىك رەڭگى:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "تەھرىرلىگۈچ" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "كۆزنەك(&W)" + +#: optiondialog.cpp:825 +#, fuzzy, kde-format +#| msgid "Autodetect" +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "ئۆزلۈكىدىن بايقا" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "سېلىشتۇرۇش(Diff)" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "بىرىكتۈر" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "ئۆزلۈكىدىن تاللا" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "يۈرۈشلەشتۈرۈش" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "يۈرۈشلەشتۈرۈش تەڭشىكى" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "پەرۋا قىلمايدىغان بۇيرۇق قۇرى تاللانمىلىرى:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading A: %1" +msgstr "كودلاش:" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading B: %1" +msgstr "كودلاش:" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Loading C: %1" +msgstr "كودلاش:" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "توختات" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "تاللانغاننى كېسىۋاتىدۇ…" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "تاللانغاننى چاپلاش تاختىسىغا كۆچۈرۈۋاتىدۇ" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "چاپلاش تاختىسى مەزمۇنلىرىنى قىستۇرۇۋاتىدۇ…" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "ئىزدەش تاماملاندى." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "ۋاز كەچ(&C)" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "سەپلە…" + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "File" +msgid "Open Folder" +msgstr "ھۆججەت" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "چوڭ كىچىك يېزىلىشنى پەرقلەندۈر" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "ئىزدە(&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "چاپلاش تاختىسىدىن" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "" \ No newline at end of file diff --git a/po/ug/kdiff3fileitemactionplugin.po b/po/ug/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..9137883 --- /dev/null +++ b/po/ug/kdiff3fileitemactionplugin.po @@ -0,0 +1,94 @@ +# Uyghur translation for kdiff3fileitemactionplugin. +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# Gheyret Kenji , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2013-09-08 07:04+0900\n" +"Last-Translator: Gheyret Kenji \n" +"Language-Team: Uyghur \n" +"Language: ug\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" + +#: kdiff3fileitemaction.cpp:81 +#, fuzzy, kde-format +#| msgid "KDiff3 ..." +msgid "KDiff3..." +msgstr "KDiff3 ..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "" + +#: kdiff3fileitemaction.cpp:131 +#, fuzzy, kde-format +#| msgid "Compare" +msgid "Compare with..." +msgstr "سېلىشتۇر" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "تىزىملىكنى تازىلا" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "سېلىشتۇر" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "" \ No newline at end of file diff --git a/po/uk/diff_ext.po b/po/uk/diff_ext.po new file mode 100644 index 0000000..df292a4 --- /dev/null +++ b/po/uk/diff_ext.po @@ -0,0 +1,135 @@ +# Translation of diff_ext.po to Ukrainian +# Copyright (C) 2018-2020 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Yuri Chornoivan , 2018, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: diff_ext\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2021-04-28 12:50+0300\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\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" +"X-Generator: Lokalize 20.12.0\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "Порівняти з %1" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "Об’єднати з %1" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "3-рівневе об’єднання за основою" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "Зберегти «%1» на потім" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "Порівняти з…" + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "Спорожнити список" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "Порівняти" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "3-рівневе порівняння" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "Про Diff-Ext…" + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "" +"Авторські права на Diff-Ext належать Sergey Zorin, 2003–2006. Усі права " +"захищено.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "" +"Це програмне забезпечення розповсюджується за умов дотримання ліцензії BSD-2-" +"Clause.\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Деякі розширення для KDiff3 виконано Joachim Eibl, 2006–2013.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "Портовано на Qt5/Kf5 Майклом Рівзом (Michael Reeves)\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Домашня сторінка Diff-Ext: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "Про Diff-Ext для KDiff3 (64-бітовий)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "Порівняти позначені файли" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "Порівняти «%1» з «%2»" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "Зберегти «%1» для подальших дій" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "Не вдалося запустити KDiff3. Будь ласка, повторно встановіть KDiff3." + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "Команда" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "Командний рядок" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "Diff-Ext для KDiff3" \ No newline at end of file diff --git a/po/uk/docs/kdiff3/index.docbook b/po/uk/docs/kdiff3/index.docbook new file mode 100644 index 0000000..c55cba0 --- /dev/null +++ b/po/uk/docs/kdiff3/index.docbook @@ -0,0 +1,3803 @@ + +KDiff3"> + + + + ASCII"> +]> + + + + + + +Підручник з &kdiff3; + + + Michael Reeves
reeves.87@gmail.com +
+
+ Joachim Eibl
joachim.eibl at gmx.de +
+
+ЮрійЧорноіван
yurchor@ukr.net
Переклад українською
+
+ + +2002-2007 +Joachim Eibl + + +2017-2019 +Michael Reeves + + + +&FDLNotice; + + + +22 лютого 2019 року +1.08.70 + + + +&kdiff3; — це інструмент для порівняння і об'єднання тек, який +порівнює і об'єднує два або три вхідних текстових файли або теки. +показує рядки і символи(!), що відрізняються, +надає можливість автоматичного об'єднання, +містить редактор для полегшення розв'язання конфліктів під час об'єднання, +забезпечує мережеву прозорість за допомогою KIO, +може підсвічувати або ховати зміни у пробілах або коментарях, +підтримує Unicode, UTF-8 та інші кодування текстів файлів, +може надсилати на друк різницю, +підтримує об'єднання за ключовими словами і журналом інструментів керування версіями. + +У цьому документі описано &kdiff3; версії 1.9. + + + + + +KDE +kdiff3 +різниця +злиття +CVS +потрійна різниця +порівняння +файли +теки +каталоги +керування версіями +трикомпонентне об'єднання +посимвольна різниця +синхронізація +kpart +kio +прозора робота з мережею +редактор +пробіл +коментарі + + +
+ +Вступ +Ще одна оболонка для Diff? +Існує декілька графічних інструментів для роботи з різницями (diff). Чому саме &kdiff3;? Давайте я, як автор, поясню, чому мною було написано цю програму. Я почав писати &kdiff3;, оскільки мені доводилося виконувати складні операції з об'єднання версій. Потреба у такому об'єднанні виникає, коли декілька осіб працюють над однаковими файлами у проєкті. Процес об'єднання можна до певної міри автоматизувати, якщо інструмент об'єднання може працювати не лише з новими модифікованими файлами (які називаються «гілками»), але і з початковим файлом (який називається «базою»). Інструмент об'єднання автоматично обере всі зміни, які було внесено лише у одній гілці. Якщо декілька розробників вносять зміни до одних і тих самих рядків, інструмент об'єднання має визначити конфлікт, який слід буде розв'язати вручну. У останньому випадку об'єднання ускладнюється тим, що один з розробників міг змінити багато рядків і виправити відступи у багатьох місцях. Інший розробник теж міг внести зміни у значну частину тексту того ж файла. Все це призводить до декількох конфліктів під час об'єднання. Інструмент, яким я користувався раніше, показував лише змінені рядки, але не показував, які саме зміни сталися у цих рядках. Він також не міг показувати відомості щодо зміни лише відступів. Об'єднання було схоже на нічний жах. Ось з цього я і розпочав свою роботу. Перша версія програми могла показувати різницю у символах рядків, а також різницю у пробілах. Пізніше було додано багато інших можливостей, які поширили перелік корисних можливостей програми. Наприклад, якщо вам потрібно швидко порівняти якісь фрагменти тексту, ви можете скопіювати їх до буфера обміну інформацією і вставити до відповідних частин вікон порівняння. Багато зусиль було покладено на реалізацію порівняння тек і можливість їх об'єднання. Втілення цієї можливості майже перетворило програму на повноцінний навігатор файлової системи. Сподіваємось &kdiff3; допоможе і вам. Нехай щастить! Joachim Eibl (2003) + + +Знімки вікон і можливості +На цьому знімку показано різницю між двома текстовими файлами (за допомогою ранньої версії &kdiff3;): + + + + +Повністю підтримується трикомпонентне об'єднання. Ця можливість буде корисною, якщо двоє розробників незалежно змінюють код. Початковий файл (база) буде використано для того, щоб допомогти &kdiff3; автоматично обирати правильні зміни. За допомогою вікна редактора об'єднання під вікнами різниці ви зможете розв'язувати конфлікти, — програма покаже вам результат. Ви навіть можете редагувати результат. На наступному знімку вікна показано три вхідних файли у процесі об'єднання: + + + + + +Крім того &kdiff3; допоможе вам порівнювати і об'єднувати цілі теки. На наступному знімку вікна показано &kdiff3; у процесі об'єднання тек: + + + + + + +Інші можливості +Інструмент перегляду різниці за рядками і за символами +За допомогою виділення кольорами &kdiff3; точно покаже вам відмінності у файлах. Якщо вам потрібно виконати значну кількість коду, ви оціните переваги, які надає ця можливість. + + + + + +Визначення відмінностей у пробілах з першого погляду +Різниця у пробілах і символах табуляції стає видимою. Якщо рядки відрізняються лише наявність (чи відсутністю) пробілів, це можна визначити з першого погляду на стовпчик резюме, розташований ліворуч. (Вам більше не потрібно буде перейматися випадками, коли розробник змінює лише відступи.) + + + + + +Потрійна різниця +За її допомогою можна аналізувати одразу три файли і бачити різницю між ними. Ліве/середнє/праве вікна мають назви A/B/C і відповідні кольори: синій/зелений/малиновий. Якщо певний рядок у одному з файлів збігається з базою, але відрізняється від бази у іншому файлі, колір відповідного рядка покаже вам, у якому саме файлі було внесено зміни. Червоний колір позначатиме рядки, які було змінено у обох файлах. + + + + + +Зручне об'єднання двох або трьох вхідних файлів +&kdiff3; можна скористатися для об'єднання двох або трьох вхідних файлів, таке об'єднання буде за можливості виконано у автоматичному режимі. Результат буде показано у вікні, у якому ви зможете редагувати текст і розв'язувати більшість конфліктів одним клацанням кнопкою миші: вам достатньо буде натиснути одну з кнопок ... у вікнах A/B/C, на панелі кнопок, щоб вибрати джерело об'єднання, яке буде використано. Ви також можете вибрати одразу декілька джерел. Оскільки вікно результату є вікном редактора, у ньому можна розв'язати навіть конфлікти, які потребують подальшого виправлення, — вам не потрібно буде використовувати сторонні інструменти. + + +І... + + Швидка навігація за допомогою кнопок. + Наведення вказівника миші на стовпчик резюме з наступним клацанням лівою кнопкою миші призведе до синхронізації всіх вікон для показу єдиної позиції. + Вибір і копіювання з будь-якого вікна і вставка у вікно об'єднання результатів. + Стовпчик огляду, у якому буде показано розташування змін і конфліктів. + Можливість налаштування кольорів відповідно до ваших уподобань. + Можливість налаштування ширини табуляції. + Пункт для вставки пробілів замість символів табуляції. + Відкриття файлів у зручному режимі за допомогою діалогового вікна або визначення файлів з командного рядка. + Виконати пошук рядків у всіх текстових вікнах можна за допомогою пунктів меню ЗміниПошук (&Ctrl;F) і ЗміниЗнайти далі (F3). + Показ номерів рядків для кожного рядка. + Вставка вмісту буфера обміну інформацією або перетягування тексту до вікна вводу різниці. + Прозорість у роботі з мережею через використання KIO. + Може бути використано для перегляду різниці у &kdevelop; 3. + Розбиття на підрядки довгих рядків. + Підтримка Unicode, UTF-8 та інших кодеків. + Підтримка для мов з напрямком письма справа ліворуч. + ... + + + + + +Порівняння і об'єднання файлів + +Параметри командного рядка + +Порівняння 2 файлів: +kdiff3 файл1 файл2 + + + +Об'єднання 2 файлів: +kdiff3 файл1 файл2 -m + kdiff3 файл1 файл2 -o файл_виводу + + + +Порівняння 3 файлів: +kdiff3 файл1 файл2 файл3 + + + +Об'єднання 3 файлів: +kdiff3 файл1 файл2 файл3 -m + kdiff3 файл1 файл2 файл3 -o файл_виводу + +Зауважте, що файл1 буде вважатися базою щодо файл2 і файл3. + + +Особливий випадок: файли з однаковими назвами +Якщо всі файли мають однакову назву, але розташовані у різних теках, ви можете зменшити об'єм інформації для введення, якщо вкажете назву файла лише для першого з файлів. Приклад: +kdiff3 тека1/назва_файла тека2 тека3 + + + +Рядок команди для виконання порівняння або об'єднання тек: +Дуже подібне до попереднього розділу, але тепер слід вказувати теки. +kdiff3 тека1 тека2 + kdiff3 тека1 тека2 -o тека_призначення + kdiff3 тека1 тека2 тека3 + kdiff3 тека1 тека2 тека3 -o тека_призначення + +Докладніші відомості щодо порівняння тек або їх об'єднання можна прочитати у цьому розділі. + + +Інші параметри командного рядка +Щоб ознайомитися з переліком інших можливих параметрів командного рядка, виконайте команду +kdiff3 --help + +Приклад виводу команди: +Параметри: + -m, --merge Об'єднати вхідні елементи. + -b, --base файл Явно вказати базовий файл. Призначено для сумісності з деякими інструментами. + -o, --output файл Файл результату. Використовується разом -m. Наприклад: -o newfile.txt + --out файл Знову ж таки, файл результату. (Призначено для сумісності з деякими інструментами.) + --noauto Ігнорувати --auto і завжди показувати графічний інтерфейс. + --auto Не показувати графічний інтерфейс, якщо всі конфлікти можна розв'язати автоматично. (Потрібен параметр -o файл) + --L1 псевдонім1 Візуальний замінник назви вхідного файла 1 (бази). + --L2 псевдонім2 Візуальний замінник назви файла 2. + --L3 псевдонім3 Візуальний замінник назви файла 3. + -L, --fname псевдонім Альтернативний візуальний замінник назви файла. Вкажіть його один раз для кожного вводу. + --cs рядок Перевизначити параметр налаштування. Використовується один раз для кожного з параметрів. Приклад: --cs "AutoAdvance=1" + --confighelp Показати список параметрів налаштування і поточних значень. + --config файл Використати інший файл налаштування. + +За допомогою параметра ви можете вказати значення параметра налаштування, які інакше можна налаштувати лише за допомогою діалогових вікон налаштування. Але будьте уважні: якщо потім &kdiff3;, буде перервано, змінені значення буде збережено разом з іншими параметрами. За допомогою параметра ви зможете переглянути назви всіх можливих параметрів та їх поточні значення. +За допомогою параметра ви можете вказати інший файл налаштування. Якщо ви часто користуєтеся &kdiff3;, за допомогою різних наборів налаштувань ви легко перемикатися між різними наборами налаштувань. + +Параметри командного рядка, які буде проігноровано +Багато користувачів бажають використовувати &kdiff3; з деякими системами керування версіями. Але, якщо ця система керування версіями викликає &kdiff3; за допомогою параметрів командного рядка, які не &kdiff3; не розуміє, &kdiff3; завершить роботу повідомленням про помилку. За допомогою параметрів інтеграції ви можете вказати параметри командного рядка, які &kdiff3; має ігнорувати. Цей параметр буде показано у довідці з використання, як у цьому прикладі: +--щось_там Ігнорується. (Використовується користувачем.) + + + Ігнорувати параметри командного рядка:Список параметрів, відокремлених символом крапки з комою, «;». Якщо один з цих параметрів з'явиться у командному рядку, &kdiff3; проігнорує його і виконає роботу без повідомлення про помилку. (Типовим є список u;query;html;abort). + +Якщо цього не буде достатньо, рекомендуємо вам написати скрипт оболонки, який виконає зміну параметрів. + + + + +Діалогове вікно відкриття +Оскільки має бути передбачено можливість вибору вхідних файлів, у програмі є особливе діалогове вікно відкриття файлів: + + + +Ви можете змінювати назви файлів вручну безпосередньо у діалоговому вікні відкриття файлів, там же можна вибрати файл за допомогою навігатора файлової системи (Файл...) або вибрати нещодавно відкриті файли за допомогою спадних списків. Якщо ви повторно відкриєте це діалогове вікно, поточні назви залишатимуться на своїх місцях. Третій вхідний файл є необов'язковим. Якщо поле «C» залишатиметься порожнім, буде виконано аналіз відмінностей лише між двома файлами. Крім того, ви може вибрати теку за допомогою кнопки Тека.... Якщо буде вказано теку для поля A, програма перейде у режим порівняння/об'єднання тек. Якщо у полі A буде вказано файл, у полях B, C або виводі буде вказано теку, &kdiff3; використовуватиме назву файла з поля A для пошуку відповідного файла у вказаних теках. Якщо буде позначено пункт Об'єднати, ви зможете змінити значення у рядку Вивід. Але вказувати назву файла виводу не обов'язково. Ви можете вказати її безпосередньо під час збереження. За допомогою натискання кнопки Налаштувати... можна відкрити діалогове вікно налаштування параметрів аналізу файлів. + + +Вставка і визначення вхідних файлів скиданням +Іноді виникає потреба у порівнянні фрагментів тексту, які не зберігаються у окремих файлах. У &kdiff3; передбачено можливість вставки тексту з буфера обміну даними до вікна вхідних даних порівняння, яке перебуває у фокусі. Після вставки буде негайно виконано аналіз відмінностей. У разі подібного порівняння діалоговому вікні відкриття файлів вам не потрібно вказувати файлів: ви можете просто закрити це вікно за допомогою кнопки Скасувати. Крім того, ви можете скористатися перетягуванням зі скиданням: перетягніть файл з менеджера файлів або виділіть текст у редакторі, перетягніть його і скиньте у вікно вхідних даних для порівняння. Навіщо це потрібно? Іноді у файлі містяться дві подібні функції, але перевірка їх подібності може бути досить марудною: слід спочатку створити два файли, потім завантажити їх для порівняння. У &kdiff3; достатньо лише скопіювати, вставити і порівняти відповідні фрагменти файлів. У поточній версії &kdiff3; не передбачено можливості перетягування фрагментів тексту з програми. Підтримується лише скидання до вікна вхідних даних. У деяких редакторах дія з перетягування зі скиданням до іншої програми призводить до вирізання (а не копіювання) виділеного тексту. У такому випадку можлива втрата початкових даних. + + +Порівняння файлів і аналіз даних у вікнах виводу + + + +Інформаційний рядокУ верхній частині кожного з вікон ви побачите «інформаційний рядок». У інформаційних рядках вікон вхідних даних містяться літери A, B та C, придатне для редагування поле назви файла, кнопка навігації і номер першого з видимих рядків у вікні. (Зауважте, що вікно C не є обов'язковим.) Кожен з інформаційних рядків має власний колір. Після вибору іншого файла за допомогою інструменту навігації або завершення редагування назви файла вам слід натиснути клавішу &Enter;. Програма завантажить новий файл і порівняє його з вже завантаженими файлами. ФарбуванняТрьом вікнам вхідних даних буде призначено літери A, B і C. Літері A відповідатиме синій колір, B — зелений, а C — малиновий. (Це типові кольори, але ви можете їх змінити за допомогою меню «Параметри».) За виявлення відмінності програма змінюватиме колір вмісту вікна вхідних даних. Якщо дані відрізнятимуться у обох вікнах вхідних даних, їх, типово, буде позначено червоним кольором (Колір конфліктів у вікні Параметри). Подібна схема кольорів особливо корисна у випадку порівняння трьох файлів вхідних даних, як це можна буде бачити з наступного розділу (Об'єднання). Стовпчик резюмеЛіворуч від тексту буде показано «стовпчик резюме». Якщо у рядку буде знайдено відмінності, його буде показано відповідним кольором. Якщо відмінності полягають лише у розташуванні пробілів, у стовпчик резюме буде розфарбовано як шахівницю. Якщо ви працюєте з файлами вихідних кодів мовами програмування, де розташування пробілів не є важливим, ви зможете з першого погляду визначити, чи було змінено щось суттєве. (У C/C++ пробіли мають значення лише у рядках, коментарях, у рядках, призначених для інструменту попередньої обробки, і у певних досить екзотичних випадках.) Вертикальну лінію, що відокремлює стовпчик резюме від тексту буде розірвано, якщо у вхідному файлі немає відповідних рядків. Якщо увімкнено режим перенесення рядків програма показуватиме штриховану лінію у місцях перенесення рядків. Стовпчик оглядуУ правій частині області вікна, ліворуч від вертикальної смужки гортання, буде показано стовпчик «огляду». У цьому стовпчику буде показано резюме вхідних даних A. Ви зможете одразу побачити всі відмінності і конфлікти. Якщо використовується лише дві області вхідних даних, всі відмінності буде показано червоним кольором, оскільки відмінності у такому випадку є конфліктами. Чорною прямокутною рамкою буде показано видиму частину вхідних даних. Якщо файли, які порівнюються є достатньо об'ємними, кількість рядків у файлі може перевищити кількість пікселів у стовпчику огляду, отже декілька рядків відповідатимуть одній лінії у стовпчику огляду. У такому випадку показу конфліктів надаватиметься перевага перед показом простих відмінностей, які, у свою чергу, матимуть пріоритет перед відсутністю відмінностей. Отже буде показано всі відмінності і конфлікти. Наведення вказівника на певне місце у стовпчику огляду з наступним клацанням лівою кнопкою миші призведе до показу відповідного фрагмента файла у області показу. Вирівнювання рядків вручнуІноді алгоритмові обробки тексту, використаному у програмі, не вдається розташувати належні рядки один навпроти одного. У вас також може виникнути бажання порівняти фрагмент тексту з фрагментом тексту, розташованим у зовсім іншому місці файла, з яким виконується порівняння. У таких випадках ви можете вказати &kdiff3; рядки для вирівнювання вручну. Позначте текст, вирівнювання якого ви бажаєте покращити за допомогою вказівника миші у першому перегляді даних так, як ви це робите, коли бажаєте скопіювати фрагмент тексту, а потім скористайтеся пунктом Додати вирівнювання різниці вручну з меню Diffview (клавіатурне скорочення &Ctrl;Y). Поряд з вибраним фрагментом тексту у стовпчику огляду з'явиться жовтогарячий прямокутник. Повторіть процедуру для другої і (якщо така є) третьої області даних. &kdiff3; негайно переобчислюватиме відмінності після виконання вами дій і вирівнюватиме вибрані рядки. Звичайно ж, деякі з рядків, які збігалися за попереднього порівняння, можуть стати відмінними за нового порівняння. У поточній версії програми ви не можете втручатися вручну у процес об'єднання. Об'єднання і розділення розділів відмінностей вручнуУ певних випадках &kdiff3; визначить забагато або замало розділів відмінностей для об'єднання. У такому випадку ви можете об'єднати або поділити існуючі розділи. Додайте нові розділи: спочатку виберіть текст у рядках, які відповідають один одному у кожній з областей вхідних даних (так як ви це робите під час копіювання даних до буфера). Потім скористайтеся пунктом Розділити різницю на вибраному з меню Об'єднання. Розрізи буде додано над першим рядком і під останнім рядком вибраного тексту. Якщо ви бажаєте додати лише один розділ, виберіть текст, що починається з іншого розрізу розділів. Щоб об'єднати розділи у всіх областях вхідних даних, оберіть певну частину рядків розділів, які слід з'єднати. (Ви можете з'єднувати декілька розділів за один крок.) Після цього оберіть пункт Об'єднати вибрані різниці з меню Об'єднання. + + + +Об'єднання і вікно редактора виводу об'єднання + + + +У області редактора даних об'єднання (розташованому під областями вхідних даних) є інформаційний рядок з заголовком Вивід:, назвою файла і рядком [Змінено], який з'явиться, якщо вами було внесено якісь зміни. Зазвичай, у цьому рядку буде міститися певні дані, виведені інструментами автоматичного об'єднання, але часто у цій області з'являтимуться повідомлення про конфлікти. !!! Ви не зможете зберегти дані, аж доки всі конфлікти не буде розв'язано !!! (Скористайтеся кнопками Перейти до попер./наст. нерозв'язаного конфлікту, щоб перевести перегляд до конфліктів, які ще не розв'язано.) Якщо ви працюєте з двома файлами вхідних даних, кожна з відмінностей є конфліктом, який слід розв'язати вручну. Якщо вхідних файлів буде три, перший з них вважатиметься базовим, а другий і третій — такими, що містять зміни. Якщо певний з рядків змінено лише у файлі B або C, але не у двох цих файлах, програма автоматично обере змінений варіант. Лише у випадках, коли і у B, і у C одночасно змінено однакові рядки, програма вважатиме ситуацію конфліктною і пропонуватиме розв'язати конфлікт вручну. Якщо зміни, внесені у B і C є тотожними, буде вибрано варіант C. Стовпчик резюмеУ області редактора виводу об'єднання також передбачено стовпчик резюме, розташований ліворуч. У цьому стовпчику буде показано літеру варіанта, з якого було взято рядок, або нічого, якщо всі у всіх трьох джерелах рядок є однаковим. Конфліктні рядки буде позначено символом знака питання («?»), а у самому рядку буде показано червоний запис «Конфлікт об'єднання». Оскільки порядкове розв'язання конфліктів є справою досить марудною, рядки буде впорядковано за групами з однаковими відмінностями і характеристиками конфліктів. Конфлікти, які полягають лише у розташуванні пробілів, буде відокремлено від інших конфліктів, щоб полегшити об'єднання файлів, де зміни у відступах було внесено до багатьох рядків. Визначення поточної групи і синхронізація позиції об'єднання і перегляду відмінностейПісля наведення вказівника миші у стовпчику резюме будь-якої з областей на певну позицію і клацання лівою кнопкою миші програма відкриє у всіх вікнах фрагмент тексту на початку групи, до якої належить позначений клацанням рядок. Після цього група стане «поточною групою». Цю групу буде позначено Кольором тла поточного діапазону різниці (можна змінити за допомогою пункту Інтеграція діалогового вікна параметрів програми), а зліва від тексту буде показано чорну рамку. Вибір вхідних даних з A, B або C для розв'язання поточного конфлікту і редагуванняНа панелі з кнопками, розташованій під смужкою меню, містяться три кнопки вибору вхідних даних, які позначено літерами A, B і C. Натисніть кнопку вибору вхідних даних, щоб вставити рядки (або вилучити рядки, якщо ці рядки вже було раніше вставлено) з відповідного джерела. Щоб позначити рядки з декількох вхідних джерел натисніть відповідні кнопки у потрібному порядку. Наприклад, якщо ви бажаєте, щоб рядкам з B було надано перевагу перед рядками з A у вихідних даних, спочатку натисніть B, а вже потім A. Якщо ви використовуєте автоматичний перехід (позначено пункт «Автоматично перейти до наступного конфлікту за визначення джерела»), вам слід вимкнути його перед вибором рядків з декількох джерел або редагуванням рядків після вибору. Якщо ви цього не зробите, &kdiff3; перейде до наступного конфлікту після вибору першого джерела даних. Часто корисно напряму змінити вивід об'єднання. У перегляді резюме буде показано літеру «m» навпроти всіх рядків, які було змінено вручну. Якщо, наприклад, відмінності вирівняно таким чином, що простого вибору потрібного джерела буде недостатньо, ви можете позначити потрібний текст і скористатися звичайною дією з копіювання з вставленням, щоб розмістити потрібний фрагмент тексту у області виводу об'єднання. Іноді, якщо певний рядок було вилучено або у результаті автоматично об'єднання, або редагування, і у групі більше не залишиться жодного рядка, програма показуватиме у відповідному рядку текст <Немає рядка джерела>. Цей рядок є лише заповнювачем для групи на випадок, якщо ви зміните свою думку і захочете знову позначити якийсь текст. Відповідний текст заповнювача не буде показано у збереженому файлі, його не буде включено до жодного з фрагментів, які ви копіюватимете і вставлятимете. Якщо ви спробуєте скопіювати і вставити певний текст, що містить такий рядок, у буфері обміну даними буде лише рядок «<Конфлікт об'єднання>». Але будьте обережними, коли виконуєте подібне копіювання. Вибір даних A, B або C для всіх конфліктівЗвичайне об'єднання починатиметься з автоматичного розв'язання простих конфліктів. Але у меню Об'єднання передбачено і деякі інші пункти для виконання типових завдань. Якщо ви бажаєте вибрати певне джерело даних для розв'язання більшості конфліктів, ви можете вказати джерело A, B або C всюди або лише для ще нерозв'язаних конфліктів або для нерозв'язаних конфліктів, що полягають у різній кількості пробілів. Якщо ви бажаєте вирішувати кожен з конфліктів окремо, ви можете позначити пункт Застосувати різницю до конфліктів. Якщо ви бажаєте повернутися до автоматичного вибору &kdiff3;, скористайтеся пунктом Автоматично розв'язувати прості конфлікти. Після вибору цього пункту &kdiff3; виконає об'єднання повторно. Якщо використання певного пункту меню змінюватиме результати попереднього редагування, &kdiff3; запитає у вас підтвердження, перш ніж виконувати відповідну дію. Зауваження: якщо ви обираєте одне з джерел для розв'язання конфліктах пробілів і позначили один з пунктів «Ігнорувати числа» або «Ігнорувати коментарі C/C++» на сторінці Diff діалогового вікна параметрів програми, зміни у числах або коментарях вважатимуться змінами у пробілах. Автоматичне об'єднання за ключовими словами системи керування версіями і журналуЗначна кількість систем керування версіями підтримує особливі ключові слова (наприклад "$Date$", "$Header$", "$Author$", "$Log$" тощо). Під час синхронізації системи керування версіями змінюють ці рядки. Наприклад, "$Date$" перетвориться на "$Date: 2009/03/22 18:45:01 $". Оскільки цей рядок буде різним у кожній з версій файла, під час спроби об'єднання потрібне буде втручання користувача. У &kdiff3; передбачено автоматичне об'єднання таких елементів. Для простих рядків, які відповідатимуть значенню параметра «Формальний вираз автооб'єднання» у всіх файлах вхідних даних, &kdiff3; обере рядок з B або, у разі доступності, з C. Крім того, потрібно, щоб відповідні рядки стояли поруч у області порівняння, а попередній рядок не містив конфліктів. Подібне автоматичне об'єднання можна виконати або негайно після запуску об'єднання (позначенням пункту Запустити автооб'єднання за формальними виразом на початку об'єднання»), або пізніше, за допомогою пункту меню Об'єднання Запустити автооб'єднання за формальними виразом на початку об'єднання. Програмою підтримується і автоматичне об'єднання за журналом системи керування версіями. Автоматичне об'єднання за журналом можна виконати негайно після запуску об'єднання, якщо позначити пункт Об'єднувати за журналом керування версіями на початку об'єднання або пізніше за допомогою пункт меню Об'єднання Автоматично розв'язувати конфлікти у журналі. Зазвичай, журнал системи керування версіями починається з рядка, що містить ключове слово «$Log$». Початок журналу має відповідати значенню параметра Початковий формальний вираз журналу. &kdiff3; визначає, які з рядків належать до журналу, аналізуючи початкові символи, які передують ключовому слову «$Log$». Якщо такі самі «початкові коментарі» зустрічаються і у наступних рядках, ці рядки також буде включено до журналу. Під час кожної транзакції система керування версіями записує унікальний рядок з відомостями щодо версії, дати і часу транзакції та коментарів користувача. З цих елементів утворюється окремий запис журналу. Цей розділ журналу збільшується під час кожної транзакції, найсвіжіші записи з'являтимуться у верхній частині журналу (після початкового рядка журналу). Якщо під час розробки двоє або декілька розробників вивантажують свої версії одного файл, у журналі об'єднання міститимуться декілька записів, які вважатимуться конфліктними під час об'єднання гілок. Оскільки подібні об'єднання можуть бути досить марудною справою, у &kdiff3; передбачено підтримку двох можливих стратегій: простої вставки інформації від обох розробників у верхню частину журналу або впорядкування інформації журналу за визначеним користувачем ключем. Налаштувати спосіб одночасної вставки всіх записів простіше. Слід просто вказати &kdiff3; метод визначення рядків, які належатимуть до одного запису журналу. У більшості систем керування версіями після кожного запису журналу додається порожній рядок. Якщо система керування версіями не додає порожніх рядків у інших випадках, подібні рядки можуть слугувати достатнім критерієм для &kdiff3;. Достатньо вказати порожнє значення для параметра Початковий формальний вираз елемента історії на сторінці Об'єднання діалогового вікна параметрів програми. Якщо використання критерію порожнього рядка є недостатнім, ви можете вказати формальний вираз, за яким можна визначити початок запису журналу. Зауважте, що &kdiff3; вилучатиме записи журналу, що повторюватимуться. Якщо запис журналу зустрічається декілька разів у журналі певного вхідного файла, у виведених даних залишиться лише один запис. Якщо ви бажаєте впорядкувати журнал, вам слід вказати спосіб побудови ключа впорядкування. Скористайтеся круглими дужками у полі параметра Початковий формальний вираз елемента історії на сторінці Об'єднання діалогового вікна параметрів програми для групування частин формального виразу, який пізніше буде використано як ключ впорядкування. Після цього вкажіть у полі Порядок сортування початків записів за ключем відокремлений комами список чисел, які відповідають позиції групи у формальному виразі. Оскільки зробити все правильно від початку не так уже і просто, ви можете випробувати та покращити формальний вираз і створення ключів у відповідному діалоговому вікні за допомогою натискання кнопки Перевірити ваші формальні вирази. Приклад: припустімо журнал виглядає так: +/************************************************************************** +** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ +** +** \main\integration_branch_12 2 Apr 2001 10:45:41 tom +** Merged branch simon_branch_15. +** +** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry +** Improved the speed for subroutine convertToMesh(). +** Fixed crash. +**************************************************************************/ + +Початковому рядку журналу відповідатиме формальний вираз ".*\$Log.*\$.*". Після цього рядка йдуть записи журналу. Рядок з записом ключового слова «$Log$» починається з двох символів «*», за якими слідує пробіл. &kdiff3; вважає перший непробільний рядок «початковим коментарем» і припускає, що журнал завершується першим же рядком без такого коментаря. У нашому прикладі останній з рядків завершується фрагментом тексту, який також починається з двох символів «*», але замість символу пробілу за ними слідують додаткові символи «*». Отже цей рядок є кінцевим рядком журналу. Якщо впорядкування журналу не потрібне, формальний вираз початку запису журналу може виглядати так (рядок було розбито на два через обмеження на довжину): +\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* + +Докладніше про формальні вирази можна дізнатися з документації щодо формальних виразів. Зауважте, що «\s» (з маленьким «s») відповідає будь-якій кількості пробілів, а «\S» (з великим «S») відповідає будь-якій послідовності символів, що не містить пробілів. У нашому прикладі початок запису журналу містить спочатку інформацію про версію з формальним виразом «\\main\\\S+», дату, що складається з дня «[0-9]+», місяця «(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)» і року «[0-9][0-9][0-9][0-9]», час у форматі «[0-9][0-9]:[0-9][0-9]:[0-9][0-9]» і нарешті назву облікового запису розробника «.*». Зауважте, що символи «початкового коментаря» (у нашому прикладі «**») буде попередньо вилучено &kdiff3; ще перед порівнянням, отже формальний вираз починається з пошуку жодного або іншої кількості символів пробілу «\s*». Оскільки символи коментаря можуть бути різними у різних файлах (наприклад, у C/C++ використовуються символи коментування, відмінні від тих, які використовуються у скриптах Perl), &kdiff3; сам визначає початкові символи коментаря, отже вам не потрібно вказувати їх у формальному виразі. Якщо вам потрібне впорядкування журналу, програмі доведеться обчислити ключ впорядкування. Для цього слід згрупувати відповідні частини формального виразу у дужках (додаткові дужки можна і не прибирати, якщо ви захочете вимкнути впорядкування журналу): +\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) + ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) + +Тепер у дужках містяться: 1. інформація про версію, 2. день, 3. місяць, 4. рік, 5. час, 6. назва облікового запису. Але якщо нам потрібне впорядкування за часом і датою, доведеться побудувати ключ впорядкування за допомогою елементів у іншій послідовності: спочатку рік, далі місяць, день, час, інформація про версію і назва облікового запису. Отже, порядок рядків має бути таким: «4,3,2,5,1,6». Оскільки назви місяців не є гарним критерієм впорядкування (наприклад, «Apr» (квітень) буде першим), &kdiff3; проаналізує послідовність, у якій було вказано назви, а потім використає замість назв відповідні номери («Apr»->«04»). Якщо буде знайдено якесь число, програма перетворить його на 4-цифрове значення за допомогою додавання початкових нулів, а потім застосує впорядкування. Нарешті, остаточний ключ впорядкування для початкового рядка першого запису журналу виглядатиме так: +2001 04 0002 10:45:41 integration_branch_12 tom + +Докладніші відомості можна отримати з розділу Параметри об'єднання. + + + +Навігація і редагування +Більшість завдань з навігації текстом можна виконати за допомогою смужок гортання і миші, але пересування області видимого тексту можна здійснювати і за допомогою клавіш. Якщо ви наведете вказівник на будь-яку з областей програми, клацнете лівою кнопкою миші, ви зможете скористатися клавішами пересування курсора (&Left;, &Right;, &Up;, &Down;, &PgUp;, &PgDn;, &Home;, &End;, &Ctrl;&Home; та &Ctrl;&End;) так, як ви це робите у інших програмах. Крім того, ви можете скористатися клавішами для пересування області видимості за допомогою стовпчика огляду, розташованого поряд зі смужкою гортання: достатньо навести на нього вказівник і один раз клацнути лівою кнопкою миші. Крім того, для гортання тексту вгору і вниз ви можете скористатися прокручуванням коліщатка миші. Крім того, ви можете користуватися іншими клавішами у вікні редактора виводу об'єднання. Перемикатися між режимами вставки і перезапису можна за допомогою клавіші &Ins;. Типовим є режим вставки. Наведення вказівника миші на певну позицію у будь-якому зі стовпчиків резюме з наступним клацанням лівою кнопкою миші синхронізує всі вікна на показі початку однакової групи рядків (як це описано у розділі "Визначення поточної групи і синхронізація позиції об'єднання і перегляду відмінностей"). Крім того, на панелі навігації міститься дев'ять навігаційних кнопок, за допомогою натискання яких ви можете переводити область перегляду до поточної/першої/останньої відмінності, наступної/попередньої відмінності (&Ctrl;&Down;/&Ctrl;&Up;), до наступного/попереднього конфлікту (&Ctrl;&PgDn;/&Ctrl;&PgUp;) або наступного/попереднього нерозв'язаного конфлікту. Зауважте, що для &kdiff3; «конфлікт», який не було автоматично розв'язано на початку об'єднання, залишатиметься «конфліктом», навіть якщо його буде розв'язано. Отже немає потреби у виокремленні випадку «нерозв'язаного конфлікту». +Автоматичний перехід +Крім того, передбачено кнопку Автоматично перейти до наступного конфлікту за визначення джерела (автоматичне продовження). Якщо ви позначите відповідний пункт, за вибору одного з джерел &kdiff3; переходитиме до наступного нерозв'язаного конфлікту у автоматичному режимі. Подібна поведінка буде корисною, якщо ви маєте намір під час розв'язання завжди обирати лише одне з джерел даних. Якщо вам потрібні два джерела, або результат доведеться редагувати, ймовірно, вам слід зняти позначку з відповідного пункту. Перш ніж перейти до наступного нерозв'язаного конфлікту, &kdiff3; деякий час показуватиме вам результат вашого вибору. Тривалість затримки можна визначити у параметрах Об'єднання: ви можете вказати значення Автоматичне продовження за (у мс) у діапазоні від 0 до 2000. Підказка: втомилися клацати? — зменшіть значення автоматичного продовження і скористайтеся клавіатурними скороченнями &Ctrl;1/2/3 для вибору джерела A/B/C, якщо конфліктів дуже багато. + + + +Вибір, копіювання і вставка +Курсор у вікнах вхідних даних програми показано не буде, отже вибір слід робити за допомогою миші: натисніть ліву кнопку миші, коли вказівник знаходитиметься на початку області вибору, утримуючи кнопку натиснутою, пересуньте вказівник у кінцеву точку області вибору, після чого відпустіть кнопку. Вибрати слово можна наведенням вказівника миші на це слово з наступним подвійним клацанням. Вибір у вікні редактора виводу об'єднання можна здійснювати за допомогою клавіатури: утримуйте натиснутою клавішу &Shift; і пересувайте межу області вибору за допомогою навігаційних клавіш. Якщо вибраний фрагмент не може бути показаний у видимому діапазоні тексту, ви можете пересунути вказівник миші за межі вікна програми, що спричинить гортання тексту програмою &kdiff3; у відповідному напрямку. Для вибору дуже великих фрагментів тексту ви можете також скористатися натисканням клавіш навігації з одночасним утримуванням натиснутою кнопки миші. Наприклад, можна скористатися клавішами Page Up і Page Down, щоб швидко перейти до певної позиції. Коли вибір досягне потрібної позиції, відпустіть кнопку миші. Щоб позначити увесь вміст поточного вікна, скористайтеся пунктом меню Зміни Вибрати все (&Ctrl;A). Щоб скопіювати вибране до буфера обміну даними, вам слід натиснути кнопку Копіювати (або скористатися комбінацією клавіш &Ctrl;C чи &Ctrl;&Ins;). Крім цього, передбачено пункт «Автоматичне копіювання позначеного». Якщо його буде позначено, всі вибрані вами фрагменти буде негайно скопійовано, вам не доведеться явно користуватися дією з копіювання. Але користуйтеся цією можливістю обережно, оскільки за її використання ви можете випадково пошкодити вміст буфера обміну даними. Дія Вирізати (&Ctrl;X або &Shift;∇) призводить до копіювання фрагмента тексту до буфера обміну даним з наступним його вилученням з тексту. Команда Вставити (клавіатурні скорочення &Ctrl;V або &Shift;&Ins;) вставляє текст з буфера обміну даними у позицію курсора або замість вибраного тексту. Якщо ви виконаєте команду вставлення у будь-якому з вікон вхідних даних, у цьому вікні буде показано вміст буфера обміну даними, а порівняння буде негайно перезапущено. Ця дія буде корисною, якщо вам потрібно нашвидкуруч порівняти взятий звідкись фрагмент тексту з іншим фрагментом без створення файлів з текстом фрагментів. + + +Збереження +Збереження стане можливим, лише якщо буде розв'язано всі конфлікти. Якщо файл вже існує і ви позначите пункт Файли резерву на сторінці Тека діалогового вікна параметрів програми, наявний файл буде перейменовано з додаванням суфікса .orig, якщо ж файл з таким суфіксом вже існуватиме, його буде перезаписано. Якщо на час завершення роботи програми або початку іншого порівняння відмінностей дані ще не буде збережено, &kdiff3; запитає вас про те, яку дію ви бажаєте виконати: зберегти файл, скасувати завершення редагування або продовжити без збереження файла. (Сама програма &kdiff3; не перехоплює ніяких сигналів. Отже, якщо ви скористаєтеся командою на зразок «kill» щодо &kdiff3;, ваші дані буде втрачено.) Програма використовуватиме символи завершення рядків, які характерні для системи, у які запущено програму. У &UNIX; всі рядки завершуються символом переходу на наступний рядок «\n», у системах заснованих на архітектурі Win32 всі рядки завершуються сукупністю символу повернення каретки і переходу на наступний рядок «\r\n». &kdiff3; не зберігає символи завершення рядків, використані у файлах з вхідними даними, а це означає, що не слід використовувати &kdiff3; для двійкових даних. + + +Пошук рядків +Ви можете виконати пошук текстового рядка у будь-якому з вікон &kdiff3;. За допомогою пункту меню ЗміниПошук... (клавіатурне скорочення &Ctrl;F) можна відкрити діалогове вікно, у якому ви зможете вказати рядок, який ви шукаєте. Крім того, ви можете вказати вікна, у яких відбуватиметься пошук. Пошук завжди виконуватиметься від початку даних. Для переходу до наступного знайденого рядка можна скористатися пунктом меню ЗміниЗнайти далі... menu item (F3). Якщо пошук виконуватиметься у декількох вікнах, спочатку буде вказано варіанти у першому вікні, згори до низу, потім у другому вікні тощо. + + +Друк +У &kdiff3; передбачено підтримку друку відмінностей у текстових файлах. За допомогою пункту меню ФайлДрукувати... (клавіатурне скорочення &Ctrl;P) ви можете відкрити діалогове вікно, за допомогою якого можна вибрати принтер та налаштувати інші параметри друку. Існує декілька способів налаштування діапазону друку. Через відмінності у діалогових вікна друку у різних операційних системах, методи визначення певного діапазону можуть бути різними. + + Всі:Надрукувати все. + Поточна:Надрукувати сторінку, починаючи з першого рядка, який видно у вікні. (У системах, де немає подібного параметра, цей спосіб друку можна увімкнути за допомогою визначення для друку номера сторінки 10000.) + Вибір:Перш ніж наказати програмі надрукувати дані, виберіть фрагмент тексту за допомогою миші (у той самий спосіб, що і під час копіювання з вставленням) у одному з вікон вхідних даних з метою визначення початкового і кінцевого рядка. Якщо не буде позначено жодного фрагмента тексту у жодній з областей вхідних даних, вибір рядків буде недоступним. (У системах, де не буде цього пункту, ви можете досягнути потрібного результату, якщо вкажете для друку сторінку за номером 9999.) + Діапазон:Тут вам слід вказати першу і останню сторінки. + +Інші важливі параметри друку буде взято зі звичайних параметрів. + Шрифт, розмір шрифту + Показати номери рядків + Перенесення слів + Кольори + тощо + +Крім того, радимо вам скористатися альбомною орієнтацією для друку. + + +Параметри +Параметри і список нещодавніх файлів зберігатимуться під час завершення роботи програми, а потім знову завантажуватимуться під час наступного запуску. (Меню Параметри Налаштувати &kdiff3;...) +Шрифт +Вибрати моноширинний шрифт. (У деяких системах у цьому діалоговому вікні буде показано і шрифти зі змінною шириною символів, але вам не слід їх використовувати.) + + +Кольори + + Вікна редактора і різниці: + + Колір тексту:Зазвичай, чорний. + Колір тла:Зазвичай, білий. + Колір тла різниці:Зазвичай, світло-сірий. + Колір A:Зазвичай, темно-синій. + Колір B:Зазвичай, темно-зелений. + Колір C:Зазвичай, темно-пурпуровий. + Колір конфліктів:Зазвичай, червоний. + Колір тла поточного діапазону:Зазвичай, світло-жовтий. + Колір тла поточного діапазону різниці:Зазвичай, темно-жовтий. + Колір для діапазонів різниць вирівняних вручну:Зазвичай, жовтогарячий. + + Перегляд порівняння тек: + + Колір найновішого файла:Зазвичай, зелений. + Колір найстарішого файла:Зазвичай, червоний. + Колір файлів проміжного віку:Зазвичай, темно-жовтий. + Колір відсутніх файлів:Зазвичай, чорний. + + +Зміна кольорів у режимі порівняння тек набуде чинності лише під час наступного порівняння тек. +У системах, відеопідсистема яких може показувати лише 16 або 256 кольорів, певні кольори не можна буде показати у початковій формі. У таких системах точний колір можна вибрати за допомогою кнопки Типовий. + + +Параметри редактора + + Використовувати пробіли замість табуляціїЯкщо цей пункт не буде позначено, а ви натиснете клавішу табуляції, буде вставлено символ табуляції, у іншому випадку у документ буде вставлено належну кількість символів пробілу. + Розмір табуляції:Можна налаштувати відповідно до ваших потреб. Типове значення — 8. + АвтовідступПісля натискання клавіші &Enter; або Return відступ попереднього рядка використовується у наступному рядку. + Автоматичне копіювання позначеногоЯкщо буде позначено цей пункт, всі виділені фрагменти негайно копіюватимуться до буфера обміну даними, вам не потрібно буде виконувати явного копіювання. + Стиль кінців рядка:Ви можете вказати, якому стилю завершення рядків слід надавати перевагу програмі під час зберігання даних. Типовим буде завершення рядка загальне для всієї системи. + + + +Параметри Diff +Під час порівняння файлів &kdiff3; спочатку намагається знайти однакові рядки у всіх файлах вхідних даних. Лише на цьому етапі програма може ігнорувати пробіли. На другому етапі програма порівнює всі рядки окремо. На цьому етапі програма не ігноруватиме пробіли. Крім того, пробіли не ігноруватимуться під час об'єднання. + + + Ігнорувати числа (вважати пробілами)Типово пункт не позначено. Символи, які є частиною чисел, («0»-«9», «.», «-») буде проігноровано під час першої частини аналізу, під час якої програма встановлює відповідність рядків. У результатах порівняння відмінність у символах чисел буде враховано, але самі ці символи вважатимуться пробілами. + Ігнорувати коментарі C/C++ (вважати пробілами)Типово вимкнено. За позначення, зміни у коментарях будуть оброблятися як зміни у пробілах. + Ігнорувати зміни регістру (вважати пробілами)Типово вимкнено. За позначення, відмінності у регістрі літер (зокрема «A» і «a») будуть оброблятися як зміни у пробілах. + Команда препроцесора:Див. наступний розділ. + Команда відповідності рядків препроцесора:Див. наступний розділ. + Агресивніше (повільніше)Намагатися знайти найменші відмінності. Типово увімкнено. Подібне порівняння, ймовірно буде корисним для складних і великих файлів. Значно сповільнює обробку великих файлів. + Вирівняти B і C для 3 вхідних файлівСпробувати вирівняти B і C під час порівняння або об'єднання трьох вхідних файлів. Не рекомендується для об'єднання, оскільки такі дії можуть його ускладнити. (Типово вимкнено.) + + + +Параметри об'єднання + + Автоматичне продовження за (у мс):У режимі автоматичного продовження цей параметр визначає час, протягом якого програма показуватиме результат вибору перед переходом до наступного нерозв'язаного конфлікту. + Показувати інформаційні вікнаПоказувати діалогове вікно з відомостями про кількість конфліктів. + Типове значення пробілів для об'єднання 2/3 файлів:Автоматично розв'язати всі конфлікти у пробілах вибором вказаного файла. (Типово, визначеного вручну) Корисно, якщо пробіли не є суттєвими у багатьох файлах. Якщо ви не бажаєте використовувати подібні налаштування постійно, краще скористайтеся пунктом Вибрати A/B/C для всіх нерозв'язаних конфліктів пробілів з меню Об'єднання. Зауважте, що якщо ви позначили якийсь з пунктів Ігнорувати числа або Ігнорувати коментарі C/C++, подібний автоматичний вибір стосуватиметься і конфліктів, пов'язаних з відмінностями у числах або коментарях. + Формальний вираз автооб'єднання:Формальний вираз для рядків, у яких &kdiff3; слід автоматично обирати одне джерело. Див. також Автоматичне об'єднання... + Запустити автооб'єднання за формальними виразом на початку об'єднанняЯкщо позначити цей пункт, &kdiff3; виконає автоматичне об'єднання на основі даних пункту Формальний вираз автооб'єднання після запуску процесу об'єднання. + Початковий формальний вираз елемента історії:Формальний вираз для початку запису історії керування версіями. Зазвичай, цей рядок містить ключове слово «$Log$». Типове значення: «.*\$Log.*\$.*» + Початковий формальний вираз елемента історії:Під час об'єднання записів журналу програма працюватиме з записами, що складаються з декількох рядків. Тут ви можете вказати формальний вираз, за яким програма визначатиме перший рядок такого запису (без початкового коментаря). Скористайтеся круглими дужками для групування ключів, які ви бажаєте згодом використати для впорядкування. Якщо у цьому полі буде порожньо, &kdiff3; вважатиме, що записи журналу відокремлюються порожніми рядками. Див. також Автоматичне об'єднання... + Впорядкування історії при об'єднанніУвімкнути впорядкування за журналом системи керування версіями. + Порядок сортування початків записів за ключем:Кожна пара дужок, які використовуються у формальному виразі, містить ключ впорядкування записів історії. Вкажіть список ключів (пронумерованих у порядку появи, починаючи з 1), з використання роздільника "," (наприклад "4,5,6,1,2,3,7"). Якщо залишити це поле порожнім, сортування не проводитиметься. Подробиці можна дізнатися з Автоматичне об'єднання...документації. + Об'єднувати за журналом керування версіями на початку об'єднанняЯкщо буде позначено &kdiff3; виконуватиме автоматичне об'єднання журналів на основі раніше згаданих параметрів після запуску процесу об'єднання. + Макс. кількість записів у історії:&kdiff3; обмежуватиме кількість записів журналу до вказаної. Значенням -1 можна скористатися, щоб вимкнути обмеження. (Типовим значенням є -1). + Перевіряти ваші формальні виразиЗа допомогою натискання цієї кнопки ви можете наказати програмі відкрити діалогове вікно, у якому ви зможете випробувати і покращити вказаний вище формальний вираз. Достатньо просто скопіювати відповідні дані з ваших файлів до рядків прикладу. У полі Результати порівняння негайно буде показано, було ваше порівняння вдалим чи ні. У полі Результат ключа впорядкування буде показано ключ, який буде використано під час впорядкування результату об'єднання журналів. + Безвідносна команда об'єднання:Вкажіть власну команду, яку слід виконати, якщо &kdiff3; виявить, що під час трикомпонентного об'єднання файл з B не містить ніяких відповідних даних, яких би не містилося у файлі з C. Команда виконуватиметься з параметрами — назвами трьох файлів. Дані, що відповідатимуть Формальному виразу автооб'єднання або дані з журналу не вважатимуться відповідними. + Автоматично зберегти і вийти, якщо немає конфліктівЯкщо &kdiff3; було запущено для об'єднання файлів з командного рядка і всі +конфлікти можна розв'язати без втручання користувача, автоматично зберегти файли і вийти. (Відповідає параметру командного рядка .) + + + + +Об'єднання тек +Ці параметри використовуватимуться під час сканування теки і виконання об'єднання: докладніше про це можна дізнатися з розділу щодо порівняння тек/об'єднання. Крім того, тут є ще один параметр, пов'язаних зі збереженням окремих файлів: + + Створювати резервні копії файлів (.orig)Якщо програма зберігатиме файл, який має попередню версію, початкову версію файла буде перейменовано з додаванням суфікса .orig. Якщо у теці вже є файл резервної копії з назвою, що містить суфікс .orig, цей файл буде заміщено новим без створення додаткових резервних копій. + + + +Параметри локалізації + + Використовувати однакове кодування для всьогоНаведені нижче параметри кодування можна скоригувати окремо для кожного з елементів, якщо ж цей пункт буде позначено, всім параметрам буде надано значення першого параметра. + Зауваження: локальним кодуванням є «...»Над списком, призначеним для вибору кодування, буде показано пункт, який інформуватиме вас про поточне системне кодування. (Значення цього пункту змінювати не можна. Його призначено для інформування вас, якщо поточне кодування вам не відоме.) + Кодування файла для A/B/C:Визначає кодування файлів з вхідними даними. Значення цього параметра визначає спосіб обробки спеціальних символів. Оскільки кодування для кожного з вхідних файлів можна визначати окремо, ви маєте змогу порівнювати навіть файли у різному кодуванні. + Кодування файла для об'єднання і збереження:Якщо ви маєте намір змінити файл, ви можете вказати кодування, яке буде використано для збереження цього файла. + Кодування файлів для файлів препроцесора:Якщо ви визначаєте інструменти попередньої обробки, може так статися, що вони не зможуть працювати з вашим кодуванням. Приклад: ваші файли зберігаються у 16-бітовому кодуванні Unicode, а ваш інструмент попередньої обробки може працювати лише з даним у 8-бітовому кодуванні ASCII. За допомогою цього пункту ви можете визначити кодування для вихідних даних інструменту попередньої обробки (препроцесора). + Мова з записом справа ліворуч:Запис текстів деякими мовами виконується справа ліворуч. Якщо буде позначено цей пункт, &kdiff3; показуватиме текст у напрямку справа ліворуч у областях вхідних даних і у області об'єднаних даних. Зауважте, що, якщо &kdiff3; було запущено командою з параметром всі елементи компонування вікна програми буде також вирівняно справа ліворуч. Цю можливість реалізовано за допомогою бібліотеки &Qt;. Цю документацію було написано у припущенні, що пункт «Мова з записом справа ліворуч» не позначено, а зворотне компонування не увімкнено. Отже, якщо відповідні параметри все ж було увімкнено, вам слід поміняти місцями слова «ліворуч» і «праворуч», використані у цьому підручнику. + + + + +Різне +(Доступ до цих параметрів можна отримати за допомогою меню або кнопок панелі інструментів.) + + Параметри огляду:Відповідні варіанти будуть доступними лише у разі порівняння трьох файлів. У звичайному режимі всі відмінності буде показано у одному розфарбованому у різні кольори стовпчику огляду. Але іноді у вас може виникати зацікавленість у перегляді відмінностей лише у двох з цих трьох файлів. У разі вибору одного з варіантів перегляду, «A з B», «A з C» або «B з C», програма покаже другий стовпчик огляду з потрібними даними, розташований поряд зі звичайним стовпчиком огляду. + Перенесення рядків у вікнах різниціПереносити рядки, чия довжина перевищує ширину вікна. + Показати вікно A/B/C:Іноді бажано максимально використати простір вікна для показу довгих рядків. Сховайте вікна, які не є важливими (за допомогою меню «Вікно»). + Перемкнути орієнтацію відокремленняПеремикає орієнтацію вікон різниць, розташованих поруч (A ліворуч від B, а B ліворуч від C) або одне над одним (A над B над C). Цей параметр може допомогти вам покращити перегляд, якщо рядки достатньо довгі (у меню Вікна). + Об'єднати поточний файлПрацюватиме лише у випадку, коли ви маєте справу з порівнянням двох файлів. Одним клацанням лівою кнопкою миші ви можете розпочати об'єднання з використанням назви файла останнього файла вхідних даних як типової назви для файла виводу. Якщо ви скористалися відповідним пунктом для перезапуску об'єднання, назву файла виводу змінено не буде. + Показувати пробілиЗніміть позначку з цього пункту, щоб придушити підсвічування відмінностей у кількості пробілів у тексті або стовпчиках огляду. Зауважте, що це також стосується відмінностей у числах та коментарях, якщо позначено пункти Ігнорувати числа (вважати пробілами) та Ігнорувати коментарі C/C++ (вважати пробілами). + Показувати символи пробілів і табуляцій для різниць:Іноді візуалізація пробілів і символів табуляції заважає перегляду. За допомогою цього пункту ви можете її вимкнути. + Показувати номери рядківЗа допомогою цього пункту ви можете наказати програмі показувати або не показувати номери рядків тексту. + + + +Налаштування клавіатурних скорочень +У поточній версії програми можливість налаштування клавіатурних скорочень користувачем підтримується лише у версії програми для Frameworks. (Меню Параметри Налаштувати скорочення...) + + + +Команди попередньо обробки +У &kdiff3; підтримуються два параметри попередньої обробки. + + Команда препроцесора:Під час читання будь-якого файла його буде оброблено вказаною зовнішньою програмою. Замість вмісту початкового файла ви побачите дані, виведене відповідною програмою. Ви можете написати ваш власний інструмент попередньої обробки (препроцесор), який виконуватиме потрібні вам дії. Препроцесор може вирізати непотрібні частини файлів або автоматично виправити відступи тощо. + Команда відповідності рядків препроцесора:Під час читання будь-якого файла його буде оброблено вказаною зовнішньою програмою. Якщо було вказано команду-препроцесор (див. вище), дані, виведені препроцесором стануть вхідними даними для препроцесора пошуку відповідних рядків. Виведені цим препроцесором дані буде використано лише під час фази знаходження відповідників аналізу вмісту файлів. Ви можете написати ваш власний інструмент попередньої обробки (препроцесор), який виконуватиме потрібні вам дії. За використання такого препроцесора кожному рядку вхідних даних має відповідати точно один рядок виведених даних. + + +Призначенням препроцесорів є надання у розпорядження користувача більшої гнучкості у налаштуванні результату порівняння. Використання препроцесора вимагає наявності зовнішньої програми, а більшість користувачів не є програмістами. Непоганою новиною тут має стати те, що дуже часто для виконання потрібних завдань достатньо скористатися командами sed або perl. +Приклад. Простий тест: розглянемо файл a.txt (6 рядків): +aa + ba + ca + da + ea + fa + +і файл b.txt (3 рядки): +cg + dg + eg + +Якщо не використовувати препроцесора, у відповідність буде "#~ "поставлено такі рядки: +aa - cg + ba - dg + ca - eg + da + ea + fa + +Навряд чи ми бажали саме цього, оскільки насправді важливу інформацію містить перша літера рядка. Щоб допомогти алгоритмові пошуку відповідників уникнути порівняння за другою літерою, ми можемо скористатися командою-препроцесором, яка замінить «g» на «a»: +sed 's/g/a/' + +У результаті виконання цієї команди порівняння матимемо: +aa + ba + ca - cg + da - dg + ea - eg + fa + +З точки зору внутрішньої структури програми, алгоритм пошуку відповідників застосовується лише після запуску препроцесора пошуку відповідників, але на екрані файл залишиться незмінним. Звичайний же препроцесор змінив би вміст файла на екрані. + +Основи <command +>sed</command +> +Цей розділ є лише вступом, у якому обговорено найпростіші можливості команди sed. Докладніші відомості можна знайти на сторінці info:/sed або http://www.gnu.org/software/sed/manual/html_mono/sed.html. Зібрану версію цієї програми для &Windows; можна знайти за адресою http://unxutils.sourceforge.net. Зауважте, що у наведених нижче прикладах припускається, що файл програми sed зберігається у одній з тек, які вказано у змінній середовища PATH. Якщо це не так, вам доведеться вказувати повний абсолютний шлях до файла програми. +У цьому контексті використовується лише команда заміни sed: +sed 's/ФОРМАЛЬНИЙ_ВИРАЗ/ЗАМІННИК/ПРАПОРЦІ' + +Перш ніж користуватися новою командою у &kdiff3;, вам слід спочатку випробувати її у консолі. Для такої перевірки вам знадобиться команда echo. Приклад: +echo abrakadabra | sed 's/a/o/' + -> obrakadabra + +У цьому прикладі ми продемонстрували дуже просту команду sed, яка заміняє перше знайдене «a» на «o». Якщо ви бажаєте замінити всі «a», вам слід скористатися прапорцем «g»: +echo abrakadabra | sed 's/a/o/g' + -> obrokodobro + +Символ «|» використовується для створення конвеєрів: дані, виведені попередньою командою, передаються як вхідні дані наступній команді. Якщо ви бажаєте виконати перевірку на великому файлі, вам слід скористатися командою cat у &UNIX;-подібних системах або командою type у &Windows;-подібних системах. sed виконає заміну у всіх рядках. cat назва файла | sed параметри + + + +Приклади використання <command +>sed</command +> у &kdiff3; +Ігнорування коментарів інших типів +Поточна версія &kdiff3; розуміє лише коментарі у стилі C/C++. За допомогою команди препроцесора пошуку відповідників ви можете наказати програмі ігнорувати інші типи коментарів перетворенням цих коментарів на коментарі C/C++. + Приклад: щоб наказати програмі ігнорувати коментарі, що починаються з «#», вам слід перетворити цей символ на «//». Зауважте, що вам також слід позначити пункт Ігнорувати коментарі C/C++, щоб отримати бажаний результат. Відповідна команда препроцесора пошуку відповідників буде такою: +sed 's/#/\/\//' + +Оскільки у sed символ «/» має особливе призначення, у рядку-заміннику перед кожним символом «/» слід додавати символ «\». Цей символ потрібен для додавання або вилучення особливого призначення інших символів. Крім того, символи одинарних лапок (') перед і після команди заміни є важливими лише під час тестування команд командної оболонки, оскільки якщо ви їх не використовуватимете, оболонка виконання команд намагатиметься інтерпретувати деякі символи. Сама програма &kdiff3; не виконуватиме інтерпретації, окрім як для послідовностей символів «\"» та «\\». + +Пошук відмінностей без врахування регістру +Скористайтеся такою командою препроцесора пошуку відповідників для перетворення усіх символів вхідних даних до верхнього регістру: +sed 's/\(.*\)/\U\1/' + +У цій команді ми використали «.*» — формальний вираз, що відповідає будь-якому рядку, а у нашому контексті відповідними вважатимуться всі символи рядка. Послідовність символів «\1» у рядку-заміннику відповідає знайденому тексту у першій парі круглих дужок, «\(» і «\)». Команда «\U» перетворює символи вставленого тексту на символи у верхньому регістрі. + + +Ігнорування ключових слів системи керування версіями +У CVS та інших системах керування версіями використовується декілька ключових слів, призначених для вставки автоматично створених рядків (див. info:/cvs/Keyword substitution). Всі ці ключові слова буде вказано за схемою: $КЛЮЧОВЕ_СЛОВО створений текст$. Нам буде потрібна команда препроцесора пошуку відповідників, який вилучить лише створений текст: +sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' + +Символ «\|» відокремлює можливі варіанти ключових слів. Можливо, вам слід змінити цей список відповідно до ваших потреб. Перед символом «$» обов'язково слід додати символ екранування «\», оскільки у іншому випадку команда вважатиме, що «$» позначає кінець рядка. +Під час експериментів з sed ви краще зрозумієте механізм дії і навіть полюбите формальні вирази. Це буде корисним, оскільки значна кількість інших програм підтримують подібні формальні вирази. + + +Ігнорування цифр +Насправді ігнорування чисел є вбудованою функцією. Але, як ще один приклад, ми покажемо, як зробити так, щоб під час пошуку відповідників програма ігнорувала числа, за допомогою команди препроцесора порівняння рядків: +sed 's/[0123456789.-]//g' + +Препроцесор знайде всі символи, вказані між квадратними дужками, і вилучить їх (замінить на порожнє місце). + + +Ігнорування певних стовпчиків +Іноді ви маєте справу зі строго форматованим текстом, який містить позиції, які завжди слід ігнорувати, інші ж позиції тексту потрібно проаналізувати. У наступному прикладі буде проігноровано перших п'ять позицій (символів), наступні десять позицій буде збережено, наступні п'ять знову проігноровано, решту рядка буде збережено: +sed 's/.....\(..........\).....\(.*\)/\1\2/' + +Кожна крапка «.» замінює собою будь-який одинарний символ. Записи «\1» і «\2» у рядку-заміннику посилаються на знайдений текст у першій і другій парі круглих дужок («\(» і «\)») і є замінниками знайденого тексту без змін. + + +Комбінування декількох підстановок +Іноді виникає потреба у одночасному виконанні декількох підстановок. У такому випадку ви можете скористатися крапкою з комою («;»), щоб відокремити одну підстановку від інших. Приклад: +echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' + -> OBROKODOBRO + + + +Використання <command +>perl</command +> замість <command +>sed</command +> +Замість sed ви можете скористатися, наприклад, perl. +perl -p -e 's/ФОРМАЛЬНИЙ_ВИРАЗ/ЗАМІННИК/ПРАПОРЦІ' + +Але у perl ви матимете справу з дещо відмінними конструкціями формальних виразів. Зауважте, що там, де у sed слід використовувати "\(" і "\)", у perl слід використовувати простіший варіант "(" і ")" без попередніх '\'. Приклад: +sed 's/\(.*\)/\U\1/' + perl -p -e 's/(.*)/\U\1/' + + + + +Порядок виконання попередньої обробки +Дані буде пропущено через всі внутрішні та зовнішні препроцесори у такому порядку: + +Звичайний препроцесор, +Препроцесор пошуку рядків, +Ігнорування регістру (вважати пробілами) (перетворення на літери верхнього регістру), +Визначення коментарів C/C++, +Ігнорування чисел (вважати пробілами), +Ігнорування пробілів + +Після обробки звичайним препроцесором дані не буде змінено: їх буде показано і об'єднано у початковому вигляді. За допомогою інших дій у програмі можна буде змінити лише дані, які було повернуто алгоритмом пошуку відповідних рядків. У рідкісних випадках використання звичайного препроцесора зауважте, що препроцесор пошуку відповідних рядків оброблятиме лише рядки, передані йому звичайним препроцесором. + + +Попередження +Часто команди попередньої обробки виявляються дуже корисними, але, як це трапляється з будь-якою дією, внаслідок якої відбувається автоматична заміна фрагментів вашого тексту або приховування певних відмінностей, може статися випадковий пропуск певних даних або, у найгіршому випадку, знищення важливих даних. З цієї причини під час об'єднання, якщо було використано звичайну команду-препроцесор, &kdiff3; повідомить вас про це і запитає про те, бажаєте ви вимкнути наслідки дії цієї команди чи ні. Але програма не попереджатиме вас про використання команди-препроцесора, призначеної для пошуку відповідних рядків. Об'єднання не буде завершено, доки ви не розв'яжете всі конфлікти. Якщо ви знімете позначку з пункту «Показувати пробіли», відмінності, які було вилучено командою-препроцесором пошуку відповідних рядків, також стануть невидимими. Якщо після цього ви не зможете зробити кнопку «Зберегти» активною під час об'єднання (оскільки залишатимуться не розв'язані конфлікти), знову позначте пункт «Показувати пробіли». Якщо ви не бажаєте виконувати розв'язання цих малозначущих конфліктів вручну, ви можете скористатися пунктами «Вибрати A/B/C для всіх нерозв'язаних конфліктів пробілів» з меню «Об'єднання». + + + + + +Порівняння і об'єднання тек за допомогою &kdiff3; +Вступ до порівняння і об'єднання тек +Часто програмістам для досягнення потрібної мети доводиться змінювати багато файлів у певній теці. У такому випадку &kdiff3; надасть вам змогу порівняти і об'єднати цілі теки рекурсивно! Хоча порівняння і об'єднання тек здається зовсім очевидною дією, існує декілька моментів, на які вам слід звернути увагу. Найважливішим є, звичайно ж, той факт, що кожна з дій на цей раз включатиме цілий набір файлів. Якщо у вас немає резервних копій початкових даних, теку буде дуже важко або навіть неможливо повернути у початковий стан. Отже, перш ніж виконувати об'єднання, переконайтеся, що ваші дані у безпеці і повернення до попереднього стану можливе. Можна скористатися архівуванням або використати одну з систем керування версіями, але навіть досвідченим програмістам та інтеграторам іноді можуть знадобитися старі коди програм. Зауважте, що хоча автор &kdiff3; намагався (і намагатиметься) зробити програму якомога кращою, гарантувати відсутність вад у програмі просто неможливо. Відповідно до GNU-GPL автор НІЧОГО НЕ ГАРАНТУЄ щодо цієї програми. Отже, змиріться і завжди пам'ятайте, що: +
+ Людині властиво помилятися, але, щоб насправді все заплутати, їй потрібен комп'ютер. +
+Отже, ось що ця програма може зробити для вас: &kdiff3; ... + + ...рекурсивно прочитати і порівняти дві або три теки, + ...виконати особливу обробку символічних посилань, + ...надати вам змогу переглянути файли подвійним клацанням кнопкою миші, + ...для кожного з пунктів запропонувати дію з об'єднання, яку ви можете змінити перед тим, як розпочати об'єднання тек, + ...надати вам змогу зімітувати об'єднання і показати список дій, які буде виконано без їх виконання насправді, + ...надати вам змогу насправді виконати об'єднання і втрутитися, якщо знадобиться ваше втручання вручну, + ...надати вам змогу виконати вибрану дію для всіх елементів (клавіша F7) або вибраного елемента (клавіша F6), + ...надати вам змогу продовжити автоматичне об'єднання за допомогою клавіші F7, після вашого втручання вручну, + ...за бажання, створити резервні копії з суфіксом .orig, + ... + +
+ +Запуск порівняння або об'єднання тек +Виконання цього завдання дуже подібне на виконання завдання з порівняння і об'єднання окремих файлів. Вам просто слід вказати теки у командному рядку або у діалоговому вікні відкриття файлів. +Порівняння/Об'єднання двох тек: +kdiff3 тека1 тека2 + kdiff3 тека1 тека2 -o тека_призначення + +Якщо не буде вказано теки призначення, &kdiff3; використовуватиме тека2. + + +Порівняння/Об'єднання трьох тек: +kdiff3 тека1 тека2 тека3 + kdiff3 тека1 тека2 тека3 -o тека_призначення + +Якщо об'єднуються три теки, базовою для об'єднання буде тека1. Якщо теки призначення не вказано, &kdiff3; використає з цією метою тека3. + +Зауважте, що автоматично починається лише порівняння, але не об'єднання. Щоб виконати об'єднання, вам слід скористатися відповідним пунктом меню або натиснути клавішу F7 (докладніше про це згодом). + + + +Візуальні дані щодо об'єднання тек +Під час читання тек програма показуватиме піктограму з поштовою скринькою, яка позначає виконання завдання. Якщо ви перервете сканування тек, буде показано список лише тих файлів, які програма встигла просканувати. Після завершення сканування тек &kdiff3; покаже панель з результатами ліворуч... + + + +... і подробиці щодо поточного вибраного елемента праворуч: + + + + + +Стовпчик назви +Тут буде показано ієрархічний список всіх файлів і тек, які було знайдено під час сканування. Вибрати пункт списку можна наведенням на нього вказівника миші з наступним клацанням лівою кнопкою миші. Типово, теки буде згорнуто. Розгортати або згортати теки можна натисканням кнопки «+»/«-», подвійним на позначці теки або за допомогою натискання клавіш зі стрілочками ліворуч і праворуч на клавіатурі. Крім того, у меню Тека міститься два пункти, Згорнути всі підтеки і Розгорнути всі підтеки, за допомогою яких ви можете згортати або розгортати всі теки одразу. Після наведення вказівника миші на позначку файла з наступним подвійним клацанням лівою кнопкою миші буде відкрито перегляд відмінностей для відповідного файла. +Зображення у стовпчику назви відповідатиме типу файла у першій теці (A). Можливі такі варіанти: + + Звичайний файл + Звичайна тека (зображення теки) + Посилання на файл (зображення файла з стрілочкою посилання) + Посилання на теку (зображення теки зі стрілочкою посилання) + +Якщо типи файлів у теках відрізнятимуться, ви зможете помітити це за стовпчиками A/B/C, а також за вікном докладними відомостями щодо вибраного пункту. Зауважте, що у таких випадках вибір автоматичного об'єднання неможливий. Якщо користувач викличе дію з об'єднання, його буде попереджено про проблеми з типом файлів. + + +Стовпчики A/B/C і схема кольорів +Як можна бачити на наведеному вище зображенні для стовпчиків A/B/C використовуються червоний, зелений, жовтий і чорний кольори. + + Чорний: елемента не існує у цій теці. + Зелений: найновіший елемент. + Жовтий: старіший за зелений, новіший за червоний. + Червоний: найстаріший елемент. + +Але елементи, які є однаковими у всіх теках колір теж буде однаковим, хоча їх вік і відрізнятиметься. Теки вважатимуться однаковими, якщо всі елементи, які у них містяться, є однаковими. Однакові елементи програма показуватиме однаковим кольором. Під час визначення кольору вік теки до уваги не братиметься. Ідею подібного розфарбування запозичено з програми dirdiff. Кольори відповідають кольорам листя: воно зелене, коли тільки-но з'являється на деревах, пізніше перетворюється на жовте, а згодом на червоне. + +Стовпчик дій +Після порівняння тек &kdiff3; намагається визначитися пропозиціями щодо дії з об'єднання. Ці пропозиції буде показано у стовпчику Дія. Ви можете змінити дію натисканням позначки дії, яку ви бажаєте змінити. Програма відкриє невеличке меню, за допомогою якого ви зможете вибрати дію для відповідного пункту. Крім того, ви можете вибрати одну з найпоширеніших дій за допомогою клавіатури. Натискання комбінацій клавіш &Ctrl;1/2/3/4/∇ призведе до вибору дій A/B/C/Об'єднати/Вилучити, відповідно. Вибрану вами дію буде виконано під час об'єднання. Перелік можливих дій і режим об'єднання залежатиме від вибраного пункту. Можливі такі режими об'єднання: + + Об'єднання трьох тек (A вважається старішою базою для двох інших). + Об'єднання двох тек. + Режим синхронізації двох тек (активується за допомогою пункту Синхронізувати теки). + +Під час виконання об'єднання трьох тек логіка програми виглядає так: Якщо елемент... + + ...всі три теки містять однакові файли: копіювання з C + ... A і C є однаковими, B відрізняється: копіювати з B (або, якщо B не існує, вилучити файли з A і С) + ... A і B є однаковими, C відрізняється: копіювати з C (або, якщо C не існує, вилучити файли з A і B) + ... B і C є однаковими, A відрізняється: копіювати з C (або, якщо C не існує, вилучити файли з A) + ...існує лише A: вилучення призначення (якщо воно існує) + ... існує лише у B: копіювати з B + ... існує лише у C: копіювати з C + ... A, B і C є різними: об'єднати + ... файли у A, B і C належать до різних типів (наприклад у A — це тека, у B — файл): «Помилка: Конфлікти типів файлів». Хоча відповідні елементи і існують, об'єднання тек розпочати неможливо. + +Під час виконання об'єднання двох тек логіка програми виглядає так: Якщо елемент... + + ... є однаковим у обох теках: копіювати з B + ... існує у A, але не існує у B: копіювати з A + ... існує у B, але не існує A: копіювати з B + ... елемент існує у A і B, але він є різним: об'єднати + ... файли у A і B належать до різних типів (наприклад у A це тека, у B — файл): «Помилка: Конфлікти типів файлів». Хоча відповідні елементи і існують об'єднання тек розпочати неможливо. + +Режим синхронізації буде задіяно, лише якщо виконується порівняння двох тек, а призначення не вказано явним чином, і якщо позначено пункт Синхронізувати теки. У такому разі &kdiff3; обере типову дію, після виконання якої обидві теки будуть однаковими. Якщо... + + ...обидві теки містять однакові файли: ніяких дій виконано не буде. + ...існує A, але не існує B: копіювання A до B + ...існує B, але не існує A: копіювання B до A + ...існують A і B, але вони не збігаються: об'єднання зі збереженням даних результату у обох теках. (Для користувача видимим файлом, куди буде збережено дані буде B, але після зберігання &kdiff3; скопіює B до A.) + ... файли у A і B належать до різних типів (наприклад у A це тека, у B — файл): «Помилка: Конфлікти типів файлів». Хоча відповідні елементи і існують об'єднання тек розпочати неможливо. + +Якщо виконується об'єднання двох тек і позначено пункт Копіювати новіший, замість об'єднання, &kdiff3; виконуватиме визначення дат зміни файлів і пропонуватиме вибрати новіший файл. Якщо файли мають різний вміст, але однакову дату зміни, дія міститиме напис «Помилка: Дати однакові, а файли відрізняються». У такому разі, хоча елементи існують, неможливо розпочати об'єднання тек. + + +Стовпчик стану +Під час об'єднання файли оброблятимуться один за одним. У стовпчику стану буде показано слово Виконано для пунктів, для яких дія з об'єднання була успішною, та інший текст, якщо сталося щось непередбачене. Після завершення дії об'єднання вам слід перевірити, чи для всіх пунктів стан об'єднання є задовільним. + + +Стовпчики статистики +Якщо у параметрах програми увімкнено режим Повний аналіз, &kdiff3; покаже додаткові стовпчики з кількістю нерозв'язаних і розв'язаних конфліктів, а також кількістю конфліктів у пробілах і конфліктів, не пов'язаних з пробілами. Стовпчик розв'язаних конфліктів буде показано лише у випадку порівняння або об'єднання трьох тек. + + +Вибір файлів зі списку +Переліком файлів, показаних у цьому списку, керує декілька параметрів. Доступ до деяких з них можна отримати за допомогою діалогового вікна параметрів. У меню Тека містяться такі пункти: + Показувати однакові файли: показати файли, які програма визначила як однакові у всіх початкових теках. + Показувати різні файли: показати файли, які існують у декількох теках, але не є однаковими. + Показувати файли лише у A: показати файли, які існують лише у A, і яких немає у B і C. + Показувати файли лише у B: показати файли, які існують лише у B, і яких немає у A і C. + Показувати файли лише у C: показати файли, які існують лише у C, і яких немає у A і B. + +Позначте пункти Показувати лише для тих елементів, які ви бажаєте бачити у списку. Якщо, наприклад, ви бажаєте бачити у списку лише ті елементи, які існують або у A, або у B, але не у обох теках, вам слід позначити пункти Показувати файли лише у A і Показувати файли лише у B і зняти позначки з усіх інших пунктів (Показувати однакові файли, Показувати різні файли, Показувати файли лише у C). Після внесення змін список буде негайно оновлено відповідним чином. Ці параметри буде також використано і для тек, за одним винятком: зняття позначки з пункту Показувати різні файли не призведе до приховування жодної з тек. Цей параметр призначено лише для файлів у цих теках. Зауважте, що серед усіх цих параметрів програма зберігатиме значення лише параметра Показувати однакові файли. Інші пункти буде знову позначено після наступного запуску &kdiff3;. + + + + + +Виконання об'єднання тек +Ви можете наказати програмі виконати об'єднання поточного вибраного елемента (файла чи теки) або всіх елементів. Коли ви визначитеся з усіма параметрами дії (у всіх підтеках), можна розпочинати об'єднання. Пам'ятайте, що якщо ви не вказали теку призначення явно, призначенням буде C у режимі роботи з трьома теками, B у режимі порівняння двох тек, і A або/і B у режимі синхронізації. Якщо ви вказали теку призначення, вам також слід перевірити, що у ньому наявні всі належні елементи структури. Існують параметри, які можуть призвести до того, що програма не оброблятиме певні елементи під час порівняння і об'єднання тек. Щоб уникнути небажаних сюрпризів, вам слід перевірити наявність позначок навпроти таких пунктів: + + Рекурсивні теки: якщо цей пункт не буде позначено, програма не шукатиме у підтеках. + Шаблон включення/виключення: включити/виключити пункти, які відповідають певному критерію + Виключити приховані файли + Пункти показу (Показати однакові/різні файли, Файли лише у A/B/C) + +Якщо ви змінили параметри так, що список файлів збільшився, вам слід вручну наказати програмі виконати повторне сканування тек за допомогою пункту меню Тека Пересканувати. Причиною цього є те, що для пришвидшення порівняння &kdiff3; уникає порівняння файлів, які не відповідають вказаним на початку критеріям. Якщо ж ви змінили ваші шаблони файлів або тек так, щоб виключити певні файли, список файлів буде негайно оновлено одразу після закриття діалогового вікна параметрів. Зауважте, що, якщо ви наказали програмі виконати запис до тільки-но створеної теки, бажано, щоб було скопійовано і однакові файли. Для цього слід позначити пункт Показувати однакові файли. Якщо вашою текою призначення є один з тек з початковими даними, вам не доведеться цього робити, оскільки відповідні файли вже зберігатимуться у цій теці. Якщо вас все задовольняє, решта дій буде простою. Щоб наказати програмі об'єднати всі пункти, скористайтеся пунктом Почати/Продовжити порівняння тек з меню Тека або натисніть клавішу F7 (типове клавіатурне скорочення). Щоб наказати програмі об'єднати лише поточний пункт, оберіть пункт Виконати операцію для поточного елемента або натисніть клавішу F6. Якщо через конфлікт типів файлів у списку існують пункти з некоректними діями, програма відкриє вікно повідомлення, у якому буде вказано перелік цих пунктів, отже ви зможете вибрати належну дію для кожного з таких пунктів. Якщо ви оберете об'єднання всіх пунктів, програма відкриє діалогове вікно, у якому запропонує вибрати один з варіантів: Зробити це, Імітувати це і Скасувати. + + Натисніть кнопку Імітувати це, якщо ви бажаєте просто подивитися, які дії буде виконано без виконання цих дій. Програма покаже вам докладний список дій. + Натисніть кнопку Зробити це, щоб розпочати процедуру об'єднання. + +&kdiff3; виконає вказану дію для всіх пунктів. Якщо потрібне буде втручання користувача (об'єднання окремого файла), програма відкриє вікно об'єднання (див. великий знімок вікна). Після завершення об'єднання окремого файла, знову скористайтеся пунктом меню Почати/Продовжити об'єднання тек або натисніть клавішу F7. Якщо ви не забули зберегти об'єднаний файл, програма відкриє діалогове вікно, у якому попросить вас це зробити. Потім &kdiff3; продовжить обробку наступного з пункту. Якщо під час виконання &kdiff3; дій станеться помилка, програма повідомить вам про неї і покаже докладні відомості про стан. У нижній частині списку міститимуться повідомлення про помилки, які допоможуть вам зрозуміти, у чому полягає проблема. Якщо ви спробуєте продовжити об'єднання (натиснете клавішу F7), &kdiff3; надасть вам змогу вибрати між повторенням спроби об'єднання елемента, який спричинив помилку, і його пропуском. Це означає, що перш ніж продовжувати, ви зможете вибрати іншу дію стосовно файла або розв'язати проблему у інших спосіб. Після завершення процедури об'єднання &kdiff3; відкриє вікно повідомлення про завершення дії. Якщо деякі з елементів було об'єднано окремо, перш ніж було виконано запуск об'єднання тек, &kdiff3; врахує це (на час поточного сеансу об'єднання) і не виконуватиме їх повторного об'єднання під час наступного загального об'єднання. Навіть якщо об'єднання було пропущено або результати об'єднання не було збережено, програма вважатиме об'єднання відповідних пунктів завершеним. Стан Виконано з таких елементів буде знято, лише якщо ви зміните дію з об'єднання. Після цього можна буде повторно виконати їх об'єднання. + + +Варіанти порівняння і об'єднання тек +У вікні параметрів &kdiff3; (пункт меню Параметри Налаштувати &kdiff3;) є розділ з назвою «Об'єднання тек» з такими пунктами: + + + Рекурсивні текиЗа допомогою цього пункту можна увімкнути або вимкнути рекурсивний перегляд тек. + Шаблони файлів:У ієрархії буде показано лише файли, назви яких відповідають одному з шаблонів, вказаних у цьому полі. Відокремлювати окремі шаблони у списку слід за допомогою крапки з комою, «;». Можна використовувати шаблони заміни: «*» і «?» (наприклад *.cpp;*.h). Типовим шаблоном є «*». Цей шаблон не стосується тек. + Шаблон(и) виключення файлів:Файли, назви яких відповідають вказаному у цьому полі шаблону, буде виключено з ієрархії перегляду. Відокремлювати окремі шаблони у списку слід за допомогою крапки з комою, «;». Можна використовувати шаблони заміни: «*» і «?». Типовим шаблоном є «*.orig;*.o;*.obj». + Шаблон(и) виключення тек:Теки, назви яких відповідають вказаному у цьому полі шаблону, буде виключено з ієрархії перегляду. Відокремлювати окремі шаблони у списку слід за допомогою крапки з комою, «;». Можна використовувати шаблони заміни: «*» і «?». Типовим шаблоном є «CVS;deps;.svn». + Використовувати файл ігноруванняЗа допомогою цього пункту можна наказати програмі ігнорувати файли і теки, які ігноруватиме також і ваша система керування версіями. Значна кількість з автоматично створених файлів ігноруватиметься CVS. Великою перевагою цього способу є те, що ігнорування виконуватиметься окремо для кожної з тек, за відповідними локальними файлами ігнорування. Докладніший опис таких файлів можна знайти у документації до вашої системи керування версіями. + Показувати приховані файли і текиУ деяких файлових системах певні файли мають атрибут «прихованих». У інших системах файли, назви яких починаються з крапки, «.», вважаються прихованими. За допомогою цього пункту ви може вказати програмі, чи слід включати подібні файли до ієрархії тек. Типово, цей пункт позначено. + Йти за посиланнями на файлиДля посилань на файли: якщо цей пункт не буде позначено, програма порівнюватиме символічні посилання. Якщо пункт буде позначено, порівнюватимуться файли за посиланнями. Типово, цей пункт не буде позначено. + Йти за посиланнями на текиПризначено для посилань на теки. Якщо пункт не буде позначено, програма порівнюватиме символічні посилання. Якщо ж позначити пункт, програма вважатиме символічне посилання звичайною текою і виконуватиме її рекурсивне сканування. Зауважте, що програма не перевірятиме, чи не є посилання «рекурсивним». Отже, якщо, наприклад, у теці міститься посилання на саму теку, виникне нескінченний цикл, після переповнення стека або пам'яті програма аварійно завершить роботу. Типово, пункт не позначено. + Порівняння назв файлів з врахуванням регіструТиповим значенням є false у &Windows; і true у інших операційних системах. + Режим порівняння файлів: + + Двійкове порівнянняЦе типовий режим порівняння файлів. + Повний аналізЗа допомогою цього пункту можна наказати програмі виконувати повний аналіз всіх файлів і показувати статистичні дані (кількість розв'язаних і нерозв'язаних конфліктів, а також кількістю конфліктів у пробілах і конфліктів, не пов'язаних з пробілами) у відповідних стовпчиках. Виконання повного аналізу сповільнить процес порівняння, а також значно уповільнить порівняння файлів, які не є текстовими (вам слід вказати відповідні шаблони виключення файлів). + Довіряти розміру і даті зміни (небезпечно)Якщо ви виконуєте порівняння великих тек за допомогою повільного мережевого з'єднання, ймовірно, швидше порівняти дати зміни файлів і довжину файлів окремо. Але подібне пришвидшення може призвести до певних неточностей. Будьте обережними з використанням цього пункту. Типово, цей пункт не позначено. + Довіряти розміру (небезпечно)Призначення пункту подібне до пункту щодо довіри даті зміни. Програма не виконуватиме справжнього порівняння. Два файла вважатимуться однаковими, якщо вони мають однаковий розмір. Цей пункт буде корисним, якщо під час дії з копіювання файлів не було збережено дату зміни. Будьте обережними з використанням цього пункту. Типово, цей пункт не позначено. + + + Синхронізувати текиВмикає режим синхронізації у випадку, коли ви порівнюєте дві теки і не вказали явним чином теку призначення. У цьому режимі дії з об'єднання буде виконано таким чином, що після порівняння обидві початкові теки міститимуть однакові файли. Типово, цей пункт не буде позначено. + Копіювати новіший, замість об'єднання (небезпечно)Замість об'єднання буде виконано дію з копіювання новішого варіанта на місце старішого. Цей спосіб може призвести до небезпечних наслідків, оскільки у такому випадку неявним чином вважається, що старіший файл не було змінено. Типово, цей пункт не позначено. + Створювати резервні копії файлів (.orig)Якщо файл або цілу теку було замінено іншим або вилучено, до назви його початкової версії буде додано суфікс .orig. Якщо файл резервної копії з суфіксом .orig вже існуватиме, його буде перезаписано без створення резервної копії. Цей пункт стосується звичайного об'єднання окремих файлів, а не лише об'єднання тек. Типово, цей пункт позначено. + + + +Інші функціональні можливості вікна об'єднання тек +Розділений/Повноекранний режим +Зазвичай, перегляд списку об'єднання тек залишатиметься видимим під час порівняння або об'єднання окремого файла. За допомогою вказівника миші ви можете пересунути смужку роздільника, який відокремлює список файлів від областей відмінностей у тексті. Якщо ж такий варіант вас не влаштовує, ви можете зняти позначку з пункту «Розділений перегляд тексту і тек» меню «Тека». Після цього ви можете скористатися пунктом «Перемкнути перегляд» меню «Тека» для перемикання між списком і переглядом відмінностей у тексті, кожен з яких повністю використовуватиме площу вікна програми. + +Порівняння або об'єднання до єдиного файла +Ймовірно, ви надасте перевагу простому подвійному клацанню лівою кнопкою миші на позначці файла для його порівняння. Крім того, ви можете скористатися відповідним пунктом з меню Тека. Ви також можете безпосереднього наказати програмі виконати об'єднання окремого файла: достатньо вибрати цей файл і скористатися пунктом Об'єднати поточний файл з меню Об'єднання. Після зберігання результату стан відповідного пункту у списку буде змінено на «Виконано», програма не виконуватиме повторного об'єднання, якщо ви накажете їй виконати об'єднання цілих тек. Але зауважте, що ці дані про стан буде втрачено, якщо ви накажете програмі повторно виконати сканування тек: меню Тека, пункт Пересканувати + +Порівняння і об'єднання файлів з різними назвами +Іноді у вас виникатиме потреба у порівнянні або об'єднанні файлів з різними назвами (наприклад поточного файла і його резервної копії у цій же теці). Оберіть потрібний файл натисканням піктограми на стовпчику A, B або C. Перший з файлів, вибраних у такий спосіб буде позначено як A, другий і третій — B і C, незалежно від стовпчика, у якому їх було відкрито. Таким чином можна обирати не більше трьох файлів. Скористайтеся пунктом Порівняти явно вибрані файли або Об'єднати явно вибрані файли з меню Тека. Для зручності ці пункти меню є і у контекстному меню кожного з файлів. Викликати контекстне меню можна за допомогою наведення вказівника миші на позначку файла з наступним клацанням правою кнопкою миші. Порівняння або об'єднання файлів відбувається у одному вікні. Якщо цим методом скористатися для тек, програма відкриє нове вікно. + +
+ + +Різноманітні питання + +Прозорість у роботі з мережею через використання KIO +Підлеглі засоби KIO +У бібліотеці KIO для Frameworks передбачено можливість прозорої роботи з мережею за допомогою підлеглих засобів вводу-виводу (KIO-slave). &kdiff3; використовує ці засоби для читання вхідних файлів і для сканування тек. Це означає, що ви можете вказувати файли і теки, що зберігаються локально або на віддалених комп'ютерах, зазначенням їх адреси URL. Приклад: +kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp + kdiff3 tar:/home/hacker/archive.tar.gz/каталог ./каталог + + +Перший рядок призначено для порівняння локального файла з файлом, що зберігається на сервері &FTP;. Другий рядок призначено для порівняння теки з архівом локальної теки. Серед інших цікавих підпорядкованих засобів вводу-виводу: + +Файли з WWW (http:), +Файли з &FTP; (ftp:), +Шифроване передавання файлів (fish:, sftp:), +Ресурси &Windows; (smb:), +Локальні файли (file:), + +Серед інших можливостей, які, ймовірно, є менш корисними: + +Сторінки Man (man:), +Сторінки Info (info:), + + + +Як записувати адреси &URL; +Синтаксис адрес &URL; відрізняється від синтаксису шляхів локальних файлів і тек. Слід брати до уваги такі особливості: + +Шлях може бути відносним і містити позначення тек «.» або «..». Адреси ж &URL; завжди слід вказувати абсолютними, використовувати подібні позначення ієрархії тек у адресах не можна. Спеціальні символи слід записувати «екранованими». («#»->«%23», пробіл->«%20» тощо) Наприклад, файл з назвою «/#foo#» має адресу URL «file:/%23foo%23». Якщо адреси URL не працюють у очікуваний спосіб, спробуйте спочатку відкрити сторінки за цими адресами у &konqueror;. + + + + +Можливості підпорядкованих засобів вводу-виводу (KIO-Slave) +Прозорість роботи з мережею має певні недоліки: не всі ресурси мають однакові можливості. Іноді причиною цього є файлова система на сервері, іноді — протокол. Ось короткий список обмежень: + +Іноді відсутня підтримка посилань. Іноді програма не може визначити, куди вказує посилання: на файл чи на теку; програма завжди припускає, що на файл. (ftp:, sftp:). Програма не завжди може визначити розмір файла. Обмежена підтримка роботи з правами доступу. У програмі не передбачено можливості зміни прав доступу або часу зміни таких файлів, отже права доступу копії можуть відрізнятися від початкового файла (див. пункт Довіряти розміру (не безпечно)). Зміна прав доступу або часу зміни можлива лише для локальних файлів. + + + + + +Користування &kdiff3; як модулем KPart +&kdiff3; є модулем KPart. У поточній версії реалізовано інтерфейс KParts::ReadOnlyPart. Основним його призначенням є перегляд відмінностей у KDevelop. KDevelop завжди спочатку запускає вбудований засіб перегляду відмінностей. Щоб викликати &kdiff3;, наведіть вказівник миші на вікно перегляду відмінностей, клацніть правою кнопкою миші і виберіть у контекстному меню пункт Показати у KDiff3Part. Зазвичай, &kdiff3; потрібні повні вхідні дані двох файлів. Якщо використовується модуль, &kdiff3; припускатиме, що вхідним файлом є файл латки в уніфікованому форматі. Далі &kdiff3; отримає початкові назви файлів з файла латки. Програма повинна мати доступ до принаймні одного з цих файлів. Потім &kdiff3; викличе програму patch для відтворення другого файла. У &dolphin; ви можете вибрати файл латки і скористатися пунктом контекстного меню Відкрити за допомогою KDiff3. Варто зауважити, що це не спрацює, якщо немає доступу до жодного з початкових файлів, і не працюватиме як слід, якщо початкові файли було змінено з часу створення файла латки. У режимі модуля &kdiff3; надає доступ лише до порівняння двох файлів і показує дуже маленьку панель інструментів і меню. У цьому режимі не можна скористатися порівнянням тек та об'єднанням файлів. + + + +Використання &kdiff3; як інструмента перегляду різниць та об'єднання &git; +&kdiff3; можна використовувати як інструмент перегляду різниць та об'єднання гілок у &git;. +Достатньо додати вказані нижче рядки до вашого файла gitconfig. +[diff] + tool = kdiff3 +[difftool "kdiff3"] + path = <шлях до виконуваного файла kdiff3 у вашій системі> +[difftool] + prompt = false + keepBackup = false + trustExitCode = false +[merge] + tool = kdiff3 +[mergetool] + prompt = false + keepBackup = false + keepTemporaries = false +[mergetool "kdiff3"] + path = <шлях до виконуваного файла kdiff3 у вашій системі +> + +Для перегляду відмінностей між двома внесками скористайтеся такою командою: git difftool перший_хеш другий_хеш --tool=kdiff3 --cc якийсь_файл_у_ієрархії_git +Щоб об'єднати гілку за допомогою &kdiff3; скористайтеся командою git merge назва_гілки && git mergetool --tool=kdiff3 +Після розв'язування конфліктів у звичайний спосіб достатньо просто записати зміни до сховища, щоб досягти мети. + + + + +Запитання і відповіді +&reporting.bugs; &updating.documentation; + +Чому програму названо «&kdiff3;»? Вже існували інструменти з назвами KDiff і KDiff2 (тепер називається &kompare;). Крім того, &kdiff3; має означати, що програма може виконувати об'єднання подібно до інструменту diff3 зі збірки інструментів Diff. + +Чому автор випустив програму з ліцензією GPL? Автор почав користуватися GPL-програмами дуже давно і багато чому навчився, вивчаючи вихідні коди інших програм. Отже, він хотів би сказати «Дякую!» всім програмістам, які самі пишуть програми під цією ліцензією або мають намір їх написати. + +Немає деяких кнопок і функцій. Що сталося? Ви зібрали програму з початкових кодів, але, ймовірно, не вказали належного префікса для встановлення. За типових умов програму буде встановлено до /usr/local, але після цього система не зможе знайти файл ресурсів інтерфейсу користувача (тобто kdiff3ui.rc). Докладніші відомості щодо правильного префікса наведено у файлі README. + +Часто рядки, які є подібними, але не однаковими, програма показує поряд один з одним, але іноді вона цього не робить. Чому? Спочатку, рядки, які відрізняються лише кількістю пробілів, вважатимуться «рівними», якщо ж у рядку буде знайдено хоча б один відмінний непробільний символ, вони вважатимуться «різними». Якщо однакові рядки розташовано поруч один з одним, насправді це випадковість, але, на щастя, ця випадковість трапляється досить часто. Див/ також довідку з порівняння вручну. + +Чому слід розв'язати всі конфлікти, перш ніж програма зможе зберегти результат об'єднання? Редактор запам'ятовує розташування початку і кінця кожного з однакових і різних фрагментів тексту у вікні результатів об'єднання. Це потрібно для того, щоб ви мали можливість вирішувати конфлікти вручну простим вибором джерела натисканням кнопки джерела (A, B або C). Дані щодо розташування буде втрачено після завершення роботи програми, а створення спеціального формату файлів, який би підтримував зберігання і відновлення всіх потрібних даних, є занадто складним завданням. + +Як мені синхронізувати перегляди відмінностей і об'єднання так, щоб у всіх переглядах було показано один фрагмент тексту? Натисніть стовпчик резюме, розташований ліворуч від тексту. (Див. також тут.) + +Чому у редакторі вікна об'єднання результатів не передбачено можливості скасування дій? А навіщо? Ви завжди можете відновити версію з одного з джерел (A, B або C) натисканням відповідної кнопки. Крім того, для значного редагування файлів краще скористатися спеціалізованим редактором. + +Після вилучення певного фрагмента тексту несподівано з'явився напис «<Немає рядка джерела>», який неможливо вилучити. Що це означає і як мені вилучити напис? Редактор запам'ятовує розташування початку і кінця кожного з однакових і різних фрагментів тексту у вікні результатів об'єднання. «<Немає рядка джерела>» означає, що у відповідному фрагментів не залишилося нічого, навіть символу нового рядка. Подібна ситуаціям може виникнути або під час автоматичного об'єднання або під час редагування. Ніякої проблеми у появі відповідного рядка немає, оскільки його не буде у файлі, який буде збережено програмою. Якщо ви бажаєте повернути початковий вміст фрагмента, просто виберіть цей фрагмент за допомогою стовпчика резюме і натисніть відповідну кнопку джерела з належним вмістом (A/B або C). + +Чому у &kdiff3; не підтримується підсвічування синтаксичних конструкцій? &kdiff3; вже використовує значну кількість кольорів для підсвічування відмінностей. Додаткове підсвічування лише заплутає перегляд. Для такого підсвічування скористайтеся іншим редактором. + +Чи можна скористатися &kdiff3; для порівння файлів OpenOffice.org, &Microsoft; Word, &Microsoft; Excel, &PDF; тощо? Хоча &kdiff3; може аналізувати файли будь-яких типів, у таких випадках результат буде не зовсім тим, на який ви очікували. &kdiff3; було створено для порівняння суто текстових файлів. LibreOffice, &Microsoft; Word, &Microsoft; Excel тощо зберігають у файлах багато даних щодо шрифтів, зображень, сторінок, кольорів тощо, про які &kdiff3; нічого не відомо. Отже &kdiff3; покаже вам вміст відповідного файл так, наче це простий текст, але у такому випадку текст може стати непридатними для читання або, принаймні, виглядатиме досить дивно. Оскільки більшість сучасних програм зберігають вміст у форматі &XML;, ви можете виконати читання подібних файлів як файлів зі звичайним текстом. Якщо зміни не дуже значні, &kdiff3; зможе допомогти вам у них розібратися. Найкращим розв'язанням цієї проблеми, якщо ви бажаєте порівняти лише текст (без вбудованих об'єктів, на зразок зображень), буде таке: скористайтеся пунктами Вибрати все і Копіювати меню відповідної програми, щоб скопіювати весь потрібний текст до буфера обміну даними, а потім вставте у &kdiff3; відповідний текст до будь-якої з областей порівняння (див. також Вибір, копіювання і вставка.) + +Куди подівся варіант показу тек Показати лише відмінності? Тепер у меню Тека декілька варіантів показу. Якщо ви знімете позначку з пункту Показати однакові файли, ви отримаєте той варіант, який раніше можна було створити позначенням пункту Показати лише відмінності. + +Як вибрати значний фрагмент даних у вікні вхідних даних відмінностей, адже гортання триває занадто довго? Розпочніть вибір у звичайний спосіб (натисніть і утримуйте ліву кнопку миші). Після цього скористайтеся навігаційними клавішами (тобто клавішами на зразок &PgUp;, &PgDn;), одночасно утримуючи натиснутою ліву кнопку миші. (Див. також Вибір, копіювання і вставка.) + +Тут досить багато відомостей, але немає відповіді на моє питання. Будь ласка, надішліть ваше питання автору. Він цінує кожен коментар користувача. + + + + + + +Подяки і ліцензія + +&kdiff3; — інструмент для порівняння і об'єднання файлів та тек +Авторські права на програму належать Joachim Eibl joachim.eibl at gmx.de, ©2002-2007 +Декілька чудових ідей та звітів про помилки було надіслано колегами-програмістами та багатьма людьми з великої всесвітньої мережі. Дякую вам! + +Авторські права на документацію © 2002-2007 Joachim Eibl joachim.eibl at gmx.de + +Авторські права на документацію належать Michael Reeves reeves.87 at gmail.com, 2017-2019 + +Переклад українською: Юрій Чорноіван yurchor@ukr.net +&underFDL; &underGPL; + +&documentation.index; +
+ + diff --git a/po/uk/docs/kdiff3/man-kdiff3.1.docbook b/po/uk/docs/kdiff3/man-kdiff3.1.docbook new file mode 100644 index 0000000..058e360 --- /dev/null +++ b/po/uk/docs/kdiff3/man-kdiff3.1.docbook @@ -0,0 +1,451 @@ + + +]> + + + +Інструкція користувача KDiff3 +BurkhardLueck Сторінка підручника з KDiff3. &Burkhard.Lueck.mail; +22 лютого 2019 року +kdiff3 1.9 + + + +kdiff3 +1 + + + +kdiff3 +Інструмент для порівняння і злиття файлів і тек + + + +kdiff3 файл файл файл псевдонім1 псевдонім2 псевдонім3 псевдонім рядок файл + + + +Опис +Порівнює два або три вхідних файли або теки. + + + + +Параметри + + + +Ігнорується (Визначається користувачем). + + + + +Ігнорується (Визначається користувачем). + + + + +Ігнорується (Визначається користувачем). + + + + +Ігнорується (Визначається користувачем). + + + + +Об'єднати вивід. + + + + файл +Явно вказаний файл-основа. Для сумісності з деякими інструментами. + + + + файл +Файл виведення. Неявним чином використовує -m. Приклад: -o newfile.txt + + + + файл +Файл виводу, ще раз. (Для сумісності з деякими інструментами.) + + + + +Без графічного інтерфейсу, якщо всі конфлікти розв’язуються автоматично. (Потрібно: файл) + + + + +Ігнорувати --auto і завжди показувати графічний інтерфейс. + + + + псевдонім1 +Заміна видимої назви для вхідного файла 1 (основи). + + + + псевдонім2 +Заміна видимої назви для вхідного файла 2. + + + + псевдонім3 +Заміна видимої назви для вхідного файла 3. + + + + псевдонім +Альтернативна заміна видимої назви. Вкажіть один раз для кожного набору вхідних даних. + + + + рядок +Перевизначити параметр налаштування. Скористайтеся один раз для кожного параметра. Приклад: AutoAdvance=1. + + + + +Показати список параметрів налаштування і поточні значення. + + + + файл +Використовувати інший файл налаштувань.. + + + + +файл1 для відкриття (основний, якщо не вказано інший за ) + + + + +файл2 для відкриття + + + + +файл3 для відкриття + + + + + + + +Прочитайте також + +Із докладнішою документацією з користування можна ознайомитися за допомогою команди help:/kdiff3 (або вкажіть цю адресу у &konqueror;, або віддайте команду khelpcenter help:/kdiff3). +kf5options(7) +qt5options(7) + + + + +Автори +Цю сторінку підручника написано &Burkhard.Lueck; &Burkhard.Lueck.mail;. + + + diff --git a/po/uk/kdiff3.po b/po/uk/kdiff3.po new file mode 100644 index 0000000..ecbd97d --- /dev/null +++ b/po/uk/kdiff3.po @@ -0,0 +1,3590 @@ +# Translation of kdiff3.po to Ukrainian +# Copyright (C) 2006-2020 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Ivan Petrouchtchak , 2006, 2008. +# Yuri Chornoivan , 2008, 2009, 2010, 2011, 2013, 2018, 2019, 2020, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2021-02-15 22:58+0200\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.11.70\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" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "о. Іван Петрущак,Юрій Чорноіван" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "fr.ivan@ukrainian-orthodox.org,yurchor@ukr.net" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "Отримання стану файла: %1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "Читання файла: %1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "Запис файла: %1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "Не вистачає пам'яті" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "Створення теки: %1." + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "Вилучення теки: %1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "Вилучення файла: %1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "Створення символічного посилання: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "Перейменування файла: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "Копіювання файла: %1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "Читання теки: %1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "Побудова списку теки: %1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"Помилка, пов'язана з втратою даних:\n" +"Якщо цю помилку можна відтворити, зверніться до автора програми.\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "Критична внутрішня помилка" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "Критична внутрішня помилка." + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "Критична внутрішня помилка: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "Файл %1: рядок %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "Файл %1: рядок недоступний" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "Кодування:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "Стиль кінців рядка:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (Основний)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "Кодування: %1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "Стиль кінців рядка: %1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "Верхній рядок" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "Кінець" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "Відкрити файл" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Юнікод, 8 бітів" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "Інше" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "Копіювати A до B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "Копіювати B до A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "Вилучити A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "Вилучити B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "Вилучити A і B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "Об'єднати у A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "Об'єднати у B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "Об'єднати у A і B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "Вилучити (якщо існує)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "Об'єднати" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "Об'єднати (вручну)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "Помилка: Конфлікт типів файлів" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "Помилка: змінено і вилучено" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "Помилка: Дати однакові, а файли відрізняються." + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "Виконано" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "Помилка" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "Пропущено." + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "Не збережено." + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "Виконання…" + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "Реалізувати." + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "Назва" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "Дія" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "Стан" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "Не розв'язано" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "Розв'язано" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "Не-білий" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "Білий" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "" +"Зараз ви виконуєте об'єднання тек. Ви впевнені, що бажаєте перервати " +"об'єднання і пересканувати теку?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "Попередження" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "Пересканувати" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "Продовжити об'єднання" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "Помилка відкриття тек:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "Теки А «%1» не існує або це не тека.\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "Теки В «%1» не існує або це не тека.\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "Тека С «%1» не існує або це не тека.\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "Помилка відкриття теки" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"Тека призначення має відрізнятися від A або B, якщо об'єднуються ієрархічні " +"теки.\n" +"Перевірте ще раз, перш ніж продовжувати." + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "Попередження про параметри" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "Сканування тек…" + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "Читання теки A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "Читання теки B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "Читання теки C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "Деякі підтеки не придатні для читання у" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "Перевірте права доступу до підтек." + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "Готово." + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"Стан порівняння тек\n" +"\n" +"Кількість підтек: %1\n" +"Кількість однакових файлів: %2\n" +"Кількість різних файлів: %3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "Кількість об'єднань вручну: %1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "Це торкнеться всіх операцій об'єднання." + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "Зміна всіх операцій об'єднання" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"Обробка %1 з %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "Деякі з файлів не вдалося обробити." + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "Перериваємо обробку через надмірну кількість помилок." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "Зараз ця операція неможлива." + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "Операція неможлива" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "Під час копіювання сталася помилка." + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "Помилка об'єднання" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "Невідома операція об'єднання. (Цього не мало статися!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "Невідома операція об'єднання." + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"Зараз розпочнеться об'єднання.\n" +"\n" +"Виберіть «Зробити це», якщо ви прочитали настанови і знаєте, що саме " +"робите.\n" +"Виберіть «Імітувати це», щоб побачити результати дії.\n" +"\n" +"Зауважте, що ця програма знаходиться у стані тестування і розробники НЕ " +"МОЖУТЬ ГАРАНТУВАТИ нічого! Зробіть резервну копію важливих даних!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "Запуск об'єднання" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "Зробити" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "Симулювати" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" +"Підсвічений елемент має відмінний тип у різних теках. Виберіть потрібну дію." + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "Дати змін файлів однакові, але файли — різні. Виберіть дію." + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"Підсвічений елемент було змінено у одному з тек і вилучено у іншому. Оберіть " +"належну дію." + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "Ця дія зараз неможлива, оскільки виконується об'єднання тек." + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"На останньому кроці сталася помилка.\n" +"Бажаєте продовжити з елемента, що викликав помилку чи бажаєте пропустити цей " +"елемент?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "Продовжити об'єднання після помилки" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "Продовжити з останнього елемента" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "Пропустити елемент" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "Операцію об'єднання завершено." + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "Об'єднання завершено" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "" +"Імітацію об'єднання завершено: перевірте, чи згодні ви з запропонованими " +"операціями." + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "" +"Сталася помилка. Натисніть кнопку «Гаразд», щоб побачити докладнішу " +"інформацію." + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "Помилка: під час вилучення %1: невдала спроба створення резерву." + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "рекурсивно вилучити теку( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "delete( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" +"Помилка: невдача під час спроби виконання дії delete для теки на етапі " +"читання теки." + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "Помилка: невдала спроба виконати rmdir( %1 )." + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "Помилка: дія вилучення зазнала невдачі." + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "manual merge( %1, %2, %3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" +" Зауваження: Після завершення об'єднання вручу користувач може " +"продовжити роботу натисканням F7." + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" +"Помилка: невдала спроба copy( %1 -> %2 ). Неможливо вилучити існуючий файл " +"призначення." + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "copyLink( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "" +"Помилка: невдала спроба copyLink: віддалені посилання ще не підтримуються." + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "Помилка: copyLink зазнала невдачі." + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "copy( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" +"Помилка під час rename( %1 -> %2 ): Не вдалося вилучити існуюче призначення." + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "rename( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "Помилка: Перейменування зазнало невдачі." + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" +"Помилка під час виконання makeDir %1. Не вдалося вилучити існуючий файл." + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "makeDir( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "Помилка створення теки." + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "Призн." + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "Тека" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "Тип" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "Розмір" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "Атриб." + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "Час останньої зміни" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "Призначення посилання" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "Файл" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-Посилання" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "не доступне" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (Призн.): " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (Основа): " + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (Призн.): " + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (Призн.): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "Призн.:" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "Зберегти режим об'єднання тек як…" + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "Почати/Продовжити об'єднання тек" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "Виконати операцію для поточного елемента" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "Порівняти вибраний файл" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "Об'єднати поточний файл" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" +"Об'єднати\n" +"файл" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "Згорнути всі підтеки" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "Розгорнути всі підтеки" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "Вибрати A для списку всіх елементів" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "Вибрати B для списку всіх елементів" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "Вибрати C для списку всіх елементів" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "Операція автовибору для всіх елементів" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "Нічого не робити з усіма елементами" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "Показувати однакові файли" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"Однакові\n" +"файли" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "Показувати різні файли" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "Показувати файли лише у A" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"Файли\n" +"лише у A" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "Показувати файли лише у B" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"Файли\n" +"лише у B" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "Показувати файли лише у C" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"Файли\n" +"лише у C" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "Порівняти явно вибрані файли" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "Об'єднати явно вибрані файли" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "Нічого не робити" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "Вилучити A і B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "Об'єднати у A і B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "Неможливо визначити повну адресу. Не вказано батьківської теки." + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "Не вдалося прочитати файл: %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "Помилка створення тимчасової копії %1." + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "Помилка відкриття %1. %2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "Помилка читання з %1. %2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"Під час спроби резервного копіювання, не вдалося вилучити стару резервну " +"копію.\n" +"Назва файла: %1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"Під час спроби резервного копіювання, не вдалося перейменування. \n" +"Назва файлів: %1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "Поточне налаштування:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "Помилковий параметр налаштування:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "Використано параметр --auto, але не вказано файла виводу." + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "Під час порівняння тек параметр --auto проігноровано." + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "Помилка збереження." + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "Під час спроби відкриття цих файлів сталася помилка:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "Помилка відкриття файла" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "Відкриває документи для порівняння…" + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "Перезавантажити" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "Зберігає результат об'єднання. Всі конфлікти слід розв'язати!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "Зберігає поточний документ як…" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "Показати розбіжності" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "Закриває програму" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "Вирізує вибране та кладе його у кишеню" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "Копіює вибране до кишені" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "Вставляє вміст кишені в поточну позицію" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "Вибрати все у поточному вікні" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "Шукати рядок" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "Шукати знову рядок" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "Вмикає/вимикає рядок стану" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "Налаштувати KDiff3…" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "Перейти до поточної дельти" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"Поточна\n" +"дельта" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "Перейти до першої дельти" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"Перша\n" +"дельта" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "Перейти до останньої дельти" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"Остання\n" +"дельта" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(Пропускає різниці у пробілах, якщо вимкнено «Показувати пробіли».)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" +"(Не пропускати різниці у пробілах, навіть якщо вимкнено параметр «Показувати " +"пробіли».)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "Перейти до попередньої дельти" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"Попередня\n" +"дельта" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "Перейти до наступної дельти" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"Наступна\n" +"дельта" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "Перейти до попереднього конфлікту" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"Попередній\n" +"конфлікт" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "Перейти до наступного конфлікту" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"Наступний\n" +"конфлікт" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "Перейти до попереднього нерозв'язаного конфлікту" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"Попередній\n" +"нерозв'язаний" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "Перейти до наступного нерозв'язаного конфлікту" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"Наступний\n" +"нерозв'язаний" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "Виберіть рядки з A" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"Вибрати\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "Вибрати рядки з B" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"Вибрати\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "Вибрати рядки з C" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"Вибрати\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "Автоматично перейти до наступного конфлікту за визначення джерела" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"Автоматично\n" +"наступний" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "Показувати символи пробілів і табуляцій" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"Символи-\n" +"пробіли" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "Показувати пробіли" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"Пробіли-\n" +"дельти" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "Показувати номери рядків" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" +"Номери\n" +"рядків" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "Автоматично розв'язувати прості конфлікти" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "Застосувати різницю до конфліктів" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "Запустити автооб'єднання за формальними виразами" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "Автоматично розв'язувати конфлікти у журналі" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "Розділити різницю на вибраному" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "Об'єднати вибрані різниці" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "Показати вікно A" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "Показати вікно B" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "Показати вікно C" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "Звичайний огляд" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "Перегляд A з B" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "Перегляд A з C Overview" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "Перегляд B з C" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "Перенесення рядків у вікнах різниці" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "Додати вирівнювання різниці вручну" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "Очистити всі вирівнювання різниці вручну" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "Фокус до наступного вікна" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "Фокус на попереднє вікно" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "Перемкнути орієнтацію відокремлення" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "Розділений перегляд тексту і тек" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "Перемкнутися між переглядом тексту і тек" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "Результат об'єднання не збережено." + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "Зберегти і вийти" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "Вийти без збереження" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "Помилка під час збереження результатів об'єднання." + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "" +"Зараз ви виконуєте об'єднання тек. Ви впевнені, що бажаєте перервати його?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "Збереження файла…" + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "Файл зберігається з новою назвою…" + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "Зберегти як…" + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "Можливість друку не реалізовано." + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "Друк…" + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "Друкуємо сторінку %1 з %2" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (Вибір)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "Друк завершено." + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "Друк перервано." + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "Вихід…" + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "Перемикання пенала…" + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "Перемикання рядка стану…" + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "Модуль KDiff3" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "KPart для показу зображень SVG" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "© Aurélien Gâteau , 2007" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "Налаштувати KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"Не вдалося ініціалізувати додатковий модуль KDiff3.\n" +"Зазвичай, це є наслідком проблем зі встановленням. Будь ласка, прочитайте " +"файл README у пакунку джерела, щоб дізнатися більше." + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "&Файл" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "&Тека" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "Операція об'єднання для поточного елемента" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "Операція синхронізації для поточного елемента" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "П&ересування" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "D&iffview" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "О&б'єднати" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "&Вікно" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "Головний пенал" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "Ігнорується (Визначається користувачем)." + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64-бітова)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32-бітова)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "Інструмент для порівняння і злиття файлів і тек" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" +"© Joachim Eibl, 2002–2014. © Michael Reeves, 2017, портування на KF5/Qt5" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "Об'єднати вивід." + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "Явно вказаний файл-основа. Для сумісності з деякими інструментами." + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "Файл виводу. У разі наявності -m. Наприклад: -o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "Файл виводу, ще раз. (Для сумісності з деякими інструментами.)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"Без графічного інтерфейсу, якщо всі конфлікти розв'язуються автоматично. " +"(Потрібно: -o файл)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "Ігнорувати --auto і завжди показувати графічний інтерфейс." + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "Проігноровано." + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "Заміна видимої назви для вхідного файла 1 (основи)." + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "Заміна видимої назви для вхідного файла 2." + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "Заміна видимої назви для вхідного файла 3." + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" +"Альтернативна заміна видимої назви. Вкажіть один раз для кожного набору " +"вхідних даних." + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"Перевизначити параметр налаштування. Скористайтеся один раз для кожного " +"параметра. Наприклад: --cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "Показати список параметрів налаштування і поточні значення." + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "Використовувати інший файл налаштувань.." + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "файл1 для відкриття (основний, якщо не вказано інший за --base)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "файл2 для відкриття" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "файл3 для відкриття" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "Див. kdiff3 --help, щоб ознайомитися із підтримуваними параметрами." + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "Неможливо порівняти незвичайний файл зі звичайним файлом." + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "Суміш посилань і звичайних файлів." + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "Посилання: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "Розмір. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "Дата і розмір: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "Порівняння файла…" + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "Вибрати A всюди" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "Вибрати B всюди" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "Вибрати C всюди" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "Вибрати A для всіх нерозв'язаних конфліктів" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "Вибрати B для всіх нерозв'язаних конфліктів" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "Вибрати C для всіх нерозв'язаних конфліктів" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "Вибрати A для всіх нерозв'язаних конфліктів пробілів" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "Вибрати B для всіх нерозв'язаних конфліктів пробілів" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "Вибрати C для всіх нерозв'язаних конфліктів пробілів" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "Кількість ще нерозв'язаних конфліктів: %1 (з яких %2 пробіли)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"Вивід було змінено.\n" +"Якщо ви продовжите, зміни буде втрачено." + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "Всі вхідні файли однакові." + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "Всі вхідні файли містять однаковий текст." + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "Файли %1 і %2 двійково однакові.\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "Текст файлів %1 і %2 однаковий.\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"Загальна кількість конфліктів: %1\n" +"Кількість автоматично розв'язаних конфліктів: %2\n" +"Кількість нерозв'язаних конфліктів: %3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "Конфлікти" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<Немає рядка джерела>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<Конфлікт об'єднання (Лише пробіл)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<Конфлікт об'єднання>" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"Розв'язано не всі конфлікти.\n" +"Файл не збережено." + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "Залишилось конфліктів" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"Виник конфлікт, пов'язаний з різними стилями завершення рядків. Будь ласка, " +"оберіть потрібний стиль вручну.\n" +"Файл не було збережено." + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"Помилка створення резервної копії. Файл не збережено." + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "Помилка збереження файла" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "Помилка при записуванні." + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "Виведення:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[Змінено]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "Кодування для збереження:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "Конфлікт" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "Кодек з A: %1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "Кодек з B: %1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "Кодек з C: %1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "Діалогове вікно" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (Основний):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "Вивід (не обов'язковий):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "Файл…" + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "Обміняти/Копіювати назви…" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (додатковий):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "Тека…" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"Запис історії керування версіями складається з декількох рядків.\n" +"Вкажіть формальний вираз для визначення початкового рядка (без вступного " +"коментаря).\n" +"Для групування ключів, які ви бажаєте використати для сортування, " +"скористайтеся дужками.\n" +"Якщо залишити це поле порожнім, KDiff3 припустить, що записи історії " +"відокремлюються порожніми рядками.\n" +"Подробиці можна дізнатися з документації." + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"Кожна пара дужок, які використовуються у формальному виразі, містить\n" +"ключ впорядкування записів історії.\n" +"Вкажіть список ключів (пронумерованих у порядку появи,\n" +"починаючи з 1), з використання роздільника «,» (наприклад «4,5,6,1,2,3,7»).\n" +"Якщо залишити це поле порожнім, сортування не проводитиметься.\n" +"Подробиці можна дізнатися з документації." + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"Формальний вираз для рядків, де KDiff3 має автоматично вибрати одне " +"джерело.\n" +"Якщо рядок з конфліктом відповідає формальному виразу, буде вибрано\n" +"— якщо доступний — C, у іншому випадку — B." + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"Формальний вираз для початку запису історії керування версіями.\n" +"Зазвичай, цей рядок містить ключове слово «$Log$».\n" +"Типове значення: «.*\\$Log.*\\$.*»" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"Тест українських та English символів.\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" +"Змінити шрифт\n" +"зміну шрифту" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"Шрифт: %1, %2, %3\n" +"\n" +"Приклад:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Юнікод" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" +"Змінити це, якщо символи, що не належать до ASCII не відображаються коректно." + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "Налаштувати" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "Шрифт" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "Вихідний шрифт редактора і різниці" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "Шрифт програми" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "Шрифт панелі файлів" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "Колір" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "Параметри кольорів" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "Вікна редактора і різниці:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "Колір тексту:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "Колір тла:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "Колір тла різниці:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "Колір A:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "Колір B:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "Колір C:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "Колір конфліктів:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "Колір тла поточного діапазону:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "Колір тла поточного діапазону різниці:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "Колір для діапазонів різниць вирівняних вручну:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "Перегляд порівняння тек:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "Колір найновішого файла:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" +"Зміна цього кольору буде ефективною після початку нового порівняння тек." + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "Колір найстарішого файла:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "Колір файлів проміжного віку:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "Колір відсутніх файлів:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "Редактор" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "Режим роботи редактора" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "Використовувати пробіли замість табуляції" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"Увімкнено: Натискання клавіші табуляції вставить відповідну кількість " +"пробілів.\n" +"Вимкнено: Буде вставлено символ Tab." + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "Розмір табуляції:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "Автовідступ" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" +"Увімкнено: Відступ попереднього рядка буде використано для наступного.\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "Автоматичне копіювання позначеного" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"Увімкнено: Будь-яка вибрана область копіюється до кишені.\n" +"Вимкнено: Явне проведення копіювання, наприклад за допомогою Ctrl-C." + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "Автовибір" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"Встановлює стиль кінців рядка під час збереження файла.\n" +"DOS/Windows: CR+LF; UNIX: LF; де CR=0D, LF=0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "Diff" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Параметри Diff" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "Ігнорувати числа (вважати пробілами)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"Ігнорувати цифри під час порівняння рядків. (Подібно до ігнорування " +"пробілів.)\n" +"Може допомогти для файлів з числовими даними." + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "Ігнорувати коментарі C/C++ (вважати пробілами)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "Вважати коментарі C/C++ пробілами." + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "Ігнорувати зміни регістру (вважати пробілами)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "Вважати різницю у регістрі змінами у кількості пробілів. («а»<=>«А»)" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "Команда препроцесора:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "Попередня обробка, визначена користувачем. (Подробиці у документації.)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "Команда відповідності рядків препроцесора:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"Цей препроцесор використовується лише для порівняння рядків.\n" +"(Подробиці у документації.)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "Агресивніше (повільніше)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"Вмикає параметр --minimal для зовнішніх різниць.\n" +"Аналіз великих файлів значно уповільнюється." + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "Вирівняти B і C для 3 вхідних файлів" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"Спробувати вирівняти B і C під час порівняння або об'єднання трьох вхідних " +"файлів.\n" +"Не рекомендується для об'єднання, оскільки такі дії можуть його ускладнити.\n" +"(Типово вимкнено.)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "Об'єднання" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "Об'єднати параметри" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "Автоматичне продовження за (у мс):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"У режимі автопродовження результат поточного вибору показується на \n" +"вказаний проміжок часу перед переходом до наступного конфлікту. Діапазон: " +"0-2000 мс" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "Показувати інформаційні вікна" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "Показувати діалогове вікно з відомостями про кількість конфліктів." + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "Типове значення пробілів для об'єднання 2 файлів:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "Вибір вручну" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" +"Дозволити алгоритму об'єднання автоматично вибирати вхідне значення для змін " +"у пробілах." + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "Типове значення пробілів для об'єднання 3 файлів:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "Формальний вираз автоматичного об'єднання" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "Формальний вираз автооб'єднання:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "Запустити автооб'єднання за формальними виразом на початку об'єднання" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" +"Запускати об'єднання для формальних виразів автоматично об'єднання\n" +"одразу після запуску об'єднання.\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "Об'єднання історії керування версіями" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "Початковий формальний вираз історії:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "Початковий формальний вираз елемента історії:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "Впорядкування історії при об'єднанні" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "Впорядкувати історію керування версіями за ключем." + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "Порядок сортування початків записів за ключем:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "Об'єднувати за журналом керування версіями на початку об'єднання" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "Запускати історію керування версіями на початку об'єднання." + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "Макс. кількість записів у історії:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" +"Обрізати після вказаного номера. Вкажіть -1, що визначити нескінченну " +"кількість записів." + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "Перевіряти ваші формальні вирази" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "Безвідносна команда об'єднання:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"Якщо вказано цей параметр, відповідний скрипт буде запущено після\n" +"автоматично об'єднання, якщо не виявлено інших пов'язаних змін.\n" +"Викликають з параметрами: filename1 filename2 filename3" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "Автоматично зберегти і вийти, якщо немає конфліктів" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"Якщо KDiff3 було запущено для об'єднання файлів з командного рядка і всі\n" +"конфлікти можна розв'язати без втручання користувача, автоматично зберегти " +"файли і вийти.\n" +"(Відповідає параметру командного рядка «--auto».)" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "Рекурсивні теки" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "Чи аналізувати підтеки." + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "Шаблони файлів:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Шаблон(и) файлів, які буде проаналізовано. \n" +"Шаблони заміни: «*» і «?»\n" +"Декілька шаблонів слід розділяти символом «;»" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "Шаблон(и) виключення файлів:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Шаблон(и) файлів, які буде виключено з аналізу. \n" +"Шаблони заміни: «*» і «?»\n" +"Декілька шаблонів слід розділяти символом «;»" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "Шаблон(и) виключення тек:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"Шаблон(и) тек, які буде виключено з аналізу. \n" +"Шаблони заміни: «*» і «?»\n" +"Декілька шаблонів слід розділяти символом «;»" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "Використовувати файл ігнорування" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"Розширює шаблон виключення до всього, що ігноруватиметься системою керування " +"версіями.\n" +"Залежить від локальних файлів ігнорування в окремій теці." + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "Показувати приховані файли і теки" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "Знаходить приховані файли і теки." + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "Йти за посиланнями на файли" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"Увімкнено: Порівнювати файли, на які вказує посилання.\n" +"Вимкнено: Порівнювати самі посилання." + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "Йти за посиланнями на теки" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"Увімкнено: Порівнювати теки, на які вказує посилання.\n" +"Вимкнено: Порівнювати самі посилання." + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "Порівняння назв файлів з врахуванням регістру" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"Порівняння тек порівнюватиме файли і теки, якщо їхні назви збігаються.\n" +"Встановіть цей параметр, якщо мають збігатися і регістри літер назв. (Типово " +"вимкнено у Windows, у інших системах увімкнено.)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "Розгортати усі підтеки при завантаженні" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"Увімкнено: розгортати усі підтеки під час пошуку відмінностей між теками.\n" +"Вимкнено: лишати підтеки згорнутими." + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "Пропустити звіт щодо стану тек" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"Увімкнено: не показувати стан порівняння тек.\n" +"Вимкнено: показувати діалогове вікно стану на початку." + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "Режим порівняння файлів" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "Двійкове порівняння" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "Двійкове порівняння кожного файла. (Типове)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "Повний аналіз" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"Провести повний аналіз і показати статистичну інформацію у додаткових " +"стовпчиках.\n" +"(Повільніше за двійкове порівняння, набагато повільніше для двійкових " +"файлів.)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "Довіряти розміру і даті зміни (небезпечно)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"Припускати, що файли з однаковим розміром і часом зміни — однакові.\n" +"Якщо вміст файлів однаковий, але дати зміни різні, вважати файли різними.\n" +"Корисно для великих тек або повільних мереж." + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" +"Довіряти розміру і даті, але використовувати двійкове порівняння за різниці " +"дат (небезпечно)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"Припускати, що файли з однаковим розміром і часом зміни — однакові.\n" +"Якщо розміри однакові, але дати різні, використовувати двійкове порівняння.\n" +"Корисно для великих тек або повільних мереж." + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "Довіряти розміру (небезпечно)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"Припускати, що файли однакові, якщо мають однаковий розмір.\n" +"Корисно для великих тек або повільного зв'язку мережею, коли під час " +"отримання змінюється дата." + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "Синхронізувати теки" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"Пропонує зберігати файли у обох теках, отже,\n" +"по завершенню обидві теки будуть однаковими.\n" +"Працює, лише якщо порівнюються дві теки без визначення призначення." + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "Файли з різницею у пробілах — однакові" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"Якщо файли відрізняються лише пробілами, вважати їх однаковими.\n" +"Цей параметр активний, лише якщо вибрано повний аналіз." + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "Копіювати новіший, замість об'єднання (небезпечно)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"Не заглядати всередину — брати новіший файл.\n" +"(Користуйтеся цим, лише якщо знаєте що робите!)\n" +"Ефективно лише у разі порівняння двох тек." + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "Створювати резервні копії файлів (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" +"Якщо файл буде збережено замість старого файла, старий файл\n" +"буде перейменовано на файл з суфіксом «.orig» замість вилучення." + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "Локалізація" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "Використовувати однакове кодування для всього:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"Увімкнення цього параметра надає змогу змінювати всі кодування зміною лише " +"першого.\n" +"Вимкніть його, якщо потрібні окремі параметри для кожної з частин." + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "Зауваження: локальним кодуванням є «%1»" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "Кодування файла для A:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"Якщо увімкнено Юнікод (UTF-16 або UTF-8) визначатиметься автоматично.\n" +"Якщо файл не у Юнікоді, відбудеться повернення до вибраного кодування.\n" +"(Визначення Юнікоду відбувається за першими байтами файла.)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "Визначати Юнікод автоматично" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "Кодування файла для B:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "Кодування файла для C:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "Кодування файла для об'єднання і збереження:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "Автовибір" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"Якщо параметр увімкнено, використовується кодування з вхідних файлів.\n" +"У неоднозначних випадках користувача буде запитано про кодування для " +"збереження файла." + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "Кодування файлів для файлів препроцесора:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "Мова з записом справа ліворуч" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"Читання деякими мовами відбувається справа ліворуч.\n" +"Цей параметр дозволяє відповідно змінити поведінку переглядача і редактора." + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "Інтеграція" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "Параметри інтеграції" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "Ігнорувати параметри командного рядка:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"Список параметрів командного рядка, які слід ігнорувати, якщо KDiff3 " +"використовується іншими інструментами.\n" +"Декілька значень можна вказати відокремленням їх за допомогою «;»\n" +"Таким чином можна позбутися повідомлень про «Невідомий параметр»." + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "Завершувати роботу за клавішею Escape" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"Швидкий спосіб завершення роботи.\n" +"Для тих, хто звик користуватися клавішею Escape." + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" +"Встановлює типові значення для всіх параметрів. Не лише тих, що у цьому " +"розділі." + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "PreprocessorCmd: " + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "Наступні параметри, які ви обрали, змінять дані:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"Скоріше за все, ця поведінка небажана під час об'єднання.\n" +"Ви бажаєте вимкнути ці параметри ви продовжувати з задіяними параметрами?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "Параметр небезпечний для об'єднання" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "Використовувати ці параметри під час об'єднання" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "Вимкнути небезпечні параметри" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "Завантаження A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "Завантаження A: %1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "Завантаження B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "Завантаження B: %1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "Diff: A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "Linediff: A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "Завантаження C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "Завантаження C: %1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "Diff: A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "Diff: B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "Linediff: B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "Linediff: A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "" +"Всі вхідні файли містять однаковий текст, але не є двійково однаковими." + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "" +"Файли %1 і %2 містять однаковий текст, але не є двійково однаковими. \n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"Деякі з вхідних файлів не є суто текстовими файлами.\n" +"Зауважте, що операцію об'єднання у KDiff3 не призначено для двійкових " +"файлів.\n" +"Продовжуйте, але можливі помилки." + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"Деякі з символів вхідних даних не вдалося перетворити на символи Unicode.\n" +"Ймовірно, вами використано помилковий кодек (наприклад UTF-8 для файлів з " +"даними не у форматі UTF-8).\n" +"Не зберігайте результат, якщо не певні. Відповідальність за наслідки дії " +"лежить лише на вас.\n" +"Файли вхідних даних, яких стосується це зауваження, зберігаються у %1." + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "Перервати" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "Відкриття файлів…" + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "Вирізання вибраного…" + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "Копіювання вибраного до кишені…" + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "Вставлення вмісту кишені…" + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "Перенесення рядків («Скасувати» вимикає перенесення)" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "Обчислюємо максимальну ширину для горизонтальної смужки гортання" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "Зберегти й продовжити" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "Продовжити без збереження" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "Пошук завершено." + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "Пошук завершено" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "Нічого не позначено у жодному з вхідних вікон різниці." + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "Помилка під час додавання вручну діапазону diff" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "&Скасувати" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "Обмін %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "Копія %1->Вивід" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "Обмін %1<->Вивід" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "Налаштувати…" + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "Відкрити теку" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "Виберіть файл виведених даних" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "усі файли (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "Знайти текст:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "З врахуванням регістру" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "Пошук в A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "Пошук в B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "Пошук в C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "Пошук у виводі" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "&Пошук" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "Тестування формальних виразів" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "Приклад рядка автооб'єднання:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" +"Для перевірки автооб'єднання скопіюйте рядок у тому вигляді, у якому він " +"використовується у ваших файлах." + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "Результат пошуку:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "Приклад початкового рядка історії (з початковим коментарем):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"Копіюйте початковий рядок історії, у тому вигляді, як він використовується у " +"ваших файлах,\n" +"разом з початковим коментарем." + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "Порядок ключів сортування історії:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "Приклад початкового рядка запису історії (без початкового коментаря):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"Копіюйте початок рядка запису історії у тому вигляді, як він " +"використовується у ваших файлах,\n" +"але пропустити початковий коментар." + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "Результат ключа впорядкування:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "Знайдено відповідник." + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "Відповідників не знайдено." + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "Кількість лівих і правих дужок у формальному виразі не збігаються." + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "Помилка запису даних кишені у тимчасовий файл." + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "З буфера обміну даними" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 не є звичайним файлом." + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " Тимчасовий файл: %1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"Попередня обробка зазнала невдачі. Перевірте цю команду:\n" +"\n" +" %1\n" +"\n" +"Зараз команду попередньої обробки буде вимкнено." + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "Файл %1 є надто великим для обробки. Пропускаємо його." + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"Команда попередньої обробки відповідних рядків, скоріше за все, зазнала " +"невдачі. Перевірте цю команду.\n" +"\n" +" %1\n" +"\n" +"Команда попередньої обробки відповідних рядків зараз буде вимкнено." + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "Після завершальних лапок мав бути пробіл." + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "Лапки без відповідника." + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "Неочікувані лапки у аргументі." + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "Не вказано програму." \ No newline at end of file diff --git a/po/uk/kdiff3fileitemactionplugin.po b/po/uk/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..34889fd --- /dev/null +++ b/po/uk/kdiff3fileitemactionplugin.po @@ -0,0 +1,104 @@ +# Translation of kdiff3fileitemactionplugin.po to Ukrainian +# Copyright (C) 2011-2019 This_file_is_part_of_KDE +# This file is distributed under the license LGPL version 2.1 or +# version 3 or later versions approved by the membership of KDE e.V. +# +# Yuri Chornoivan , 2011, 2018, 2019, 2021. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3fileitemactionplugin\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2021-02-15 22:58+0200\n" +"Last-Translator: Yuri Chornoivan \n" +"Language-Team: Ukrainian \n" +"Language: uk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 20.11.70\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" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3…" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "Порівняти з %1" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "Об’єднати з %1" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "Зберегти «%1» на потім" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "3-рівневе об’єднання за основою" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "Порівняти з…" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "Спорожнити список" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "Порівняти" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "3-рівневе порівняння" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "Про додаток меню KDiff3…" + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "Додаток дій з пунктами файлів KDiff3: ©Joachim Eibl, 2011\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"За допомогою додатка контекстного меню:\n" +"Для простого порівняння двох вибраних файлів виберіть пункт «Порівняти».\n" +"Якщо інший файл у якомусь іншому місці, «Збережіть» перший файл. У цьому " +"разі він з’явиться у підменю «Порівняти з…». Потім скористайтеся пунктом " +"«Порівняти з» для другого файла.\n" +"Для 3-рівневого об’єднання спочатку «Збережіть» основний файл, потім варіант " +"для об’єднання і оберіть «3-рівневе об’єднання за основою» на іншому " +"варіанті файла, який буде використано як файл призначення об’єднання.\n" +"Те саме стосується і порівняння з об’єднанням тек." + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "Про додаток дій з пунктами файлів KDiff3" \ No newline at end of file diff --git a/po/zh_CN/diff_ext.po b/po/zh_CN/diff_ext.po new file mode 100644 index 0000000..7c2e74a --- /dev/null +++ b/po/zh_CN/diff_ext.po @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: kdeorg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2022-06-25 04:28\n" +"Last-Translator: \n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\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-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /kf5-stable/messages/kdiff3/diff_ext.pot\n" +"X-Crowdin-File-ID: 10290\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "与 %1 进行比较" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "与 %1 进行合并" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "以被比较文件为基础进行三路合并" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "保存“%1”以供日后使用" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "进行比较..." + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "清除列表" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "比较" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "三路比较" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "关于 Diff-Ext" + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" + +#: diff_ext.cpp:325 +#, kde-format +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "本软件可按照 BSD-2-Clause 许可证进行分发。\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "由 Michael Reeves 移植到 Qt5/Kf5\n" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Diff-Ext 的主页: http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, kde-format +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "关于 KDiff3 中的 Diff-Ext (64 位版)" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "比较所选文件" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "将“%1”替换为“%2”" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "保存“%1”以备后用" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "无法启动 KDiff3,请重新安装 KDiff3。" + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "命令" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "命令行" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "专为 KDiff3 打造的 Diff-Ext" \ No newline at end of file diff --git a/po/zh_CN/kdiff3.po b/po/zh_CN/kdiff3.po new file mode 100644 index 0000000..6388b8f --- /dev/null +++ b/po/zh_CN/kdiff3.po @@ -0,0 +1,3508 @@ +# Copyright (C) 2004 Free Software Foundation, Inc. +# +# zhu-zhy , 2004. +# Mai Haohui , 2004. +# Li Ang , 2010. +# Feng Chao , 2010, 2011. +msgid "" +msgstr "" +"Project-Id-Version: kdeorg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2022-06-25 04:28\n" +"Last-Translator: \n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\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-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /kf5-stable/messages/kdiff3/kdiff3.pot\n" +"X-Crowdin-File-ID: 10284\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "KDE 中国, Honghao Li" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "kde-china@kde.org, honghao.li@outlook.jp" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "正在获取文件状态:%1" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "正在读取文件:%1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "正在写入文件:%1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "内存不足" + +#: DefaultFileAccessJobHandler.cpp:198 +#, kde-format +msgid "Making folder: %1" +msgstr "正在创建文件夹:%1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, kde-format +msgid "Removing folder: %1" +msgstr "正在删除文件夹:%1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "正在删除文件:%1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "正在创建符号链接:%1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "正在重命名文件:%1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "正在复制文件:%1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, kde-format +msgid "Reading folder: %1" +msgstr "正在读取文件夹:%1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "正在列出目录:%1" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"数据丢失错误:\n" +"如果您可以复现该错误,请联系软件作者。\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "严重内部错误" + +#: diff.cpp:1555 +#, kde-format +msgid "Severe Internal Error." +msgstr "严重内部错误。" + +#: diff.cpp:1569 +#, kde-format +msgid "Severe Internal Error.: " +msgstr "严重内部错误。: " + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "文件 %1:行 %2" + +#: difftextwindow.cpp:579 +#, kde-format +msgid "File %1: Line not available" +msgstr "文件 %1:行不可用" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "编码:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "行尾格式:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, kde-format +msgid "A (Base)" +msgstr "A (被比较)" + +#: difftextwindow.cpp:1925 +#, kde-format +msgid "Encoding: %1" +msgstr "编码:%1" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, kde-format +msgid "Line end style: %1" +msgstr "行尾格式:%1" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "顶行" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "末行" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, kde-format +msgid "Open File" +msgstr "打开文件" + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "Unicode, 8位" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "其他" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "复制 A 到 B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "复制 B 到 A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "删除 A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "删除 B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "删除 A 和 B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "合并到 A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "合并到 B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "合并到 A 和 B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "删除 (如果存在)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "合并" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "合并 (手动)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "错误:文件类型冲突" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "错误:已更改和删除" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "错误:文件日期相同但内容不同。" + +#: directorymergewindow.cpp:467 +#, kde-format +msgid "Done" +msgstr "已完成" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "错误" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "已跳过。" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "未保存。" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "正在进行..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "待办" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "文件名" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "操作" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "状态" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "未解决" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "已解决" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "非空白" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "空白" + +#: directorymergewindow.cpp:687 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "您正在合并文件夹,确定要放弃合并并重新扫描文件夹吗?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "警告" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "重新扫描" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "继续合并" + +#: directorymergewindow.cpp:843 +#, kde-format +msgid "Opening of folders failed:" +msgstr "无法打开文件夹:" + +#: directorymergewindow.cpp:847 +#, kde-format +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "文件夹 A“%1”不存在或不属于文件夹。\n" + +#: directorymergewindow.cpp:852 +#, kde-format +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "文件夹 B“%1”不存在或不属于文件夹。\n" + +#: directorymergewindow.cpp:857 +#, kde-format +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "文件夹 C“%1”不存在或不属于文件夹。\n" + +#: directorymergewindow.cpp:860 +#, kde-format +msgid "Folder Opening Error" +msgstr "打开文件夹时出错" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" +"A 和 B 不能作为三个文件夹合并的目标文件夹。\n" +"请检查后再试。" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "参数警告" + +#: directorymergewindow.cpp:875 +#, kde-format +msgid "Scanning folders..." +msgstr "正在扫描文件夹..." + +#: directorymergewindow.cpp:901 +#, kde-format +msgid "Reading Folder A" +msgstr "正在读取文件夹 A" + +#: directorymergewindow.cpp:910 +#, kde-format +msgid "Reading Folder B" +msgstr "正在读取文件夹 B" + +#: directorymergewindow.cpp:920 +#, kde-format +msgid "Reading Folder C" +msgstr "正在读取文件夹 C" + +#: directorymergewindow.cpp:936 +#, kde-format +msgid "Some subfolders were not readable in" +msgstr "无法读取部分子文件夹" + +#: directorymergewindow.cpp:941 +#, kde-format +msgid "Check the permissions of the subfolders." +msgstr "请检查子文件夹的权限。" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "就绪。" + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" +"文件夹比较状态\n" +"\n" +"子文件夹数:%1\n" +"相同文件数:%2\n" +"不同文件数:%3" + +#: directorymergewindow.cpp:1000 +#, kde-format +msgid "Number of manual merges: %1" +msgstr "手动合并数:%1" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "这将影响所有合并操作。" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "更改所有合并操作" + +#: directorymergewindow.cpp:1335 +#, kde-format +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "" +"正在处理 %1 / %2\n" +"%3" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "无法处理部分文件。" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "由于错误过多,操作已终止。" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "现在不能执行此操作。" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "操作不可行" + +#: directorymergewindow.cpp:1970 +#, kde-format +msgid "An error occurred while copying." +msgstr "复制时发生错误。" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "合并错误" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "未知合并操作。(不应该的程序错误)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "未知合并操作。" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"将开始合并。\n" +"\n" +"如果您已阅读指南并知道您在做什么,选择“执行”。\n" +"选择“模拟”将告诉您将发生什么。\n" +"\n" +"请注意该功能依然处于测试状态,没有任何保证!备份您的重要数据!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "开始合并" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "执行" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "模拟" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "高亮的项目在不同文件夹中有不同的类型,请选择要执行的操作。" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "文件的修改日期相同但内容不同。请选择操作。" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" +"高亮的项目在一个文件夹已中被修改,在另一个文件夹中已被删除。请选择操作。" + +#: directorymergewindow.cpp:2204 +#, kde-format +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "目录合并正在运行,您目前无法执行此操作。" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" +"上一步操作有错误。\n" +"您要继续处理出错的项目还是跳过该项?" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "出错后继续合并" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "从上一项继续" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "跳过该项" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "合并操作完成。" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "合并完成" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "模拟合并完成:核对您是否同意程序给出的操作。" + +#: directorymergewindow.cpp:2410 +#, kde-format +msgid "An error occurred. Press OK to see detailed information." +msgstr "发生错误。单击确定查看详细信息。" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "错误:在删除 %1 时:创建备份失败。" + +#: directorymergewindow.cpp:2450 +#, kde-format +msgid "delete folder recursively( %1 )" +msgstr "递归删除文件夹 ( %1 )" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "删除( %1 )" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "错误:无法删除文件夹,尝试读取文件夹时出错。" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "错误:删除目录(%1)操作失败。" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "错误:删除操作失败。" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "手动合并( %1,%2,%3 -> %4)" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr " 注意:在手动合并之后用户应该按 F7 继续。" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "错误:复制( %1 -> %2 )失败。删除现存目标失败。" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "复制链接( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "错误:复制链接失败:远程链接尚未支持。" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "错误:复制链接失败。" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "复制( %1 -> %2 )" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "重命名( %1 -> %2 ) 错误:无法删除现存目标。" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "重命名( %1 -> %2 )" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "错误:重命名失败。" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "建立目录 %1 出错。无法删除现存文件。" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "新建文件夹 ( %1 )" + +#: directorymergewindow.cpp:2688 +#, kde-format +msgid "Error while creating folder." +msgstr "创建文件夹时发生错误。" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "目标" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "文件夹" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "类型" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "大小" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "属性" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "最后修改时间" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "链接目标" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "文件" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "-Link" +msgstr "-链接" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "不可用" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A (目标):" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "A: " + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A (被比较):" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B (目标):" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "B: " + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C (目标): " + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "C: " + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "目标: " + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "将文件夹合并状态保存为..." + +#: directorymergewindow.cpp:2955 +#, kde-format +msgid "Start/Continue Folder Merge" +msgstr "开始或继续合并文件夹" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "为当前项运行操作" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "比较所选文件" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "合并当前文件" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "合并文件" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "折叠所有子文件夹" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "展开所有子文件夹" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "选择 A 的全部项目" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "选择 B 的全部项目" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "选择 C 的全部项目" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "为全部项自动选择操作" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "全部项目无操作" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "显示相同文件" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" +"相同\n" +"文件" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "显示不同文件" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "显示只在A中有的文件" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" +"文件\n" +"仅A中" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "显示只在B中有的文件" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" +"文件\n" +"仅B中" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "显示只在C中有的文件" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" +"文件\n" +"仅C中" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "比较所选文件" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "合并所选文件" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "无操作" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "删除 A 和 B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "合并到 A 和 B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "无法确定完整 URL。没有指定父目录。" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, kde-format +msgid "Failed to read file: %1" +msgstr "读取文件失败 %1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "创建 %1 的临时副本失败。" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, kde-format +msgid "Opening %1 failed. %2" +msgstr "打开 %1 失败。%2" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, kde-format +msgid "Error reading from %1. %2" +msgstr "读取 %1 出错。%2" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" +"试图备份时,删除旧备份失败。\n" +"文件名:%1" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" +"试图备份时,重命名失败。\n" +"文件名:%1 -> %2" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "当前配置:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "配置选项错误:" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "已使用选项 --auto ,但没有指定输出文件。" + +#: kdiff3.cpp:411 +#, kde-format +msgid "Option --auto ignored for folder comparison." +msgstr "执行文件夹比较时会忽略选项 --auto。" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "保存失败。" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "打开文件失败:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "打开文件出错" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "打开文件进行比较..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "重新加载" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "保存合并结果。必须先解决全部冲突!" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "保存当前文档为..." + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "打印差异" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "退出应用程序" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "剪切所选部分到剪贴板" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "复制选区到剪贴板" + +#: kdiff3.cpp:570 +#, kde-format +msgid "Pastes the clipboard contents to current position" +msgstr "粘贴剪贴板内容到当前位置" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "当前窗口全选" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "搜索字符串" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "再次搜索该字符串" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "启用/禁用状态栏" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "配置 KDiff3..." + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "转到当前增补" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" +"当前\n" +"增补" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "转到第一个增补" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" +"第一个\n" +"增补" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "转到最后一个增补" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" +"最后\n" +"增补" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "(禁用“显示空白字符”时跳过空白字符差异。)" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "(即使禁用“显示空白字符”,也不会跳过检查空白字符差异。)" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "转到上一个增补" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" +"上一个\n" +"增补" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "转到下一个增补" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" +"下一个\n" +"增补" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "转到前一个冲突" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" +"上一个\n" +"冲突" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "转到下一个冲突" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" +"下一个\n" +"冲突" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "转到上一个未解决的冲突" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" +"上一个\n" +"未解决" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "转到下一个未解决的冲突" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" +"下一个\n" +"未解决" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "从 A 选择行" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" +"选择\n" +"A" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "从 B 选择行" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" +"选择\n" +"B" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "从 C 选择行" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" +"选择\n" +"C" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "选择源内容后自动跳转至下一个未解决冲突" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" +"自动\n" +"下一个" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "显示空格和制表符" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" +"空白\n" +"字符" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "显示空白字符" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" +"空白\n" +"增补" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "显示行号" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "行号" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "自动解决简单冲突" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "设置增补为冲突" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "运行正则表达式自动合并" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "自动解决历史冲突" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "在选择时分割差异" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "合并所选差异" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "显示A窗口" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "显示B窗口" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "显示C窗口" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "标准视图" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "A、B 比较视图" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "A、C 比较视图" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "B、C 比较视图" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "比较窗口自动换行" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "手动添加比较对齐线" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "清除所有手动添加的比较对齐线" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "聚焦下一个窗口" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "聚焦上一个窗口" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "切换分割方向" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "文件夹和文本分割视图" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "切换文件夹和文本视图" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "合并结果未保存。" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "保存并退出" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "退出且不保存" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "保存合并结果失败。" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, kde-format +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "您正在合并文件夹,确定要放弃合并吗?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "正在保存文件..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "用新文件名保存文件..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "另存为..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "打印功能尚未实现" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "正在打印..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "正在打印第 %1 页,共 %2 页" + +#: kdiff3.cpp:996 +#, kde-format +msgid " (Selection)" +msgstr " (选择)" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "打印完成。" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "打印中止。" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "正在退出..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "正在切换工具栏..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "切换状态栏..." + +#: kdiff3_part.cpp:35 +#, kde-format +msgid "KDiff3 Part" +msgstr "KDiff3 Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "显示 SVG 图像的 KPart" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "版权 2007, Aurélien Gâteau " + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "&KDiff3" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "配置 KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" +"无法初始化 KDiff 组件!\n" +"此问题的原因通常为安装错误。详情请阅读源码包内的 README 文件。" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "文件(&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "文件夹(&O)" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "当前项目合并操作" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "当前项目同步操作" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, kde-format +msgid "M&ovement" +msgstr "移动(&M)" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "比较视图(&D)" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, kde-format +msgid "M&erge" +msgstr "合并(&M)" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "窗口(&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "主工具栏" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "已忽略。(用户定义的)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr " (64 位)" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr " (32 位)" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "用于比较、合并文件和文件夹的工具" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "合并输入。" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "明确被比较的文件,用于兼容某些工具。" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "输出文件,隐含了 -m 选项。例如:-o newfile.txt" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "再次输出文件。(为了与某些工具兼容。)" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" +"如果所有冲突都被自动解决了,就不弹出图形用户界面。(同时需要 -o 文件名)" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "忽略 --auto 选项并始终显示图形用户界面。" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "已忽略。" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "替换 (被比较的) 文件 1 的显示名称。" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "替换文件 2 的显示名称。" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "替换文件 3 的显示名称。" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "另一种替换显示名称的方法,每输入一个文件参数就使用一次此选项。" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" +"覆盖配置文件的设置,每一个设置使用一次本选项。例如:--cs \"AutoAdvance=1\"" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "显示当前配置项的列表。" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "使用另外的配置文件。" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "要打开的文件 1 (若未使用 --base 指定,则默认为被比较的文件)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "要打开的文件 2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "要打开的文件 3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "参见 kdiff3 --help 以了解支持的选项。" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "无法将普通文件与非普通文件进行比较。" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "两者为链接与普通文件。" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "链接: " + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "尺寸. " + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "日期和大小: " + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "正在比较文件..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "总是选择 A" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "总是选择 B" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "总是选择 C" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "所有未解决冲突均选择 A" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "所有未解决冲突均选择 B" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "所有未解决冲突均选择 C" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "所有未解决空白字符冲突均选择 A" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "所有未解决空白字符冲突均选择 B" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "所有未解决空白字符冲突均选择 C" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "剩余冲突数:%1(其中 %2 项为空白字符)" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"已修改输出。\n" +"如果您继续您的更改将丢失。" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "全部输入文件二进制数据相同。" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "全部输入文件包含相同文本。" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "文件 %1 和 %2 二进制数据相同。\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "文件 %1 和 %2 文本相同。\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" +"冲突总数:%1\n" +"自动解决冲突数:%2\n" +"未解决冲突数:%3\n" +"%4" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "冲突" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "<此行无源文件中的内容>" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "<合并冲突 (仅空白字符)>" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "<合并冲突>" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" +"尚未解决全部冲突。\n" +"文件未保存。" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "剩余冲突" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" +"有一处换行符冲突,请手动选择一种换行符风格。\n" +"文件未保存。" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" +"\n" +"\n" +"创建备份失败,文件未保存。" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "文件保存错误" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "写入时出错。" + +#: mergeresultwindow.cpp:3095 +#, kde-format +msgid "Output:" +msgstr "输出:" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[已修改]" + +#: mergeresultwindow.cpp:3115 +#, kde-format +msgid "Encoding for saving:" +msgstr "保存所用编码:" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "冲突" + +#: mergeresultwindow.cpp:3247 +#, kde-format +msgid "Codec from A: %1" +msgstr "解码 A:%1" + +#: mergeresultwindow.cpp:3249 +#, kde-format +msgid "Codec from B: %1" +msgstr "解码 B:%1" + +#: mergeresultwindow.cpp:3251 +#, kde-format +msgid "Codec from C: %1" +msgstr "解码 C:%1" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "对话框" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, kde-format +msgid "B:" +msgstr "B:" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "A (被比较):" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, kde-format +msgid "Output (Optional):" +msgstr "输出 (可选):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "文件..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "交换/复制名称..." + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (可选):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "文件夹..." + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" +"版本控制历史记录共由几行组成。\n" +"请手动指定正则表达式来检测首行 (不包括开头的注释)。\n" +"使用圆括号归类您想要用于排序的关键词。\n" +"若留空,KDiff3 会假定使用空行来分割历史记录。\n" +"请参阅文档了解详情。" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" +"历史开始条目的正则表达式中括号对将关键字分组能被用于排序。\n" +"指定关键字列表(使用数字,按出现顺序从1开始)使用 ',' 作为分隔符(例如 " +"\"4,5,6,1,2,3,7\")。\n" +"如果留空则不排序。\n" +"详情参见帮助文档。" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" +"如果有多行正则表达式,KDiff3 会自动选择其中一个。\n" +"当一行冲突匹配到了正则表达式时,如果符合正则表达式,则选择 C,否则选择 B。" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" +"为版本控制历史记录开头使用的正则表达式。\n" +"通常这行会包含关键词“$Log$”。\n" +"默认值:“.*\\$Log.*\\$.*”" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" +"敏捷的棕色狐狸越过了河流\n" +"但小红母鸡颤抖着逃走了。\n" +":-)" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "更改字体" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" +"字体:%1, %2, %3\n" +"\n" +"示例:" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "Unicode" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "如果非 ASCII 字符不能正确显示,请更改此选项。" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "配置" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "字体" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "编辑器和比较输出字体" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "应用程序字体" + +#: optiondialog.cpp:576 +#, kde-format +msgid "File view font" +msgstr "文件视图字体" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "颜色" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "颜色设置" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "编辑器和比较视图:" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "前景色:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "背景色:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "差异背景色:" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "A颜色:" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "B颜色:" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "C颜色:" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "冲突颜色:" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "选区背景色:" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "选区差异背景色:" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "手动对齐差异区域颜色:" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "文件夹比较视图:" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "最新文件颜色:" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "颜色修改将在下次文件夹比较时生效。" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "最旧文件颜色:" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "新旧之间的文件颜色:" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "缺失文件的颜色:" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "编辑" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "编辑器行为" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "空格代替制表符" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" +"启用:按下 tab 键后会产生相应数量的空格。\n" +"禁用:会插入一个制表符。" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "制表符大小:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "自动缩进" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "启用:前一行的缩进会应用到新一行。\n" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "自动复制选区" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" +"开:选择的内容会复制到剪贴板。\n" +"关:执行明确复制操作例如 Ctrl-C 才会复制到剪贴板。" + +#: optiondialog.cpp:823 +#, kde-format +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, kde-format +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "Dos/Windows" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "自动检测" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" +"当已编辑的文件保存时,会使用此设置的换行符。\n" +"DOS/Windows:CR+LF;UNIX:LF;CR为0D,LF为0A" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "差别" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "差异设置" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "忽略数字(作为空白字符处理)" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" +"在行匹配阶段忽略数字字符。(与忽略空白字符相似)\n" +"可能对于比较带数值数据的文件有帮助。" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "忽略 C/C++ 注释 (作为空白字符处理)" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "C/C++ 注释作为空白字符处理。" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "忽略大小写(作为空白字符处理)" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "将大小写差异作为空白字符改动处理。('a'<=>'A')" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "预处理命令:" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "用户定义的预处理。(详情见文档)" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "行匹配预处理命令:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" +"此预处理仅在行匹配时使用。\n" +"(详情参见文档)" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "尽量仔细 (较慢)" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" +"为外部比较程序启用 --minimal 选项。\n" +"大文件的分析会慢得多。" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "3路比较时对齐B和C" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" +"进行3路比较合并时尝试对齐B与C。\n" +"合并时不推荐,因为会导致情况更复杂。\n" +"(默认禁用)" + +#: optiondialog.cpp:933 +#, kde-format +msgctxt "Settings page" +msgid "Merge" +msgstr "合并" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "合并设置" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "自动继续模式延迟 (毫秒):" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" +"在自动继续模式下,当前选择的结果会显示一段时间,然后才会跳转至下一个冲突。\n" +"范围:0 至 2000 毫秒" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "显示信息对话框" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "显示关于冲突数量信息的对话框" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "双文件合并出现空白字符冲突时,默认选择:" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "手动选择" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "仅有空白字符差异时,允许合并算法自动选择其中一个文件的内容。" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "三文件合并出现空白字符冲突时,默认选择:" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "自动合并正则表达式" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "自动合并正则表达式:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "合并开始时运行正则表达式自动合并" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "合并开始时,立即运行自动合并正则表达式。\n" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "版本控制历史合并" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "版本管理历史首行正则表达式:" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "版本管理历史记录首行正则表达式:" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "历史合并排序" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "按照关键字排序版本控制历史记录" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "历史条目开始排序关键字顺序:" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "开始合并时合并版本控制历史" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "开始合并时运行版本控制历史自动合并。" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "最大历史记录数:" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "舍弃指定数量后的记录,指定 -1 则不舍弃记录。" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "测试您的正则表达式" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "无关合并的指令:" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" +"在此项不为空且执行自动合并后,如果没有检测到任何相关的更改,\n" +"这段脚本则会使用“文件名1 文件名2 文件名3”的参数运行。" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "合并无冲突时自动保存并退出" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" +"如果从命令行调用 KDiff3 合并文件并且所有\n" +"冲突都可以自动解决,那么自动保存文件并退出。\n" +"(类似命令行选项\"--auto\")" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "递归文件夹" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "是否分析子文件夹。" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "文件名表达式:" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"要分析的文件名的表达式。\n" +"通配符:'*' 和 '?'\n" +"可以使用分隔符:分号 ';' 来指定多个表达式。" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "排除文件表达式:" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"要排除分析的文件名的表达式。\n" +"通配符:'*' 和 '?'\n" +"可以使用分隔符:分号 ';' 来指定多个表达式。" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "排除文件夹表达式:" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" +"用于将文件夹排除出分析结果的表达式。\n" +"通配符:“*”和“?”\n" +"可以使用分隔符“;”来指定多个表达式。" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "使用忽略文件" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" +"排除任何被版本控制系统忽略的任何文件及文件夹。\n" +"通过本地忽略文件则可排除特定的文件夹。" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "查找隐藏的文件和文件夹" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "查找隐藏的文件和文件夹。" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "跟随文件链接" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" +"启用:比较链接指向的文件。\n" +"禁用:比较链接。" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "追踪文件夹链接" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" +"启用:比较链接指向的文件夹。\n" +"禁用:只比较链接本身。" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "文件名区分大小写" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" +"文件夹比较功能将比较名字相同的文件或文件夹。\n" +"若要区分大小写,则需启用此选项。 (Windows 上默认关闭,其他操作系统默认开启)" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "加载时展开所有子文件夹" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" +"启用:比较目录时展开所有子文件夹。\n" +"禁用:子文件夹保持折叠。" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "跳过文件夹状态报告" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" +"启用:不要显示文件夹比较状态。\n" +"关闭:开始时显示状态对话框。" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "文件比较模式" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "二进制比较" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "用二进制模式比较每个文件。(默认)" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "完全分析" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" +"进行完全分析并且在额外的列里显示统计信息。\n" +"(比二进制模式慢,对于二进制文件该模式更慢。)" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "信任文件大小和修改日期(不安全)" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" +"修改日期和文件长度相同的文件会被视为同一文件。\n" +"相同内容但修改日期不同的文件会被视为不同文件。\n" +"对大文件夹或慢速网络很有帮助。" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "信任文件大小和修改日期,但日期不相同时使用二进制比较(不安全)" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" +"修改日期和文件长度相同的文件会被视为同一文件。\n" +"相同内容但日期不同时,则比较它们的二进制文件。\n" +"对大文件夹或慢速网络很有帮助。" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "信任文件大小(不安全)" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" +"文件长度相同的文件会被视为同一文件。\n" +"对大文件夹或慢速网络 (下载时会改变日期) 很有帮助。" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "同步文件夹" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" +"将文件同时储存在两个文件夹中,\n" +"以使两个文件夹保持一致。\n" +"仅用于未指定目标的双文件夹比较中。" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "忽略空白字符差异" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" +"如果文件只在空白字符上有差异,则认为它们相同。\n" +"仅当选择完全分析时此选项才激活。" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "复制较新的文件而不合并(不安全)" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" +"不比较文件内容,仅选择较新的文件。\n" +"(请在深思熟虑后使用此选项!)\n" +"只在比较两个文件夹时有效。" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "备份文件 (.orig)" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "保存文件会覆盖旧文件时,旧文件将被附加“.orig”扩展名而不是被删除。" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "区域设置" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "所有内容使用同一编码:" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" +"启用此选项将使得只更改第一个编码设置即可更改全部文件的编码。\n" +"如果需要为每个文件设置不同的编码,请禁用此选项。" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "注意:本地编码为“%1”" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "A 的文字编码:" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" +"如果启用,将会检测 Unicode (UTF-16 或 UTF-8) 编码。\n" +"如果文件非 Unicode 编码,将使用选择的编码作为后备。\n" +"(Unicode 检测取决于文件的第一个字节)" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "自动检测 Unicode" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "B 的文字编码:" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "C 的文字编码:" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "合并输出和保存的文件编码:" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "自动选择" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" +"如果启用,使用输入文件的文字编码。\n" +"在模棱两可的情况下,对话框将询问用户文件保存编码。" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "预处理文件的文件编码:" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "从右至左语言" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" +"一些语言是从右到左书写的。\n" +"查看器和编辑器的显示方向将据此更改。" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "整合" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "集成设置" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "要忽略的命令行选项:" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" +"当 KDiff3 被其他工具调用时忽略的命令行选项。\n" +"多个选项请用分号“;\"分隔,以避免出现“未知参数”错误。" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "通过 Esc 键退出" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" +"快速退出方法。\n" +"给那些习惯使用 Esc 键退出的人使用。" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "这将重置全部选项,而不仅是当前页面的选项。" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "预处理程序命令:" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "您所指定的以下选项可能会更改数据:\n" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" +"\n" +"大多数情况下合并应该不会用到这些选项。\n" +"您想禁用这些设置还是继续激活这些设置?" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "合并时会造成不安全的选项" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "合并时使用这些选项" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "禁用不安全的选项" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "正在加载A" + +#: pdiff.cpp:128 +#, kde-format +msgid "Loading A: %1" +msgstr "正在加载 A:%1" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "正在加载B" + +#: pdiff.cpp:138 +#, kde-format +msgid "Loading B: %1" +msgstr "正在加载B:%1" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "比较:A <-> B" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "行比较:A <-> B" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "正在加载C" + +#: pdiff.cpp:196 +#, kde-format +msgid "Loading C: %1" +msgstr "正在加载 C:%1" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "比较:A <-> C" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "比较:B <-> C" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "行比较:B <-> C" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "行比较:A <-> C" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "全部输入文件包含相同文本,但二进制不相同。" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "文件%1和%2文本相同,但二进制数据不相同。\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" +"一些输入文件不是纯文本文件\n" +"注意 KDiff3 的合并功能不适用于二进制数据。\n" +"继续则需您自己承担风险。" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr ", B" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr ", C" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" +"一些输入字符无法转换为有效的Unicode。\n" +"您可能使用了错误的编码来读取文件。(例如,以UTF-8表示非UTF-8编码的文件)。\n" +"如果不确定,请不要保存。继续则需您自己承担风险。\n" +"受影响的输入文件在 %1。" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "中止" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "打开文件..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "剪切选中内容..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "复制选中内容到剪贴板..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "正在插入剪贴板内容..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "文本换行" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "计算水平滚动条的最大宽度" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "保存并继续" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "继续并不保存" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "搜索完成。" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "搜索完成" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "比较输入窗口没有选择内容。" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "添加手动比较区域时出错" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "取消(&C)" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "交换 %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "复制 %1->输出" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "交换 %1<->输出" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "配置..." + +#: smalldialogs.cpp:161 +#, kde-format +msgid "Open Folder" +msgstr "打开文件夹" + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "选择输出文件" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "全部内容及所有文件 (*)" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "搜索文本:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "区分大小写" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "搜索 A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "搜索 B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "搜索 C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "搜索输出" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "搜索(&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "正则表达式测试器" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "示例自动合并行:" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "要测试自动合并,复制文件中使用的行。" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "匹配结果:" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "历史记录起始行的示例 (带开头的注释):" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" +"复制一段您文件里使用过的历史记录起始行,\n" +"包括开头的注释。" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "历史排序关键字顺序:" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "历史记录起始行的示例 (不带开头的注释):" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" +"复制一段您文件里使用过的历史记录起始行,\n" +"但不要包括开头的注释。" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "关键字排序结果:" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "匹配成功。" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "匹配失败。" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "正则表达式中打开和闭合括号不匹配。" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "将剪贴板数据写入临时文件失败。" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "从剪贴板" + +#: SourceData.cpp:367 +#, kde-format +msgid "%1 is not a normal file." +msgstr "%1 不是一个正常的文件。" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr " 临时文件是:%1" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"预处理可能失败了。请检查这个命令:\n" +"\n" +" %1\n" +"\n" +"预处理命令将会被禁用。" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "文件 %1 太大,无法处理。跳过。" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"行匹配处理可能失败。请检查这个命令:\n" +" %1\n" +"\n" +"行匹配处理命令将会被禁用。" + +#: Utils.cpp:68 +#, kde-format +msgid "Expecting space after closing quote." +msgstr "闭合引号后应有空格。" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "引号对不匹配。" + +#: Utils.cpp:80 +#, kde-format +msgid "Unexpected quote character within argument." +msgstr "参数中有未预期的引号字符。" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "没有指定程序。" \ No newline at end of file diff --git a/po/zh_CN/kdiff3fileitemactionplugin.po b/po/zh_CN/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..c0471af --- /dev/null +++ b/po/zh_CN/kdiff3fileitemactionplugin.po @@ -0,0 +1,103 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Feng Chao , 2013. +msgid "" +msgstr "" +"Project-Id-Version: kdeorg\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2022-06-25 04:28\n" +"Last-Translator: \n" +"Language-Team: Chinese Simplified\n" +"Language: zh_CN\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-Crowdin-Project: kdeorg\n" +"X-Crowdin-Project-ID: 269464\n" +"X-Crowdin-Language: zh-CN\n" +"X-Crowdin-File: /kf5-stable/messages/kdiff3/kdiff3fileitemactionplugin.pot\n" +"X-Crowdin-File-ID: 10292\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3..." + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "与 %1 比较" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "与 %1 合并" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "保存“%1”以供日后使用" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "以被比较文件为基础进行三路合并" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "比较..." + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "清除列表" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "比较" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "三路比较" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "关于 KDiff3 菜单插件..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, kde-format +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"使用右键菜单扩展功能:\n" +"对于所选的两个文件进行简单比较,请选择“比较”。\n" +"如果其他文件在别处保存了第一个文件以备后用,它就会出现在“进行比较...”的子菜单" +"中,点击“进行比较”第二个文件即可。\n" +"对于三路合并,请先保存被比较文件,再合并分支。最后在“以被比较文件为基础进行三" +"路合并”中选择用作目标分支的另一个分支。\n" +"以上同样适用于文件夹比较和文件夹合并。" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "关于 KDiff3 文件项目操作插件" \ No newline at end of file diff --git a/po/zh_TW/diff_ext.po b/po/zh_TW/diff_ext.po new file mode 100644 index 0000000..ff8585a --- /dev/null +++ b/po/zh_TW/diff_ext.po @@ -0,0 +1,130 @@ +# Copyright (C) YEAR This file is copyright: +# This file is distributed under the same license as the kdiff3 package. +# +# pan93412 , 2019. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-04-28 01:49+0000\n" +"PO-Revision-Date: 2019-11-03 14:17+0800\n" +"Last-Translator: pan93412 \n" +"Language-Team: Chinese \n" +"Language: zh_TW\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: Lokalize 19.08.2\n" + +#: diff_ext.cpp:206 +#, kde-format +msgid "Compare with %1" +msgstr "與 %1 比較" + +#: diff_ext.cpp:207 +#, kde-format +msgid "Merge with %1" +msgstr "與 %1 合併" + +#: diff_ext.cpp:217 +#, kde-format +msgid "3-way merge with base" +msgstr "三路與基礎合併" + +#: diff_ext.cpp:220 +#, kde-format +msgid "Save '%1' for later" +msgstr "儲存「%1」供稍候使用" + +#: diff_ext.cpp:234 +#, kde-format +msgid "Compare with ..." +msgstr "跟哪個比較 …" + +#: diff_ext.cpp:237 +#, kde-format +msgid "Clear list" +msgstr "清除列表" + +#: diff_ext.cpp:242 +#, kde-format +msgid "Compare" +msgstr "比較" + +#: diff_ext.cpp:246 +#, kde-format +msgid "3 way comparison" +msgstr "三路比較" + +#: diff_ext.cpp:252 +#, kde-format +msgid "About Diff-Ext ..." +msgstr "關於 Diff-Ext…" + +#: diff_ext.cpp:324 +#, kde-format +msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" +msgstr "Diff-Ext 版權所有 (c) 2003-2006, Sergey Zorin. 保留所有權利。\n" + +#: diff_ext.cpp:325 +#, fuzzy, kde-format +#| msgid "This software is distributable under the BSD-2-Clause license.\n" +msgid "This software is distributable under the BSD-2-Clause license.\n" +msgstr "此軟體根據 BSD-2-Clause 授權重散布。\n" + +#: diff_ext.cpp:326 +#, kde-format +msgid "Some extensions for KDiff3 (c) 2006-2013 by Joachim Eibl.\n" +msgstr "部份用於 KDiff3 的擴充元件 (c) 2006-2013 by Joachim Eibl.\n" + +#: diff_ext.cpp:327 +#, kde-format +msgid "Ported to Qt5/Kf5 by Michael Reeves\n" +msgstr "" + +#: diff_ext.cpp:328 +#, kde-format +msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" +msgstr "Diff-Ext 首頁:http://diff-ext.sourceforge.net\n" + +#: diff_ext.cpp:329 +#, fuzzy, kde-format +#| msgid "About Diff-Ext for KDiff3 " +msgid "About Diff-Ext for KDiff3 (64 Bit)" +msgstr "關於適用 KDiff3 的 Diff-Ext" + +#: diff_ext.cpp:358 +#, kde-format +msgid "Compare selected files" +msgstr "比較選取檔案" + +#: diff_ext.cpp:364 diff_ext.cpp:382 +#, kde-format +msgid "Compare '%1' with '%2'" +msgstr "將「%1」跟「%2」比較" + +#: diff_ext.cpp:369 +#, kde-format +msgid "Save '%1' for later operation" +msgstr "儲存「%1」供稍候操作" + +#: diff_ext.cpp:423 +#, kde-format +msgid "Could not start KDiff3. Please rerun KDiff3 installation." +msgstr "無法啟動 KDiff3。請重新執行 KDiff3 安裝套件。" + +#: diff_ext.cpp:424 +#, kde-format +msgid "Command" +msgstr "指令" + +#: diff_ext.cpp:425 +#, kde-format +msgid "CommandLine" +msgstr "指令行" + +#: diff_ext.cpp:426 +#, kde-format +msgid "Diff-Ext For KDiff3" +msgstr "適用於 KDiff3 的 Diff-Ext" \ No newline at end of file diff --git a/po/zh_TW/kdiff3.po b/po/zh_TW/kdiff3.po new file mode 100644 index 0000000..7c016dd --- /dev/null +++ b/po/zh_TW/kdiff3.po @@ -0,0 +1,3391 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Franklin Weng , 2010, 2011, 2012. +# Frank Weng (a.k.a. Franklin) , 2009. +# pan93412 , 2019. +msgid "" +msgstr "" +"Project-Id-Version: kdiff3\n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2022-06-22 02:11+0000\n" +"PO-Revision-Date: 2019-01-19 19:46+0800\n" +"Last-Translator: pan93412 \n" +"Language-Team: Chinese \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 18.12.1\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#, kde-format +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Frank Weng (a.k.a. Franklin)" + +#, kde-format +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "franklin@goodhorse.idv.tw" + +#: DefaultFileAccessJobHandler.cpp:35 +#, kde-format +msgid "Getting file status: %1" +msgstr "" + +#: DefaultFileAccessJobHandler.cpp:87 +#, kde-format +msgid "Reading file: %1" +msgstr "正在讀取檔案:%1" + +#: DefaultFileAccessJobHandler.cpp:127 +#, kde-format +msgid "Writing file: %1" +msgstr "正在寫入檔案:%1" + +#: DefaultFileAccessJobHandler.cpp:161 +#, kde-format +msgid "Out of memory" +msgstr "記憶體不足" + +#: DefaultFileAccessJobHandler.cpp:198 +#, fuzzy, kde-format +#| msgid "Making directory: %1" +msgid "Making folder: %1" +msgstr "產生目錄中:%1" + +#: DefaultFileAccessJobHandler.cpp:220 +#, fuzzy, kde-format +#| msgid "Removing file: %1" +msgid "Removing folder: %1" +msgstr "移除檔案中:%1" + +#: DefaultFileAccessJobHandler.cpp:236 +#, kde-format +msgid "Removing file: %1" +msgstr "移除檔案中:%1" + +#: DefaultFileAccessJobHandler.cpp:253 +#, kde-format +msgid "Creating symbolic link: %1 -> %2" +msgstr "建立符號連結中:%1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:278 +#, kde-format +msgid "Renaming file: %1 -> %2" +msgstr "重新命名檔案中:%1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:321 +#, kde-format +msgid "Copying file: %1 -> %2" +msgstr "正在複製檔案中:%1 -> %2" + +#: DefaultFileAccessJobHandler.cpp:343 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading folder: %1" +msgstr "正在讀取檔案:%1" + +#: DefaultFileAccessJobHandler.cpp:401 +#, kde-format +msgid "Listing directory: %1" +msgstr "" + +#: diff.cpp:1551 diff.cpp:1565 +#, kde-format +msgid "" +"Data loss error:\n" +"If it is reproducible please contact the author.\n" +msgstr "" +"資料遺失錯誤:\n" +"如果這個問題可重複發生,請與作者聯繫。\n" + +#: diff.cpp:1553 diff.cpp:1567 +#, kde-format +msgid "Severe Internal Error" +msgstr "嚴重內部錯誤" + +#: diff.cpp:1555 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error." +msgstr "嚴重內部錯誤" + +#: diff.cpp:1569 +#, fuzzy, kde-format +#| msgid "Severe Internal Error" +msgid "Severe Internal Error.: " +msgstr "嚴重內部錯誤" + +#: difftextwindow.cpp:577 +#, kde-format +msgid "File %1: Line %2" +msgstr "" + +#: difftextwindow.cpp:579 +#, fuzzy, kde-format +#| msgid "Line not available" +msgid "File %1: Line not available" +msgstr "無法取得行號" + +#: difftextwindow.cpp:1891 +#, kde-format +msgid "Encoding:" +msgstr "編碼:" + +#: difftextwindow.cpp:1895 mergeresultwindow.cpp:3123 optiondialog.cpp:817 +#, kde-format +msgid "Line end style:" +msgstr "行結尾樣式:" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:380 +#: directorymergewindow.cpp:431 directorymergewindow.cpp:519 +#: directorymergewindow.cpp:2706 directorymergewindow.cpp:2832 +#: directorymergewindow.cpp:2985 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1774 +#: mergeresultwindow.cpp:3155 mergeresultwindow.cpp:3162 optiondialog.cpp:979 +#: optiondialog.cpp:992 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:756 pdiff.cpp:758 +#: pdiff.cpp:780 smalldialogs.cpp:81 smalldialogs.cpp:83 smalldialogs.cpp:84 +#: smalldialogs.cpp:87 +#, kde-format +msgid "A" +msgstr "A" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:382 +#: directorymergewindow.cpp:434 directorymergewindow.cpp:521 +#: directorymergewindow.cpp:2712 directorymergewindow.cpp:2833 +#: directorymergewindow.cpp:2986 mergeresultwindow.cpp:1026 +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1776 +#: mergeresultwindow.cpp:3157 mergeresultwindow.cpp:3164 optiondialog.cpp:980 +#: optiondialog.cpp:993 pdiff.cpp:752 pdiff.cpp:754 pdiff.cpp:760 pdiff.cpp:762 +#: pdiff.cpp:782 smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:85 +#: smalldialogs.cpp:88 +#, kde-format +msgid "B" +msgstr "B" + +#: difftextwindow.cpp:1923 directorymergewindow.cpp:384 +#: directorymergewindow.cpp:437 directorymergewindow.cpp:523 +#: directorymergewindow.cpp:2718 directorymergewindow.cpp:2834 +#: directorymergewindow.cpp:2987 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1032 mergeresultwindow.cpp:1034 +#: mergeresultwindow.cpp:1036 mergeresultwindow.cpp:1778 +#: mergeresultwindow.cpp:3159 mergeresultwindow.cpp:3166 optiondialog.cpp:994 +#: pdiff.cpp:756 pdiff.cpp:758 pdiff.cpp:760 pdiff.cpp:762 pdiff.cpp:784 +#: smalldialogs.cpp:82 smalldialogs.cpp:83 smalldialogs.cpp:86 +#: smalldialogs.cpp:89 +#, kde-format +msgid "C" +msgstr "C" + +#: difftextwindow.cpp:1923 +#, fuzzy, kde-format +#| msgid "A (Base): " +msgid "A (Base)" +msgstr "A(基底):" + +#: difftextwindow.cpp:1925 +#, fuzzy, kde-format +#| msgid "Encoding:" +msgid "Encoding: %1" +msgstr "編碼:" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3169 +#, kde-format +msgid "DOS" +msgstr "DOS" + +#: difftextwindow.cpp:1926 mergeresultwindow.cpp:3168 +#, kde-format +msgid "Unix" +msgstr "Unix" + +#: difftextwindow.cpp:1926 +#, fuzzy, kde-format +#| msgid "Line end style:" +msgid "Line end style: %1" +msgstr "行結尾樣式:" + +#: difftextwindow.cpp:1955 kdiff3.cpp:853 +#, kde-format +msgid "Top line" +msgstr "頂端行" + +#: difftextwindow.cpp:1964 +#, kde-format +msgid "End" +msgstr "結束" + +#: difftextwindow.cpp:2022 smalldialogs.cpp:163 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open File" +msgstr "開啟檔案中..." + +#: difftextwindow.cpp:2064 optiondialog.cpp:382 +#, kde-format +msgid "Unicode, 8 bit" +msgstr "" + +#: difftextwindow.cpp:2080 +#, kde-format +msgid "Other" +msgstr "" + +#: directorymergewindow.cpp:407 directorymergewindow.cpp:2992 +#, kde-format +msgid "Copy A to B" +msgstr "將 A 複製到 B" + +#: directorymergewindow.cpp:410 directorymergewindow.cpp:2993 +#, kde-format +msgid "Copy B to A" +msgstr "將 B 複製到 A" + +#: directorymergewindow.cpp:413 directorymergewindow.cpp:2994 +#, kde-format +msgid "Delete A" +msgstr "刪除 A" + +#: directorymergewindow.cpp:416 directorymergewindow.cpp:2995 +#, kde-format +msgid "Delete B" +msgstr "刪除 B" + +#: directorymergewindow.cpp:419 +#, kde-format +msgid "Delete A & B" +msgstr "刪除 A 與 B" + +#: directorymergewindow.cpp:422 directorymergewindow.cpp:2997 +#, kde-format +msgid "Merge to A" +msgstr "合併到 A" + +#: directorymergewindow.cpp:425 directorymergewindow.cpp:2998 +#, kde-format +msgid "Merge to B" +msgstr "合併到 B" + +#: directorymergewindow.cpp:428 +#, kde-format +msgid "Merge to A & B" +msgstr "合併到 A 與 B" + +#: directorymergewindow.cpp:440 directorymergewindow.cpp:2989 +#, kde-format +msgid "Delete (if exists)" +msgstr "刪除(若存在)" + +#. i18n: ectx: property (text), widget (QCheckBox, mergeCheckBox) +#: directorymergewindow.cpp:444 directorymergewindow.cpp:2988 opendialog.ui:64 +#, kde-format +msgid "Merge" +msgstr "合併" + +#: directorymergewindow.cpp:444 +#, kde-format +msgid "Merge (manual)" +msgstr "合併(手動)" + +#: directorymergewindow.cpp:447 +#, kde-format +msgid "Error: Conflicting File Types" +msgstr "錯誤:衝突的檔案型態" + +#: directorymergewindow.cpp:450 +#, kde-format +msgid "Error: Changed and Deleted" +msgstr "錯誤:已變更與刪除" + +#: directorymergewindow.cpp:453 +#, kde-format +msgid "Error: Dates are equal but files are not." +msgstr "錯誤:日期相同,但檔案不同。" + +#: directorymergewindow.cpp:467 +#, fuzzy, kde-format +#| msgid "Done." +msgid "Done" +msgstr "完成。" + +#: directorymergewindow.cpp:469 +#, kde-format +msgid "Error" +msgstr "錯誤" + +#: directorymergewindow.cpp:471 +#, kde-format +msgid "Skipped." +msgstr "已跳過。" + +#: directorymergewindow.cpp:473 +#, kde-format +msgid "Not saved." +msgstr "未儲存。" + +#: directorymergewindow.cpp:475 +#, kde-format +msgid "In progress..." +msgstr "進行中..." + +#: directorymergewindow.cpp:477 +#, kde-format +msgid "To do." +msgstr "待辦。" + +#: directorymergewindow.cpp:517 +#, kde-format +msgid "Name" +msgstr "名稱" + +#: directorymergewindow.cpp:525 +#, kde-format +msgid "Operation" +msgstr "操作" + +#: directorymergewindow.cpp:527 +#, kde-format +msgid "Status" +msgstr "狀態" + +#: directorymergewindow.cpp:529 +#, kde-format +msgid "Unsolved" +msgstr "未解決" + +#: directorymergewindow.cpp:531 +#, kde-format +msgid "Solved" +msgstr "已解決" + +#: directorymergewindow.cpp:533 +#, kde-format +msgid "Nonwhite" +msgstr "非白" + +#: directorymergewindow.cpp:535 +#, kde-format +msgid "White" +msgstr "白" + +#: directorymergewindow.cpp:687 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort the " +"merge and rescan the folder?" +msgstr "您正在進行目錄合併。您確定要中止合併並重新掃描目錄嗎?" + +#: directorymergewindow.cpp:688 kdiff3.cpp:712 kdiff3.cpp:722 kdiff3.cpp:734 +#: mergeresultwindow.cpp:458 pdiff.cpp:877 pdiff.cpp:1688 pdiff.cpp:1698 +#, kde-format +msgid "Warning" +msgstr "警告" + +#: directorymergewindow.cpp:689 directorymergewindow.cpp:2961 +#, kde-format +msgid "Rescan" +msgstr "重新掃描" + +#: directorymergewindow.cpp:690 pdiff.cpp:879 +#, kde-format +msgid "Continue Merging" +msgstr "繼續合併" + +#: directorymergewindow.cpp:843 +#, fuzzy, kde-format +#| msgid "Opening of directories failed:" +msgid "Opening of folders failed:" +msgstr "開啟目錄失敗:" + +#: directorymergewindow.cpp:847 +#, fuzzy, kde-format +#| msgid "Dir A \"%1\" does not exist or is not a directory.\n" +msgid "Folder A \"%1\" does not exist or is not a folder.\n" +msgstr "目錄 A \"%1\" 不存在,或不是目錄。\n" + +#: directorymergewindow.cpp:852 +#, fuzzy, kde-format +#| msgid "Dir B \"%1\" does not exist or is not a directory.\n" +msgid "Folder B \"%1\" does not exist or is not a folder.\n" +msgstr "目錄 B \"%1\" 不存在,或不是目錄。\n" + +#: directorymergewindow.cpp:857 +#, fuzzy, kde-format +#| msgid "Dir C \"%1\" does not exist or is not a directory.\n" +msgid "Folder C \"%1\" does not exist or is not a folder.\n" +msgstr "目錄 C \"%1\" 不存在,或不是目錄。\n" + +#: directorymergewindow.cpp:860 +#, fuzzy, kde-format +#| msgid "File Open Error" +msgid "Folder Opening Error" +msgstr "檔案開啟失敗" + +#: directorymergewindow.cpp:868 +#, kde-format +msgid "" +"The destination folder must not be the same as A or B when three folders are " +"merged.\n" +"Check again before continuing." +msgstr "" + +#: directorymergewindow.cpp:870 +#, kde-format +msgid "Parameter Warning" +msgstr "參數警告" + +#: directorymergewindow.cpp:875 +#, fuzzy, kde-format +#| msgid "Scanning directories..." +msgid "Scanning folders..." +msgstr "掃描目錄中..." + +#: directorymergewindow.cpp:901 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder A" +msgstr "正在讀取檔案:%1" + +#: directorymergewindow.cpp:910 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder B" +msgstr "正在讀取檔案:%1" + +#: directorymergewindow.cpp:920 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Reading Folder C" +msgstr "正在讀取檔案:%1" + +#: directorymergewindow.cpp:936 +#, fuzzy, kde-format +#| msgid "Some subdirectories were not readable in" +msgid "Some subfolders were not readable in" +msgstr "此目錄裡的某些子目錄無法讀取:" + +#: directorymergewindow.cpp:941 +#, fuzzy, kde-format +#| msgid "Check the permissions of the subdirectories." +msgid "Check the permissions of the subfolders." +msgstr "請檢查子目錄的權限。" + +#: directorymergewindow.cpp:978 kdiff3.cpp:682 kdiff3.cpp:767 kdiff3.cpp:791 +#: kdiff3.cpp:1063 kdiff3.cpp:1084 pdiff.cpp:960 pdiff.cpp:1027 pdiff.cpp:1062 +#: pdiff.cpp:1071 pdiff.cpp:1117 pdiff.cpp:1125 +#, kde-format +msgid "Ready." +msgstr "已就緒。" + +#: directorymergewindow.cpp:993 +#, kde-format +msgid "" +"Folder Comparison Status\n" +"\n" +"Number of subfolders: %1\n" +"Number of equal files: %2\n" +"Number of different files: %3" +msgstr "" + +#: directorymergewindow.cpp:1000 +#, fuzzy, kde-format +#| msgid "Number of manual merges:" +msgid "Number of manual merges: %1" +msgstr "手動合併數量:" + +#: directorymergewindow.cpp:1257 +#, kde-format +msgid "This affects all merge operations." +msgstr "這會影響所有的合併操作。" + +#: directorymergewindow.cpp:1258 +#, kde-format +msgid "Changing All Merge Operations" +msgstr "變更所有合併操作" + +#: directorymergewindow.cpp:1335 +#, fuzzy, kde-format +#| msgid "Processing " +msgid "" +"Processing %1 / %2\n" +"%3" +msgstr "處理中" + +#: directorymergewindow.cpp:1380 directorymergewindow.cpp:1384 +#, kde-format +msgid "Some files could not be processed." +msgstr "" + +#: directorymergewindow.cpp:1387 +#, kde-format +msgid "Aborting due to too many errors." +msgstr "" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 +#, kde-format +msgid "This operation is currently not possible." +msgstr "此操作目前無法運作。" + +#: directorymergewindow.cpp:1873 directorymergewindow.cpp:1898 +#: directorymergewindow.cpp:1923 directorymergewindow.cpp:2204 +#, kde-format +msgid "Operation Not Possible" +msgstr "無法進行操作" + +#: directorymergewindow.cpp:1970 +#, fuzzy, kde-format +#| msgid "An error occurred while copying.\n" +msgid "An error occurred while copying." +msgstr "複製時發生錯誤。\n" + +#: directorymergewindow.cpp:1971 directorymergewindow.cpp:2411 +#, kde-format +msgid "Merge Error" +msgstr "合併錯誤" + +#: directorymergewindow.cpp:2049 +#, kde-format +msgid "Unknown merge operation. (This must never happen!)" +msgstr "未知的合併操作。(此問題不應該發生!)" + +#: directorymergewindow.cpp:2094 +#, kde-format +msgid "Unknown merge operation." +msgstr "未知的合併操作。" + +#: directorymergewindow.cpp:2107 +#, kde-format +msgid "" +"The merge is about to begin.\n" +"\n" +"Choose \"Do it\" if you have read the instructions and know what you are " +"doing.\n" +"Choosing \"Simulate it\" will tell you what would happen.\n" +"\n" +"Be aware that this program still has beta status and there is NO WARRANTY " +"whatsoever! Make backups of your vital data!" +msgstr "" +"準備開始合併。\n" +"\n" +"若是您已經讀完說明並知道自己在做什麼,就選擇「做吧!」\n" +"您也可以先選擇「先模擬一次」來看看結果。\n" +"\n" +"要注意,這個程式仍然在測試階段,不保證結果是否有問題。請先備份您的重要資料!" + +#: directorymergewindow.cpp:2112 +#, kde-format +msgid "Starting Merge" +msgstr "開始合併" + +#: directorymergewindow.cpp:2113 +#, kde-format +msgid "Do It" +msgstr "做吧!" + +#: directorymergewindow.cpp:2114 +#, kde-format +msgid "Simulate It" +msgstr "先模擬一次" + +#: directorymergewindow.cpp:2140 +#, kde-format +msgid "" +"The highlighted item has a different type in the different folders. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2144 +#, kde-format +msgid "" +"The modification dates of the file are equal but the files are not. Select " +"what to do." +msgstr "" + +#: directorymergewindow.cpp:2148 +#, kde-format +msgid "" +"The highlighted item was changed in one folder and deleted in the other. " +"Select what to do." +msgstr "" + +#: directorymergewindow.cpp:2204 +#, fuzzy, kde-format +#| msgid "This operation is currently not possible." +msgid "" +"This operation is currently not possible because folder merge is currently " +"running." +msgstr "此操作目前無法運作。" + +#: directorymergewindow.cpp:2261 +#, kde-format +msgid "" +"There was an error in the last step.\n" +"Do you want to continue with the item that caused the error or do you want " +"to skip this item?" +msgstr "" + +#: directorymergewindow.cpp:2263 +#, kde-format +msgid "Continue merge after an error" +msgstr "在錯誤之後繼續合併" + +#: directorymergewindow.cpp:2264 +#, kde-format +msgid "Continue With Last Item" +msgstr "繼續上一個項目" + +#: directorymergewindow.cpp:2265 +#, kde-format +msgid "Skip Item" +msgstr "跳過項目" + +#: directorymergewindow.cpp:2361 +#, kde-format +msgid "Merge operation complete." +msgstr "合併操作完成。" + +#: directorymergewindow.cpp:2361 directorymergewindow.cpp:2364 +#, kde-format +msgid "Merge Complete" +msgstr "合併完成" + +#: directorymergewindow.cpp:2374 +#, kde-format +msgid "" +"Simulated merge complete: Check if you agree with the proposed operations." +msgstr "模擬合併完成:請檢查是否同意此合併結果。" + +#: directorymergewindow.cpp:2410 +#, fuzzy, kde-format +#| msgid "An error occurred. Press OK to see detailed information.\n" +msgid "An error occurred. Press OK to see detailed information." +msgstr "發生錯誤。按「確定」看詳細資訊。\n" + +#: directorymergewindow.cpp:2443 +#, kde-format +msgid "Error: While deleting %1: Creating backup failed." +msgstr "錯誤:刪除 %1 時建立備份失敗。" + +#: directorymergewindow.cpp:2450 +#, fuzzy, kde-format +#| msgid "delete directory recursively( %1 )" +msgid "delete folder recursively( %1 )" +msgstr "遞迴刪除目錄(%1)" + +#: directorymergewindow.cpp:2452 +#, kde-format +msgid "delete( %1 )" +msgstr "刪除(%1)" + +#: directorymergewindow.cpp:2467 +#, kde-format +msgid "Error: delete folder operation failed while trying to read the folder." +msgstr "" + +#: directorymergewindow.cpp:2483 +#, kde-format +msgid "Error: rmdir( %1 ) operation failed." +msgstr "" + +#: directorymergewindow.cpp:2493 +#, kde-format +msgid "Error: delete operation failed." +msgstr "" + +#: directorymergewindow.cpp:2520 +#, kde-format +msgid "manual merge( %1, %2, %3 -> %4)" +msgstr "" + +#: directorymergewindow.cpp:2523 +#, kde-format +msgid "" +" Note: After a manual merge the user should continue by pressing F7." +msgstr "" + +#: directorymergewindow.cpp:2550 +#, kde-format +msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." +msgstr "" + +#: directorymergewindow.cpp:2559 +#, kde-format +msgid "copyLink( %1 -> %2 )" +msgstr "複製連結( %1 -> %2 )" + +#: directorymergewindow.cpp:2568 +#, kde-format +msgid "Error: copyLink failed: Remote links are not yet supported." +msgstr "錯誤:複製連結失敗。尚未支援遠端連結。" + +#: directorymergewindow.cpp:2578 +#, kde-format +msgid "Error: copyLink failed." +msgstr "錯誤:複製連結失敗。" + +#: directorymergewindow.cpp:2601 +#, kde-format +msgid "copy( %1 -> %2 )" +msgstr "複製(%1 -> %2)" + +#: directorymergewindow.cpp:2627 +#, kde-format +msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." +msgstr "" + +#: directorymergewindow.cpp:2634 +#, kde-format +msgid "rename( %1 -> %2 )" +msgstr "重新命名(%1->%2)" + +#: directorymergewindow.cpp:2643 +#, kde-format +msgid "Error: Rename failed." +msgstr "" + +#: directorymergewindow.cpp:2661 +#, kde-format +msgid "Error during makeDir of %1. Cannot delete existing file." +msgstr "" + +#: directorymergewindow.cpp:2678 +#, kde-format +msgid "makeDir( %1 )" +msgstr "" + +#: directorymergewindow.cpp:2688 +#, fuzzy, kde-format +#| msgid "Error while adding manual diff range" +msgid "Error while creating folder." +msgstr "新增手動比對範圍時發生錯誤" + +#: directorymergewindow.cpp:2724 directorymergewindow.cpp:2838 +#, kde-format +msgid "Dest" +msgstr "目標" + +#: directorymergewindow.cpp:2732 directorymergewindow.cpp:2760 +#: optiondialog.cpp:1124 optiondialog.cpp:1125 +#, kde-format +msgid "Folder" +msgstr "" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Type" +msgstr "型態" + +#: directorymergewindow.cpp:2732 +#, kde-format +msgid "Size" +msgstr "大小" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Attr" +msgstr "屬性" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Last Modification" +msgstr "上次變更" + +#: directorymergewindow.cpp:2733 +#, kde-format +msgid "Link-Destination" +msgstr "連結目標" + +#: directorymergewindow.cpp:2760 +#, kde-format +msgid "File" +msgstr "檔案" + +#: directorymergewindow.cpp:2760 +#, fuzzy, kde-format +#| msgid "Link: " +msgid "-Link" +msgstr "連結:" + +#: directorymergewindow.cpp:2766 +#, kde-format +msgid "not available" +msgstr "無" + +#: directorymergewindow.cpp:2780 +#, kde-format +msgid "A (Dest): " +msgstr "A(目標):" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A: " +msgstr "" + +#: directorymergewindow.cpp:2784 +#, kde-format +msgid "A (Base): " +msgstr "A(基底):" + +#: directorymergewindow.cpp:2790 +#, kde-format +msgid "B (Dest): " +msgstr "B(目標):" + +#: directorymergewindow.cpp:2794 +#, kde-format +msgid "B: " +msgstr "" + +#: directorymergewindow.cpp:2799 +#, kde-format +msgid "C (Dest): " +msgstr "C(目標):" + +#: directorymergewindow.cpp:2803 +#, kde-format +msgid "C: " +msgstr "" + +#: directorymergewindow.cpp:2806 +#, kde-format +msgid "Dest: " +msgstr "目標:" + +#. i18n("Saving Directory Merge State ...")); +#: directorymergewindow.cpp:2848 +#, kde-format +msgid "Save Folder Merge State As..." +msgstr "" + +#: directorymergewindow.cpp:2955 +#, fuzzy, kde-format +#| msgid "Starting Merge" +msgid "Start/Continue Folder Merge" +msgstr "開始合併" + +#: directorymergewindow.cpp:2956 +#, kde-format +msgid "Run Operation for Current Item" +msgstr "" + +#: directorymergewindow.cpp:2957 +#, kde-format +msgid "Compare Selected File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "Merge Current File" +msgstr "" + +#: directorymergewindow.cpp:2958 +#, kde-format +msgid "" +"Merge\n" +"File" +msgstr "" + +#: directorymergewindow.cpp:2959 +#, kde-format +msgid "Fold All Subfolders" +msgstr "" + +#: directorymergewindow.cpp:2960 +#, kde-format +msgid "Unfold All Subfolders" +msgstr "" + +#. i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); +#. i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); +#: directorymergewindow.cpp:2964 +#, kde-format +msgid "Choose A for All Items" +msgstr "" + +#: directorymergewindow.cpp:2965 +#, kde-format +msgid "Choose B for All Items" +msgstr "" + +#: directorymergewindow.cpp:2966 +#, kde-format +msgid "Choose C for All Items" +msgstr "" + +#: directorymergewindow.cpp:2967 +#, kde-format +msgid "Auto-Choose Operation for All Items" +msgstr "" + +#: directorymergewindow.cpp:2968 +#, kde-format +msgid "No Operation for All Items" +msgstr "" + +#. i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); +#. d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "Show Identical Files" +msgstr "" + +#: directorymergewindow.cpp:2973 +#, kde-format +msgid "" +"Identical\n" +"Files" +msgstr "" + +#: directorymergewindow.cpp:2974 +#, kde-format +msgid "Show Different Files" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "Show Files only in A" +msgstr "" + +#: directorymergewindow.cpp:2975 +#, kde-format +msgid "" +"Files\n" +"only in A" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "Show Files only in B" +msgstr "" + +#: directorymergewindow.cpp:2976 +#, kde-format +msgid "" +"Files\n" +"only in B" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "Show Files only in C" +msgstr "" + +#: directorymergewindow.cpp:2977 +#, kde-format +msgid "" +"Files\n" +"only in C" +msgstr "" + +#: directorymergewindow.cpp:2981 +#, kde-format +msgid "Compare Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2982 +#, kde-format +msgid "Merge Explicitly Selected Files" +msgstr "" + +#: directorymergewindow.cpp:2984 directorymergewindow.cpp:2991 +#, kde-format +msgid "Do Nothing" +msgstr "不做任何事" + +#: directorymergewindow.cpp:2996 +#, kde-format +msgid "Delete A && B" +msgstr "刪除 A 與 B" + +#: directorymergewindow.cpp:2999 +#, kde-format +msgid "Merge to A && B" +msgstr "合併到 A 與 B" + +#: fileaccess.cpp:505 +#, kde-format +msgid "Unable to determine full url. No parent specified." +msgstr "" + +#: fileaccess.cpp:768 SourceData.cpp:526 +#, fuzzy, kde-format +#| msgid "Reading file: %1" +msgid "Failed to read file: %1" +msgstr "正在讀取檔案:%1" + +#: fileaccess.cpp:908 +#, kde-format +msgid "Creating temp copy of %1 failed." +msgstr "建立 %1 的暫存複本失敗。" + +#: fileaccess.cpp:916 fileaccess.cpp:921 +#, fuzzy, kde-format +#| msgid "Opening %1 failed." +msgid "Opening %1 failed. %2" +msgstr "開啟 %1 失敗。" + +#: fileaccess.cpp:940 fileaccess.cpp:948 +#, fuzzy, kde-format +#| msgid "Error reading from %1" +msgid "Error reading from %1. %2" +msgstr "從 %1 讀取時發生錯誤" + +#: fileaccess.cpp:1077 +#, kde-format +msgid "" +"While trying to make a backup, deleting an older backup failed.\n" +"Filename: %1" +msgstr "" + +#: fileaccess.cpp:1084 +#, kde-format +msgid "" +"While trying to make a backup, renaming failed.\n" +"Filenames: %1 -> %2" +msgstr "" + +#: kdiff3.cpp:163 +#, kde-format +msgid "Current Configuration:" +msgstr "目前設定:" + +#: kdiff3.cpp:168 +#, kde-format +msgid "Config Option Error:" +msgstr "" + +#: kdiff3.cpp:226 +#, kde-format +msgid "Option --auto used, but no output file specified." +msgstr "" + +#: kdiff3.cpp:411 +#, fuzzy, kde-format +#| msgid "Couldn't find files for comparison." +msgid "Option --auto ignored for folder comparison." +msgstr "找不到要比較的檔案。" + +#: kdiff3.cpp:458 +#, kde-format +msgid "Saving failed." +msgstr "儲存失敗。" + +#: kdiff3.cpp:509 pdiff.cpp:941 +#, kde-format +msgid "Opening of these files failed:" +msgstr "開啟這些檔案失敗:" + +#: kdiff3.cpp:518 pdiff.cpp:950 +#, kde-format +msgid "File open error" +msgstr "檔案開啟失敗" + +#: kdiff3.cpp:549 +#, kde-format +msgid "Opens documents for comparison..." +msgstr "開啟要比較的文件..." + +#: kdiff3.cpp:551 +#, kde-format +msgid "Reload" +msgstr "重新載入" + +#: kdiff3.cpp:554 +#, kde-format +msgid "Saves the merge result. All conflicts must be solved!" +msgstr "" + +#: kdiff3.cpp:556 +#, kde-format +msgid "Saves the current document as..." +msgstr "" + +#: kdiff3.cpp:559 +#, kde-format +msgid "Print the differences" +msgstr "" + +#: kdiff3.cpp:562 +#, kde-format +msgid "Quits the application" +msgstr "離開應用程式" + +#: kdiff3.cpp:565 +#, kde-format +msgid "Cuts the selected section and puts it to the clipboard" +msgstr "剪下所選取的部分並放到剪貼簿" + +#: kdiff3.cpp:568 +#, kde-format +msgid "Copies the selected section to the clipboard" +msgstr "複製所選取的部分並放到剪貼簿" + +#: kdiff3.cpp:570 +#, fuzzy, kde-format +#| msgid "Pastes the clipboard contents to actual position" +msgid "Pastes the clipboard contents to current position" +msgstr "貼上剪貼簿內容到目前位置" + +#: kdiff3.cpp:573 +#, kde-format +msgid "Select everything in current window" +msgstr "" + +#: kdiff3.cpp:576 +#, kde-format +msgid "Search for a string" +msgstr "" + +#: kdiff3.cpp:578 +#, kde-format +msgid "Search again for the string" +msgstr "" + +#: kdiff3.cpp:583 +#, kde-format +msgid "Enables/disables the statusbar" +msgstr "啟動/關閉狀態列" + +#: kdiff3.cpp:587 +#, kde-format +msgid "Configure KDiff3..." +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "Go to Current Delta" +msgstr "" + +#: kdiff3.cpp:606 +#, kde-format +msgid "" +"Current\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "Go to First Delta" +msgstr "" + +#: kdiff3.cpp:608 +#, kde-format +msgid "" +"First\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "Go to Last Delta" +msgstr "" + +#: kdiff3.cpp:610 +#, kde-format +msgid "" +"Last\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:612 +#, kde-format +msgid "(Skips white space differences when \"Show White Space\" is disabled.)" +msgstr "" + +#: kdiff3.cpp:613 +#, kde-format +msgid "" +"(Does not skip white space differences even when \"Show White Space\" is " +"disabled.)" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "Go to Previous Delta" +msgstr "" + +#: kdiff3.cpp:614 +#, kde-format +msgid "" +"Prev\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "Go to Next Delta" +msgstr "" + +#: kdiff3.cpp:616 +#, kde-format +msgid "" +"Next\n" +"Delta" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "Go to Previous Conflict" +msgstr "" + +#: kdiff3.cpp:618 +#, kde-format +msgid "" +"Prev\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "Go to Next Conflict" +msgstr "" + +#: kdiff3.cpp:620 +#, kde-format +msgid "" +"Next\n" +"Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "Go to Previous Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:622 +#, kde-format +msgid "" +"Prev\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "Go to Next Unsolved Conflict" +msgstr "" + +#: kdiff3.cpp:624 +#, kde-format +msgid "" +"Next\n" +"Unsolved" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "Select Line(s) From A" +msgstr "" + +#: kdiff3.cpp:626 +#, kde-format +msgid "" +"Choose\n" +"A" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "Select Line(s) From B" +msgstr "" + +#: kdiff3.cpp:627 +#, kde-format +msgid "" +"Choose\n" +"B" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "Select Line(s) From C" +msgstr "" + +#: kdiff3.cpp:628 +#, kde-format +msgid "" +"Choose\n" +"C" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "Automatically Go to Next Unsolved Conflict After Source Selection" +msgstr "" + +#: kdiff3.cpp:629 +#, kde-format +msgid "" +"Auto\n" +"Next" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "Show Space && Tabulator Characters" +msgstr "" + +#: kdiff3.cpp:631 +#, kde-format +msgid "" +"White\n" +"Characters" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "Show White Space" +msgstr "" + +#: kdiff3.cpp:632 +#, kde-format +msgid "" +"White\n" +"Deltas" +msgstr "" + +#: kdiff3.cpp:634 +#, kde-format +msgid "Show Line Numbers" +msgstr "顯示行號" + +#: kdiff3.cpp:634 +#, kde-format +msgid "" +"Line\n" +"Numbers" +msgstr "" + +#: kdiff3.cpp:636 +#, kde-format +msgid "Automatically Solve Simple Conflicts" +msgstr "" + +#: kdiff3.cpp:637 +#, kde-format +msgid "Set Deltas to Conflicts" +msgstr "" + +#: kdiff3.cpp:638 +#, kde-format +msgid "Run Regular Expression Auto Merge" +msgstr "" + +#: kdiff3.cpp:639 +#, kde-format +msgid "Automatically Solve History Conflicts" +msgstr "" + +#: kdiff3.cpp:640 +#, kde-format +msgid "Split Diff At Selection" +msgstr "" + +#: kdiff3.cpp:641 +#, kde-format +msgid "Join Selected Diffs" +msgstr "" + +#: kdiff3.cpp:643 +#, kde-format +msgid "Show Window A" +msgstr "" + +#: kdiff3.cpp:644 +#, kde-format +msgid "Show Window B" +msgstr "" + +#: kdiff3.cpp:645 +#, kde-format +msgid "Show Window C" +msgstr "" + +#: kdiff3.cpp:647 +#, kde-format +msgid "Normal Overview" +msgstr "" + +#: kdiff3.cpp:648 +#, kde-format +msgid "A vs. B Overview" +msgstr "" + +#: kdiff3.cpp:649 +#, kde-format +msgid "A vs. C Overview" +msgstr "" + +#: kdiff3.cpp:650 +#, kde-format +msgid "B vs. C Overview" +msgstr "" + +#: kdiff3.cpp:651 +#, kde-format +msgid "Word Wrap Diff Windows" +msgstr "" + +#: kdiff3.cpp:652 +#, kde-format +msgid "Add Manual Diff Alignment" +msgstr "" + +#: kdiff3.cpp:653 +#, kde-format +msgid "Clear All Manual Diff Alignments" +msgstr "" + +#: kdiff3.cpp:655 +#, kde-format +msgid "Focus Next Window" +msgstr "" + +#: kdiff3.cpp:656 +#, kde-format +msgid "Focus Prev Window" +msgstr "" + +#: kdiff3.cpp:657 +#, kde-format +msgid "Toggle Split Orientation" +msgstr "" + +#: kdiff3.cpp:659 +#, kde-format +msgid "Folder && Text Split Screen View" +msgstr "" + +#: kdiff3.cpp:661 +#, kde-format +msgid "Toggle Between Folder && Text View" +msgstr "" + +#: kdiff3.cpp:711 pdiff.cpp:1687 +#, kde-format +msgid "The merge result has not been saved." +msgstr "" + +#: kdiff3.cpp:713 +#, kde-format +msgid "Save && Quit" +msgstr "" + +#: kdiff3.cpp:714 +#, kde-format +msgid "Quit Without Saving" +msgstr "離開但不儲存" + +#: kdiff3.cpp:722 pdiff.cpp:1698 +#, kde-format +msgid "Saving the merge result failed." +msgstr "" + +#: kdiff3.cpp:733 pdiff.cpp:876 +#, fuzzy, kde-format +#| msgid "" +#| "You are currently doing a directory merge. Are you sure, you want to " +#| "abort the merge and rescan the directory?" +msgid "" +"You are currently doing a folder merge. Are you sure, you want to abort?" +msgstr "您正在進行目錄合併。您確定要中止合併並重新掃描目錄嗎?" + +#: kdiff3.cpp:756 +#, kde-format +msgid "Saving file..." +msgstr "正在儲存檔案..." + +#: kdiff3.cpp:773 +#, kde-format +msgid "Saving file with a new filename..." +msgstr "正在用新檔名儲存檔案..." + +#: kdiff3.cpp:775 +#, kde-format +msgid "Save As..." +msgstr "另存新檔..." + +#: kdiff3.cpp:799 +#, kde-format +msgid "Printing not implemented." +msgstr "" + +#: kdiff3.cpp:837 +#, kde-format +msgid "Printing..." +msgstr "正在列印..." + +#: kdiff3.cpp:939 +#, kde-format +msgid "Printing page %1 of %2" +msgstr "" + +#: kdiff3.cpp:996 +#, fuzzy, kde-format +#| msgid "Selection" +msgid " (Selection)" +msgstr "選擇" + +#: kdiff3.cpp:1025 +#, kde-format +msgid "Printing completed." +msgstr "" + +#: kdiff3.cpp:1029 +#, kde-format +msgid "Printing aborted." +msgstr "" + +#: kdiff3.cpp:1036 +#, kde-format +msgid "Exiting..." +msgstr "正在離開..." + +#: kdiff3.cpp:1047 +#, kde-format +msgid "Toggling toolbar..." +msgstr "切換工具列..." + +#: kdiff3.cpp:1068 +#, kde-format +msgid "Toggle the statusbar..." +msgstr "切換狀態列..." + +#: kdiff3_part.cpp:35 +#, fuzzy, kde-format +#| msgid "KDiff3Part" +msgid "KDiff3 Part" +msgstr "KDiff3Part" + +#: kdiff3_part.cpp:36 +#, kde-format +msgid "A KPart to display SVG images" +msgstr "" + +#: kdiff3_part.cpp:38 +#, kde-format +msgid "Copyright 2007, Aurélien Gâteau " +msgstr "" + +#: kdiff3_part.cpp:39 +#, kde-format +msgid "Joachim Eibl" +msgstr "Joachim Eibl" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:4 +#, kde-format +msgid "&KDiff3" +msgstr "KDiff3(&K)" + +#. i18n: ectx: Menu (movement) +#: kdiff3_part.rc:13 +#, kde-format +msgid "Configure KDiff3" +msgstr "設定 KDiff3" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_part.rc:16 main.cpp:98 +#, kde-format +msgid "KDiff3" +msgstr "KDiff3" + +#: kdiff3_shell.cpp:63 +#, kde-format +msgid "" +"Could not initialize the KDiff3 part.\n" +"This usually happens due to an installation problem. Please read the README-" +"file in the source package for details." +msgstr "" + +#. i18n: ectx: Menu (file) +#: kdiff3_shell.rc:4 +#, kde-format +msgid "&File" +msgstr "檔案(&F)" + +#. i18n: ectx: Menu (directory) +#: kdiff3_shell.rc:7 +#, kde-format +msgid "F&older" +msgstr "" + +#. i18n: ectx: Menu (dir_current_merge_menu) +#: kdiff3_shell.rc:30 +#, kde-format +msgid "Current Item Merge Operation" +msgstr "目前項目合併操作" + +#. i18n: ectx: Menu (dir_current_sync_menu) +#: kdiff3_shell.rc:38 +#, kde-format +msgid "Current Item Sync Operation" +msgstr "目前項目同步操作" + +#. i18n: ectx: Menu (movement) +#: kdiff3_shell.rc:50 +#, fuzzy, kde-format +#| msgid "&Movement" +msgid "M&ovement" +msgstr "移動(&M)" + +#. i18n: ectx: Menu (diff) +#: kdiff3_shell.rc:61 +#, kde-format +msgid "D&iffview" +msgstr "差異檢視(&I)" + +#. i18n: ectx: Menu (merge) +#: kdiff3_shell.rc:73 +#, fuzzy, kde-format +#| msgid "Merge" +msgid "M&erge" +msgstr "合併" + +#. i18n: ectx: Menu (window) +#: kdiff3_shell.rc:95 +#, kde-format +msgid "&Window" +msgstr "視窗(&W)" + +#. i18n: ectx: ToolBar (mainToolBar) +#: kdiff3_shell.rc:106 +#, kde-format +msgid "Main Toolbar" +msgstr "主工具列" + +#: main.cpp:70 main.cpp:74 +#, kde-format +msgid "Ignored. (User defined.)" +msgstr "已忽略。(使用者定義)" + +#: main.cpp:102 +#, kde-format +msgid " (64 bit)" +msgstr "" + +#: main.cpp:104 +#, kde-format +msgid " (32 bit)" +msgstr "" + +#: main.cpp:105 +#, kde-format +msgid "Tool for Comparison and Merge of Files and Folders" +msgstr "" + +#: main.cpp:106 +#, kde-format +msgid "(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port" +msgstr "" + +#: main.cpp:122 +#, kde-format +msgid "Merge the input." +msgstr "合併輸入。" + +#: main.cpp:123 +#, kde-format +msgid "Explicit base file. For compatibility with certain tools." +msgstr "" + +#: main.cpp:124 +#, kde-format +msgid "Output file. Implies -m. E.g.: -o newfile.txt" +msgstr "" + +#: main.cpp:125 +#, kde-format +msgid "Output file, again. (For compatibility with certain tools.)" +msgstr "" + +#: main.cpp:127 +#, kde-format +msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" +msgstr "" + +#: main.cpp:128 +#, kde-format +msgid "Ignore --auto and always show GUI." +msgstr "" + +#: main.cpp:130 main.cpp:131 +#, kde-format +msgid "Ignored." +msgstr "" + +#: main.cpp:133 +#, kde-format +msgid "Visible name replacement for input file 1 (base)." +msgstr "" + +#: main.cpp:134 +#, kde-format +msgid "Visible name replacement for input file 2." +msgstr "" + +#: main.cpp:135 +#, kde-format +msgid "Visible name replacement for input file 3." +msgstr "" + +#: main.cpp:136 +#, kde-format +msgid "Alternative visible name replacement. Supply this once for every input." +msgstr "" + +#: main.cpp:137 +#, kde-format +msgid "" +"Override a config setting. Use once for every setting. E.g.: --cs " +"\"AutoAdvance=1\"" +msgstr "" + +#: main.cpp:138 +#, kde-format +msgid "Show list of config settings and current values." +msgstr "" + +#: main.cpp:139 +#, kde-format +msgid "Use a different config file." +msgstr "" + +#: main.cpp:142 +#, kde-format +msgid "file1 to open (base, if not specified via --base)" +msgstr "要開啟的檔案 1(若未指定 --base 則以此為基底)" + +#: main.cpp:143 +#, kde-format +msgid "file2 to open" +msgstr "要開啟的檔案 2" + +#: main.cpp:144 +#, kde-format +msgid "file3 to open" +msgstr "要開啟的檔案 3" + +#: main.cpp:168 +#, kde-format +msgid "See kdiff3 --help for supported options." +msgstr "" + +#: MergeFileInfos.cpp:391 +#, kde-format +msgid "Unable to compare non-normal file with normal file." +msgstr "" + +#: MergeFileInfos.cpp:405 +#, kde-format +msgid "Mix of links and normal files." +msgstr "連結與一般檔案混合。" + +#: MergeFileInfos.cpp:412 +#, kde-format +msgid "Link: " +msgstr "連結:" + +#: MergeFileInfos.cpp:421 +#, kde-format +msgid "Size. " +msgstr "大小。" + +#: MergeFileInfos.cpp:435 MergeFileInfos.cpp:445 +#, kde-format +msgid "Date & Size: " +msgstr "日期與大小:" + +#: MergeFileInfos.cpp:466 +#, kde-format +msgid "Comparing file..." +msgstr "比較檔案中..." + +#: mergeresultwindow.cpp:144 +#, kde-format +msgid "Choose A Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:145 +#, kde-format +msgid "Choose B Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:146 +#, kde-format +msgid "Choose C Everywhere" +msgstr "" + +#: mergeresultwindow.cpp:147 +#, kde-format +msgid "Choose A for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:148 +#, kde-format +msgid "Choose B for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:149 +#, kde-format +msgid "Choose C for All Unsolved Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:150 +#, kde-format +msgid "Choose A for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:151 +#, kde-format +msgid "Choose B for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:152 +#, kde-format +msgid "Choose C for All Unsolved Whitespace Conflicts" +msgstr "" + +#: mergeresultwindow.cpp:258 +#, kde-format +msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" +msgstr "" + +#: mergeresultwindow.cpp:456 +#, kde-format +msgid "" +"The output has been modified.\n" +"If you continue your changes will be lost." +msgstr "" +"輸出已被變更。\n" +"若您繼續,您的變更將會遺失。" + +#: mergeresultwindow.cpp:1020 pdiff.cpp:746 +#, kde-format +msgid "All input files are binary equal." +msgstr "所有輸入檔都有相同的內容。" + +#: mergeresultwindow.cpp:1022 +#, kde-format +msgid "All input files contain the same text." +msgstr "所有輸入檔都有相同的文字內容。" + +#: mergeresultwindow.cpp:1026 mergeresultwindow.cpp:1030 +#: mergeresultwindow.cpp:1034 pdiff.cpp:752 pdiff.cpp:756 pdiff.cpp:760 +#, kde-format +msgid "Files %1 and %2 are binary equal.\n" +msgstr "檔案 %1 與 %2 內容完全相同。\n" + +#: mergeresultwindow.cpp:1028 mergeresultwindow.cpp:1032 +#: mergeresultwindow.cpp:1036 +#, kde-format +msgid "Files %1 and %2 have equal text.\n" +msgstr "檔案 %1 與 %2 內容文字完全相同。\n" + +#: mergeresultwindow.cpp:1042 +#, kde-format +msgid "" +"Total number of conflicts: %1\n" +"Number of automatically solved conflicts: %2\n" +"Number of unsolved conflicts: %3\n" +"%4" +msgstr "" + +#: mergeresultwindow.cpp:1048 +#, kde-format +msgid "Conflicts" +msgstr "衝突" + +#: mergeresultwindow.cpp:1833 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1841 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:1843 mergeresultwindow.cpp:2728 +#, kde-format +msgid "" +msgstr "" + +#: mergeresultwindow.cpp:2950 +#, kde-format +msgid "" +"Not all conflicts are solved yet.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2952 mergeresultwindow.cpp:2961 +#, kde-format +msgid "Conflicts Left" +msgstr "" + +#: mergeresultwindow.cpp:2959 +#, kde-format +msgid "" +"There is a line end style conflict. Please choose the line end style " +"manually.\n" +"File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 +#, kde-format +msgid "" +"\n" +"\n" +"Creating backup failed. File not saved." +msgstr "" + +#: mergeresultwindow.cpp:2973 mergeresultwindow.cpp:3020 +#, kde-format +msgid "File Save Error" +msgstr "檔案儲存錯誤" + +#: mergeresultwindow.cpp:3020 +#, kde-format +msgid "Error while writing." +msgstr "" + +#: mergeresultwindow.cpp:3095 +#, fuzzy, kde-format +#| msgid "Output" +msgid "Output:" +msgstr "輸出" + +#: mergeresultwindow.cpp:3108 mergeresultwindow.cpp:3298 +#, kde-format +msgid "[Modified]" +msgstr "[已修改]" + +#: mergeresultwindow.cpp:3115 +#, fuzzy, kde-format +#| msgid "Encoding for saving" +msgid "Encoding for saving:" +msgstr "儲存的編碼" + +#: mergeresultwindow.cpp:3215 +#, kde-format +msgid "Conflict" +msgstr "衝突" + +#: mergeresultwindow.cpp:3247 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from A: %1" +msgstr "編解碼器" + +#: mergeresultwindow.cpp:3249 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from B: %1" +msgstr "編解碼器" + +#: mergeresultwindow.cpp:3251 +#, fuzzy, kde-format +#| msgid "Codec from" +msgid "Codec from C: %1" +msgstr "編解碼器" + +#. i18n: ectx: property (windowTitle), widget (QDialog, OpenDialog) +#: opendialog.ui:20 +#, kde-format +msgid "Dialog" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_2) +#: opendialog.ui:43 +#, fuzzy, kde-format +#| msgid "B" +msgid "B:" +msgstr "B" + +#. i18n: ectx: property (text), widget (QLabel, label) +#: opendialog.ui:50 +#, kde-format +msgid "A (Base):" +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_4) +#: opendialog.ui:57 +#, fuzzy, kde-format +#| msgid "Output (optional):" +msgid "Output (Optional):" +msgstr "輸出 (選擇性):" + +#. i18n: ectx: property (text), widget (QPushButton, fileSelectC) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectB) +#. i18n: ectx: property (text), widget (QPushButton, fileSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFile) +#: opendialog.ui:71 opendialog.ui:198 opendialog.ui:242 opendialog.ui:253 +#, kde-format +msgid "File..." +msgstr "檔案..." + +#. i18n: ectx: property (text), widget (QPushButton, swapCopy) +#: opendialog.ui:103 +#, kde-format +msgid "Swap/Copy Names..." +msgstr "" + +#. i18n: ectx: property (text), widget (QLabel, label_3) +#: opendialog.ui:125 +#, kde-format +msgid "C (Optional):" +msgstr "C (選擇性):" + +#. i18n: ectx: property (text), widget (QPushButton, folderSelectB) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectC) +#. i18n: ectx: property (text), widget (QPushButton, folderSelectA) +#. i18n: ectx: property (text), widget (QPushButton, selectOutputFolder) +#: opendialog.ui:209 opendialog.ui:220 opendialog.ui:231 opendialog.ui:286 +#, kde-format +msgid "Folder..." +msgstr "" + +#: optiondialog.cpp:44 +#, kde-format +msgid "" +"A version control history entry consists of several lines.\n" +"Specify the regular expression to detect the first line (without the leading " +"comment).\n" +"Use parentheses to group the keys you want to use for sorting.\n" +"If left empty, then KDiff3 assumes that empty lines separate history " +"entries.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:49 +#, kde-format +msgid "" +"Each pair of parentheses used in the regular expression for the history " +"start entry\n" +"groups a key that can be used for sorting.\n" +"Specify the list of keys (that are numbered in order of occurrence\n" +"starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" +"If left empty, then no sorting will be done.\n" +"See the documentation for details." +msgstr "" + +#: optiondialog.cpp:55 +#, kde-format +msgid "" +"Regular expression for lines where KDiff3 should automatically choose one " +"source.\n" +"When a line with a conflict matches the regular expression then\n" +"- if available - C, otherwise B will be chosen." +msgstr "" + +#: optiondialog.cpp:58 +#, kde-format +msgid "" +"Regular expression for the start of the version control history entry.\n" +"Usually this line contains the \"$Log$\" keyword.\n" +"Default value: \".*\\$Log.*\\$.*\"" +msgstr "" + +#: optiondialog.cpp:105 +#, kde-format +msgid "" +"The quick brown fox jumps over the river\n" +"but the little red hen escapes with a shiver.\n" +":-)" +msgstr "" + +#: optiondialog.cpp:114 +#, kde-format +msgid "Change Font" +msgstr "" + +#: optiondialog.cpp:130 optiondialog.cpp:140 +#, kde-format +msgid "" +"Font: %1, %2, %3\n" +"\n" +"Example:" +msgstr "" + +#: optiondialog.cpp:383 +#, kde-format +msgid "Unicode" +msgstr "萬國碼" + +#: optiondialog.cpp:384 +#, kde-format +msgid "Latin1" +msgstr "Latin1" + +#: optiondialog.cpp:403 +#, kde-format +msgid "Change this if non-ASCII characters are not displayed correctly." +msgstr "" + +#: optiondialog.cpp:490 +#, kde-format +msgid "Configure" +msgstr "設定" + +#: optiondialog.cpp:551 +#, kde-format +msgid "Font" +msgstr "字型" + +#: optiondialog.cpp:553 +#, kde-format +msgid "Editor & Diff Output Font" +msgstr "" + +#: optiondialog.cpp:571 +#, kde-format +msgid "Application font" +msgstr "" + +#: optiondialog.cpp:576 +#, fuzzy, kde-format +#| msgid "File Save Error" +msgid "File view font" +msgstr "檔案儲存錯誤" + +#: optiondialog.cpp:595 +#, kde-format +msgctxt "Title for color settings page" +msgid "Color" +msgstr "顏色" + +#: optiondialog.cpp:596 +#, kde-format +msgid "Colors Settings" +msgstr "" + +#: optiondialog.cpp:621 +#, kde-format +msgid "Editor and Diff Views:" +msgstr "" + +#: optiondialog.cpp:629 +#, kde-format +msgid "Foreground color:" +msgstr "前景顏色:" + +#: optiondialog.cpp:637 +#, kde-format +msgid "Background color:" +msgstr "背景顏色:" + +#: optiondialog.cpp:647 +#, kde-format +msgid "Diff background color:" +msgstr "" + +#: optiondialog.cpp:656 +#, kde-format +msgid "Color A:" +msgstr "" + +#: optiondialog.cpp:665 +#, kde-format +msgid "Color B:" +msgstr "" + +#: optiondialog.cpp:674 +#, kde-format +msgid "Color C:" +msgstr "" + +#: optiondialog.cpp:682 +#, kde-format +msgid "Conflict color:" +msgstr "" + +#: optiondialog.cpp:691 +#, kde-format +msgid "Current range background color:" +msgstr "" + +#: optiondialog.cpp:700 +#, kde-format +msgid "Current range diff background color:" +msgstr "" + +#: optiondialog.cpp:708 +#, kde-format +msgid "Color for manually aligned difference ranges:" +msgstr "" + +#: optiondialog.cpp:715 +#, kde-format +msgid "Folder Comparison View:" +msgstr "" + +#: optiondialog.cpp:721 +#, kde-format +msgid "Newest file color:" +msgstr "" + +#: optiondialog.cpp:726 +#, kde-format +msgid "" +"Changing this color will only be effective when starting the next folder " +"comparison." +msgstr "" + +#: optiondialog.cpp:731 +#, kde-format +msgid "Oldest file color:" +msgstr "" + +#: optiondialog.cpp:740 +#, kde-format +msgid "Middle age file color:" +msgstr "" + +#: optiondialog.cpp:749 +#, kde-format +msgid "Color for missing files:" +msgstr "" + +#: optiondialog.cpp:763 +#, kde-format +msgid "Editor" +msgstr "編輯器" + +#: optiondialog.cpp:764 +#, kde-format +msgid "Editor Behavior" +msgstr "" + +#: optiondialog.cpp:786 +#, kde-format +msgid "Tab inserts spaces" +msgstr "" + +#: optiondialog.cpp:790 +#, kde-format +msgid "" +"On: Pressing tab generates the appropriate number of spaces.\n" +"Off: A tab character will be inserted." +msgstr "" + +#: optiondialog.cpp:795 +#, kde-format +msgid "Tab size:" +msgstr "定位字元寬度:" + +#: optiondialog.cpp:802 +#, kde-format +msgid "Auto indentation" +msgstr "" + +#: optiondialog.cpp:806 +#, kde-format +msgid "On: The indentation of the previous line is used for a new line.\n" +msgstr "" + +#: optiondialog.cpp:809 +#, kde-format +msgid "Auto copy selection" +msgstr "" + +#: optiondialog.cpp:813 +#, kde-format +msgid "" +"On: Any selection is immediately written to the clipboard.\n" +"Off: You must explicitly copy e.g. via Ctrl-C." +msgstr "" + +#: optiondialog.cpp:823 +#, fuzzy, kde-format +#| msgid "Unix" +msgctxt "Unix line ending" +msgid "Unix" +msgstr "Unix" + +#: optiondialog.cpp:824 +#, fuzzy, kde-format +#| msgid "&Window" +msgctxt "Dos/Windows line ending" +msgid "Dos/Windows" +msgstr "視窗(&W)" + +#: optiondialog.cpp:825 +#, kde-format +msgctxt "Automatically detected line ending" +msgid "Autodetect" +msgstr "" + +#: optiondialog.cpp:828 +#, kde-format +msgid "" +"Sets the line endings for when an edited file is saved.\n" +"DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" +msgstr "" + +#: optiondialog.cpp:838 +#, kde-format +msgid "Diff" +msgstr "比較" + +#: optiondialog.cpp:839 +#, kde-format +msgid "Diff Settings" +msgstr "Diff 設定" + +#. i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); +#. addOptionItem(pPreserveCarriageReturn); +#. gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); +#. pPreserveCarriageReturn->setToolTip( i18n( +#. "Show carriage return characters '\\r' if they exist.\n" +#. "Helps to compare files that were modified under different operating systems.") +#. ); +#. ++line; +#. +#: optiondialog.cpp:873 +#, kde-format +msgid "Ignore numbers (treat as white space)" +msgstr "" + +#: optiondialog.cpp:877 +#, kde-format +msgid "" +"Ignore number characters during line matching phase. (Similar to Ignore " +"white space.)\n" +"Might help to compare files with numeric data." +msgstr "" + +#: optiondialog.cpp:881 +#, kde-format +msgid "Ignore C/C++ comments (treat as white space)" +msgstr "" + +#: optiondialog.cpp:884 +#, kde-format +msgid "Treat C/C++ comments like white space." +msgstr "" + +#: optiondialog.cpp:887 +#, kde-format +msgid "Ignore case (treat as white space)" +msgstr "" + +#: optiondialog.cpp:891 +#, kde-format +msgid "Treat case differences like white space changes. ('a'<=>'A')" +msgstr "" + +#: optiondialog.cpp:894 +#, kde-format +msgid "Preprocessor command:" +msgstr "" + +#: optiondialog.cpp:899 +#, kde-format +msgid "User defined pre-processing. (See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:902 +#, kde-format +msgid "Line-matching preprocessor command:" +msgstr "逐行比對預處理指令:" + +#: optiondialog.cpp:907 +#, kde-format +msgid "" +"This pre-processor is only used during line matching.\n" +"(See the docs for details.)" +msgstr "" + +#: optiondialog.cpp:910 +#, kde-format +msgid "Try hard (slower)" +msgstr "" + +#: optiondialog.cpp:914 +#, kde-format +msgid "" +"Enables the --minimal option for the external diff.\n" +"The analysis of big files will be much slower." +msgstr "" + +#: optiondialog.cpp:918 +#, kde-format +msgid "Align B and C for 3 input files" +msgstr "" + +#: optiondialog.cpp:922 +#, kde-format +msgid "" +"Try to align B and C when comparing or merging three input files.\n" +"Not recommended for merging because merge might get more complicated.\n" +"(Default is off.)" +msgstr "" + +#: optiondialog.cpp:933 +#, fuzzy, kde-format +#| msgid "Merge" +msgctxt "Settings page" +msgid "Merge" +msgstr "合併" + +#: optiondialog.cpp:934 +#, kde-format +msgid "Merge Settings" +msgstr "" + +#: optiondialog.cpp:957 +#, kde-format +msgid "Auto advance delay (ms):" +msgstr "" + +#: optiondialog.cpp:963 +#, kde-format +msgid "" +"When in Auto-Advance mode the result of the current selection is shown \n" +"for the specified time, before jumping to the next conflict. Range: 0-2000 ms" +msgstr "" + +#: optiondialog.cpp:967 +#, kde-format +msgid "Show info dialogs" +msgstr "" + +#: optiondialog.cpp:970 +#, kde-format +msgid "Show a dialog with information about the number of conflicts." +msgstr "" + +#: optiondialog.cpp:973 +#, kde-format +msgid "White space 2-file merge default:" +msgstr "" + +#: optiondialog.cpp:978 optiondialog.cpp:991 +#, kde-format +msgid "Manual Choice" +msgstr "" + +#: optiondialog.cpp:982 optiondialog.cpp:996 +#, kde-format +msgid "" +"Allow the merge algorithm to automatically select an input for white-space-" +"only changes." +msgstr "" + +#: optiondialog.cpp:986 +#, kde-format +msgid "White space 3-file merge default:" +msgstr "" + +#: optiondialog.cpp:1000 +#, kde-format +msgid "Automatic Merge Regular Expression" +msgstr "" + +#: optiondialog.cpp:1008 smalldialogs.cpp:387 +#, kde-format +msgid "Auto merge regular expression:" +msgstr "自動合併正規表示式:" + +#: optiondialog.cpp:1016 +#, kde-format +msgid "Run regular expression auto merge on merge start" +msgstr "" + +#: optiondialog.cpp:1019 +#, kde-format +msgid "" +"Run the merge for auto merge regular expressions\n" +"immediately when a merge starts.\n" +msgstr "" + +#: optiondialog.cpp:1024 +#, kde-format +msgid "Version Control History Merging" +msgstr "" + +#: optiondialog.cpp:1032 smalldialogs.cpp:414 +#, kde-format +msgid "History start regular expression:" +msgstr "" + +#: optiondialog.cpp:1040 smalldialogs.cpp:442 +#, kde-format +msgid "History entry start regular expression:" +msgstr "" + +#: optiondialog.cpp:1056 +#, kde-format +msgid "History merge sorting" +msgstr "" + +#: optiondialog.cpp:1059 +#, kde-format +msgid "Sort version control history by a key." +msgstr "" + +#: optiondialog.cpp:1069 +#, kde-format +msgid "History entry start sort key order:" +msgstr "" + +#: optiondialog.cpp:1079 +#, kde-format +msgid "Merge version control history on merge start" +msgstr "" + +#: optiondialog.cpp:1082 +#, kde-format +msgid "Run version control history automerge on merge start." +msgstr "" + +#: optiondialog.cpp:1086 +#, kde-format +msgid "Max number of history entries:" +msgstr "" + +#: optiondialog.cpp:1090 +#, kde-format +msgid "Cut off after specified number. Use -1 for infinite number of entries." +msgstr "" + +#: optiondialog.cpp:1094 +#, kde-format +msgid "Test your regular expressions" +msgstr "" + +#: optiondialog.cpp:1099 +#, kde-format +msgid "Irrelevant merge command:" +msgstr "" + +#: optiondialog.cpp:1104 +#, kde-format +msgid "" +"If specified this script is run after automerge\n" +"when no other relevant changes were detected.\n" +"Called with the parameters: filename1 filename2 filename3" +msgstr "" + +#: optiondialog.cpp:1109 +#, kde-format +msgid "Auto save and quit on merge without conflicts" +msgstr "" + +#: optiondialog.cpp:1113 +#, kde-format +msgid "" +"If KDiff3 was started for a file-merge from the command line and all\n" +"conflicts are solvable without user interaction then automatically save and " +"quit.\n" +"(Similar to command line option \"--auto\".)" +msgstr "" + +#: optiondialog.cpp:1145 +#, kde-format +msgid "Recursive folders" +msgstr "" + +#: optiondialog.cpp:1148 +#, kde-format +msgid "Whether to analyze subfolders or not." +msgstr "" + +#: optiondialog.cpp:1150 +#, kde-format +msgid "File pattern(s):" +msgstr "" + +#: optiondialog.cpp:1156 +#, kde-format +msgid "" +"Pattern(s) of files to be analyzed. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1161 +#, kde-format +msgid "File-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1167 +#, kde-format +msgid "" +"Pattern(s) of files to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1172 +#, kde-format +msgid "Folder-anti-pattern(s):" +msgstr "" + +#: optiondialog.cpp:1178 +#, kde-format +msgid "" +"Pattern(s) of folders to be excluded from analysis. \n" +"Wildcards: '*' and '?'\n" +"Several Patterns can be specified by using the separator: ';'" +msgstr "" + +#: optiondialog.cpp:1183 +#, kde-format +msgid "Use Ignore File" +msgstr "" + +#: optiondialog.cpp:1187 +#, kde-format +msgid "" +"Extends the antipattern to anything that would be ignored by source " +"control.\n" +"Via local ignore files this can be folder-specific." +msgstr "" + +#: optiondialog.cpp:1191 +#, kde-format +msgid "Find hidden files and folders" +msgstr "" + +#: optiondialog.cpp:1194 +#, kde-format +msgid "Finds hidden files and folders." +msgstr "" + +#: optiondialog.cpp:1197 +#, kde-format +msgid "Follow file links" +msgstr "" + +#: optiondialog.cpp:1201 +#, kde-format +msgid "" +"On: Compare the file the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1205 +#, kde-format +msgid "Follow folder links" +msgstr "" + +#: optiondialog.cpp:1209 +#, kde-format +msgid "" +"On: Compare the folder the link points to.\n" +"Off: Compare the links." +msgstr "" + +#: optiondialog.cpp:1218 +#, kde-format +msgid "Case sensitive filename comparison" +msgstr "" + +#: optiondialog.cpp:1222 +#, kde-format +msgid "" +"The folder comparison will compare files or folders when their names match.\n" +"Set this option if the case of the names must match. (Default for Windows is " +"off, otherwise on.)" +msgstr "" + +#: optiondialog.cpp:1226 +#, kde-format +msgid "Unfold all subfolders on load" +msgstr "" + +#: optiondialog.cpp:1230 +#, kde-format +msgid "" +"On: Unfold all subfolders when starting a folder diff.\n" +"Off: Leave subfolders folded." +msgstr "" + +#: optiondialog.cpp:1234 +#, kde-format +msgid "Skip folder status report" +msgstr "" + +#: optiondialog.cpp:1238 +#, kde-format +msgid "" +"On: Do not show the Folder Comparison Status.\n" +"Off: Show the status dialog on start." +msgstr "" + +#: optiondialog.cpp:1242 +#, kde-format +msgid "File Comparison Mode" +msgstr "" + +#: optiondialog.cpp:1247 +#, kde-format +msgid "Binary comparison" +msgstr "" + +#: optiondialog.cpp:1249 +#, kde-format +msgid "Binary comparison of each file. (Default)" +msgstr "" + +#: optiondialog.cpp:1252 +#, kde-format +msgid "Full analysis" +msgstr "" + +#: optiondialog.cpp:1254 +#, kde-format +msgid "" +"Do a full analysis and show statistics information in extra columns.\n" +"(Slower than a binary comparison, much slower for binary files.)" +msgstr "" + +#: optiondialog.cpp:1258 +#, kde-format +msgid "Trust the size and modification date (unsafe)" +msgstr "" + +#: optiondialog.cpp:1260 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"Files with equal contents but different modification dates will appear as " +"different.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1265 +#, kde-format +msgid "" +"Trust the size and date, but use binary comparison if date does not match " +"(unsafe)" +msgstr "" + +#: optiondialog.cpp:1267 +#, kde-format +msgid "" +"Assume that files are equal if the modification date and file length are " +"equal.\n" +"If the dates are not equal but the sizes are, use binary comparison.\n" +"Useful for big folders or slow networks." +msgstr "" + +#: optiondialog.cpp:1272 +#, kde-format +msgid "Trust the size (unsafe)" +msgstr "" + +#: optiondialog.cpp:1274 +#, kde-format +msgid "" +"Assume that files are equal if their file lengths are equal.\n" +"Useful for big folders or slow networks when the date is modified during " +"download." +msgstr "" + +#: optiondialog.cpp:1281 +#, kde-format +msgid "Synchronize folders" +msgstr "" + +#: optiondialog.cpp:1285 +#, kde-format +msgid "" +"Offers to store files in both folders so that\n" +"both folders are the same afterwards.\n" +"Works only when comparing two folders without specifying a destination." +msgstr "" + +#: optiondialog.cpp:1291 +#, kde-format +msgid "White space differences considered equal" +msgstr "" + +#: optiondialog.cpp:1295 +#, kde-format +msgid "" +"If files differ only by white space consider them equal.\n" +"This is only active when full analysis is chosen." +msgstr "" + +#: optiondialog.cpp:1301 +#, kde-format +msgid "Copy newer instead of merging (unsafe)" +msgstr "" + +#: optiondialog.cpp:1305 +#, kde-format +msgid "" +"Do not look inside, just take the newer file.\n" +"(Use this only if you know what you are doing!)\n" +"Only effective when comparing two folders." +msgstr "" + +#: optiondialog.cpp:1310 +#, kde-format +msgid "Backup files (.orig)" +msgstr "" + +#: optiondialog.cpp:1314 +#, kde-format +msgid "" +"If a file would be saved over an old file, then the old file\n" +"will be renamed with a '.orig' extension instead of being deleted." +msgstr "" + +#: optiondialog.cpp:1323 optiondialog.cpp:1324 +#, kde-format +msgid "Regional Settings" +msgstr "區域設定" + +#: optiondialog.cpp:1347 +#, kde-format +msgid "Use the same encoding for everything:" +msgstr "" + +#: optiondialog.cpp:1351 +#, kde-format +msgid "" +"Enable this allows to change all encodings by changing the first only.\n" +"Disable this if different individual settings are needed." +msgstr "" + +#: optiondialog.cpp:1355 +#, kde-format +msgid "Note: Local Encoding is \"%1\"" +msgstr "" + +#: optiondialog.cpp:1359 +#, kde-format +msgid "File Encoding for A:" +msgstr "" + +#: optiondialog.cpp:1366 +#, kde-format +msgid "" +"If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" +"If the file is not Unicode then the selected encoding will be used as " +"fallback.\n" +"(Unicode detection depends on the first bytes of a file.)" +msgstr "" + +#: optiondialog.cpp:1369 optiondialog.cpp:1380 optiondialog.cpp:1391 +#, kde-format +msgid "Auto Detect Unicode" +msgstr "" + +#: optiondialog.cpp:1375 +#, kde-format +msgid "File Encoding for B:" +msgstr "" + +#: optiondialog.cpp:1386 +#, kde-format +msgid "File Encoding for C:" +msgstr "" + +#: optiondialog.cpp:1397 +#, kde-format +msgid "File Encoding for Merge Output and Saving:" +msgstr "" + +#: optiondialog.cpp:1402 +#, kde-format +msgid "Auto Select" +msgstr "" + +#: optiondialog.cpp:1406 +#, kde-format +msgid "" +"If enabled then the encoding from the input files is used.\n" +"In ambiguous cases a dialog will ask the user to choose the encoding for " +"saving." +msgstr "" + +#: optiondialog.cpp:1409 +#, kde-format +msgid "File Encoding for Preprocessor Files:" +msgstr "" + +#: optiondialog.cpp:1421 +#, kde-format +msgid "Right To Left Language" +msgstr "" + +#: optiondialog.cpp:1425 +#, kde-format +msgid "" +"Some languages are read from right to left.\n" +"This setting will change the viewer and editor accordingly." +msgstr "" + +#: optiondialog.cpp:1435 +#, kde-format +msgid "Integration" +msgstr "整合" + +#: optiondialog.cpp:1436 +#, kde-format +msgid "Integration Settings" +msgstr "" + +#: optiondialog.cpp:1457 +#, kde-format +msgid "Command line options to ignore:" +msgstr "" + +#: optiondialog.cpp:1463 +#, kde-format +msgid "" +"List of command line options that should be ignored when KDiff3 is used by " +"other tools.\n" +"Several values can be specified if separated via ';'\n" +"This will suppress the \"Unknown option\" error." +msgstr "" + +#: optiondialog.cpp:1468 +#, kde-format +msgid "Quit also via Escape key" +msgstr "" + +#: optiondialog.cpp:1472 +#, kde-format +msgid "" +"Fast method to exit.\n" +"For those who are used to using the Escape key." +msgstr "" + +#: optiondialog.cpp:1531 +#, kde-format +msgid "This resets all options. Not only those of the current topic." +msgstr "" + +#: pdiff.cpp:92 +#, kde-format +msgid "PreprocessorCmd: " +msgstr "" + +#: pdiff.cpp:94 +#, kde-format +msgid "The following option(s) you selected might change data:\n" +msgstr "" + +#: pdiff.cpp:95 +#, kde-format +msgid "" +"\n" +"Most likely this is not wanted during a merge.\n" +"Do you want to disable these settings or continue with these settings active?" +msgstr "" + +#: pdiff.cpp:97 +#, kde-format +msgid "Option Unsafe for Merging" +msgstr "" + +#: pdiff.cpp:98 +#, kde-format +msgid "Use These Options During Merge" +msgstr "" + +#: pdiff.cpp:99 +#, kde-format +msgid "Disable Unsafe Options" +msgstr "" + +#: pdiff.cpp:127 +#, kde-format +msgid "Loading A" +msgstr "載入 A 中" + +#: pdiff.cpp:128 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading A: %1" +msgstr "載入 A 中" + +#: pdiff.cpp:137 +#, kde-format +msgid "Loading B" +msgstr "載入 B 中" + +#: pdiff.cpp:138 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading B: %1" +msgstr "載入 A 中" + +#: pdiff.cpp:168 pdiff.cpp:169 pdiff.cpp:210 pdiff.cpp:211 +#, kde-format +msgid "Diff: A <-> B" +msgstr "" + +#: pdiff.cpp:175 pdiff.cpp:176 pdiff.cpp:259 pdiff.cpp:260 pdiff.cpp:278 +#, kde-format +msgid "Linediff: A <-> B" +msgstr "" + +#: pdiff.cpp:195 +#, kde-format +msgid "Loading C" +msgstr "載入 C 中" + +#: pdiff.cpp:196 +#, fuzzy, kde-format +#| msgid "Loading A" +msgid "Loading C: %1" +msgstr "載入 A 中" + +#: pdiff.cpp:223 pdiff.cpp:224 +#, kde-format +msgid "Diff: A <-> C" +msgstr "" + +#: pdiff.cpp:239 pdiff.cpp:240 +#, kde-format +msgid "Diff: B <-> C" +msgstr "" + +#: pdiff.cpp:265 pdiff.cpp:266 pdiff.cpp:283 +#, kde-format +msgid "Linediff: B <-> C" +msgstr "" + +#: pdiff.cpp:271 pdiff.cpp:272 pdiff.cpp:288 +#, kde-format +msgid "Linediff: A <-> C" +msgstr "" + +#: pdiff.cpp:748 +#, kde-format +msgid "All input files contain the same text, but are not binary equal." +msgstr "所有輸入檔都有相同的文字內容,但檔案內容卻不完全相同。" + +#: pdiff.cpp:754 pdiff.cpp:758 pdiff.cpp:762 +#, kde-format +msgid "Files %1 and %2 have equal text, but are not binary equal. \n" +msgstr "檔案 %1 與 %2 內容文字完全相同,但檔案內容不完全相同。\n" + +#: pdiff.cpp:772 +#, kde-format +msgid "" +"Some input files do not seem to be pure text files.\n" +"Note that the KDiff3 merge was not meant for binary data.\n" +"Continue at your own risk." +msgstr "" + +#: pdiff.cpp:782 +#, kde-format +msgid ", B" +msgstr "" + +#: pdiff.cpp:784 +#, kde-format +msgid ", C" +msgstr "" + +#: pdiff.cpp:786 +#, kde-format +msgid "" +"Some input characters could not be converted to valid unicode.\n" +"You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" +"Do not save the result if unsure. Continue at your own risk.\n" +"Affected input files are in %1." +msgstr "" + +#: pdiff.cpp:878 +#, kde-format +msgid "Abort" +msgstr "中止" + +#: pdiff.cpp:884 pdiff.cpp:974 +#, kde-format +msgid "Opening files..." +msgstr "開啟檔案中..." + +#: pdiff.cpp:1060 +#, kde-format +msgid "Cutting selection..." +msgstr "正在剪下所選取的項目..." + +#: pdiff.cpp:1067 +#, kde-format +msgid "Copying selection to clipboard..." +msgstr "正在複製所選取的項目到剪貼簿..." + +#: pdiff.cpp:1076 +#, kde-format +msgid "Inserting clipboard contents..." +msgstr "正在插入剪貼簿內容..." + +#: pdiff.cpp:1471 +#, kde-format +msgid "Word wrap (Cancel disables word wrap)" +msgstr "" + +#: pdiff.cpp:1472 +#, kde-format +msgid "Calculating max width for horizontal scrollbar" +msgstr "" + +#: pdiff.cpp:1689 +#, kde-format +msgid "Save && Continue" +msgstr "儲存並繼續" + +#: pdiff.cpp:1690 +#, kde-format +msgid "Continue Without Saving" +msgstr "不儲存但繼續" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search complete." +msgstr "搜尋完成。" + +#: pdiff.cpp:1882 +#, kde-format +msgid "Search Complete" +msgstr "搜尋完成" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Nothing is selected in either diff input window." +msgstr "" + +#: pdiff.cpp:2063 +#, kde-format +msgid "Error while adding manual diff range" +msgstr "新增手動比對範圍時發生錯誤" + +#: progress.cpp:61 progress.cpp:73 +#, kde-format +msgid "&Cancel" +msgstr "取消(&C)" + +#: smalldialogs.cpp:81 smalldialogs.cpp:82 smalldialogs.cpp:83 +#, kde-format +msgid "Swap %1<->%2" +msgstr "交換 %1<->%2" + +#: smalldialogs.cpp:84 smalldialogs.cpp:85 smalldialogs.cpp:86 +#, kde-format +msgid "Copy %1->Output" +msgstr "複製 %1 -> 輸出" + +#: smalldialogs.cpp:87 smalldialogs.cpp:88 smalldialogs.cpp:89 +#, kde-format +msgid "Swap %1<->Output" +msgstr "交換 %1 <-> 輸出" + +#: smalldialogs.cpp:108 +#, kde-format +msgid "Configure..." +msgstr "設定..." + +#: smalldialogs.cpp:161 +#, fuzzy, kde-format +#| msgid "Opening files..." +msgid "Open Folder" +msgstr "開啟檔案中..." + +#: smalldialogs.cpp:162 +#, kde-format +msgid "Select Output File" +msgstr "" + +#: smalldialogs.cpp:162 smalldialogs.cpp:163 +#, kde-format +msgid "all/allfiles (*)" +msgstr "" + +#: smalldialogs.cpp:324 +#, kde-format +msgid "Search text:" +msgstr "搜尋文字:" + +#: smalldialogs.cpp:331 +#, kde-format +msgid "Case sensitive" +msgstr "區分大小寫" + +#: smalldialogs.cpp:334 +#, kde-format +msgid "Search A" +msgstr "搜尋 A" + +#: smalldialogs.cpp:339 +#, kde-format +msgid "Search B" +msgstr "搜尋 B" + +#: smalldialogs.cpp:344 +#, kde-format +msgid "Search C" +msgstr "搜尋 C" + +#: smalldialogs.cpp:349 +#, kde-format +msgid "Search output" +msgstr "搜尋輸出" + +#: smalldialogs.cpp:356 +#, kde-format +msgid "&Search" +msgstr "搜尋(&S)" + +#: smalldialogs.cpp:382 +#, kde-format +msgid "Regular Expression Tester" +msgstr "正規表示式測試器" + +#: smalldialogs.cpp:395 +#, kde-format +msgid "Example auto merge line:" +msgstr "" + +#: smalldialogs.cpp:397 +#, kde-format +msgid "To test auto merge, copy a line as used in your files." +msgstr "" + +#: smalldialogs.cpp:403 smalldialogs.cpp:431 smalldialogs.cpp:467 +#, kde-format +msgid "Match result:" +msgstr "" + +#: smalldialogs.cpp:422 +#, kde-format +msgid "Example history start line (with leading comment):" +msgstr "" + +#: smalldialogs.cpp:424 +#, kde-format +msgid "" +"Copy a history start line as used in your files,\n" +"including the leading comment." +msgstr "" + +#: smalldialogs.cpp:450 +#, kde-format +msgid "History sort key order:" +msgstr "" + +#: smalldialogs.cpp:458 +#, kde-format +msgid "Example history entry start line (without leading comment):" +msgstr "" + +#: smalldialogs.cpp:460 +#, kde-format +msgid "" +"Copy a history entry start line as used in your files,\n" +"but omit the leading comment." +msgstr "" + +#: smalldialogs.cpp:474 +#, kde-format +msgid "Sort key result:" +msgstr "" + +#: smalldialogs.cpp:522 smalldialogs.cpp:532 smalldialogs.cpp:552 +#, kde-format +msgid "Match success." +msgstr "" + +#: smalldialogs.cpp:526 smalldialogs.cpp:536 smalldialogs.cpp:558 +#, kde-format +msgid "Match failed." +msgstr "" + +#: smalldialogs.cpp:543 +#, kde-format +msgid "Opening and closing parentheses do not match in regular expression." +msgstr "" + +#: SourceData.cpp:153 +#, kde-format +msgid "Writing clipboard data to temp file failed." +msgstr "將剪貼簿資料寫入暫存檔失敗。" + +#: SourceData.cpp:158 +#, kde-format +msgid "From Clipboard" +msgstr "從剪貼簿" + +#: SourceData.cpp:367 +#, fuzzy, kde-format +#| msgid "Mix of links and normal files." +msgid "%1 is not a normal file." +msgstr "連結與一般檔案混合。" + +#: SourceData.cpp:461 +#, kde-format +msgid " Temp file is: %1" +msgstr "" + +#: SourceData.cpp:465 +#, kde-format +msgid "" +"Preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The preprocessing command will be disabled now." +msgstr "" +"預處理可能已失敗。請檢查此指令:\n" +"\n" +"%1\n" +"\n" +"預處理指令將會被關閉。" + +#: SourceData.cpp:476 SourceData.cpp:545 +#, kde-format +msgid "File %1 too large to process. Skipping." +msgstr "" + +#: SourceData.cpp:520 +#, kde-format +msgid "" +"The line-matching-preprocessing possibly failed. Check this command:\n" +"\n" +" %1\n" +"\n" +"The line-matching-preprocessing command will be disabled now." +msgstr "" +"逐行比對預處理可能已失敗。請檢查此指令:\n" +"\n" +"%1\n" +"\n" +"逐行比對預處理指令將被關閉。" + +#: Utils.cpp:68 +#, fuzzy, kde-format +#| msgid "Expecting space after closing apostroph." +msgid "Expecting space after closing quote." +msgstr "在關閉的撇號後面應該要有空白。" + +#: Utils.cpp:71 +#, kde-format +msgid "Unmatched quote." +msgstr "" + +#: Utils.cpp:80 +#, fuzzy, kde-format +#| msgid "Unexpected apostroph within argument." +msgid "Unexpected quote character within argument." +msgstr "在參數內有未預期中的撇號。" + +#: Utils.cpp:87 +#, kde-format +msgid "No program specified." +msgstr "沒有指定程式。" \ No newline at end of file diff --git a/po/zh_TW/kdiff3fileitemactionplugin.po b/po/zh_TW/kdiff3fileitemactionplugin.po new file mode 100644 index 0000000..07dd0fc --- /dev/null +++ b/po/zh_TW/kdiff3fileitemactionplugin.po @@ -0,0 +1,110 @@ +# Copyright (C) YEAR This_file_is_part_of_KDE +# This file is distributed under the same license as the PACKAGE package. +# +# Franklin Weng , 2011. +# pan93412 , 2018, 2019. +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: https://bugs.kde.org\n" +"POT-Creation-Date: 2021-02-19 15:09+0100\n" +"PO-Revision-Date: 2019-04-05 14:22+0800\n" +"Last-Translator: pan93412 \n" +"Language-Team: Chinese \n" +"Language: zh_TW\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 19.03.80\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: kdiff3fileitemaction.cpp:81 +#, kde-format +msgid "KDiff3..." +msgstr "KDiff3…" + +#: kdiff3fileitemaction.cpp:106 +#, kde-format +msgid "Compare with %1" +msgstr "與 %1 比對" + +#: kdiff3fileitemaction.cpp:112 +#, kde-format +msgid "Merge with %1" +msgstr "與 %1 合併" + +#: kdiff3fileitemaction.cpp:118 +#, kde-format +msgid "Save '%1' for later" +msgstr "先儲存 %1" + +#: kdiff3fileitemaction.cpp:124 +#, kde-format +msgid "3-way merge with base" +msgstr "與基底做三方合併" + +#: kdiff3fileitemaction.cpp:131 +#, kde-format +msgid "Compare with..." +msgstr "比較…" + +#: kdiff3fileitemaction.cpp:144 +#, kde-format +msgid "Clear list" +msgstr "清除清單" + +#: kdiff3fileitemaction.cpp:152 +#, kde-format +msgid "Compare" +msgstr "比較" + +#: kdiff3fileitemaction.cpp:158 +#, kde-format +msgid "3 way comparison" +msgstr "三方比對" + +#: kdiff3fileitemaction.cpp:162 +#, kde-format +msgid "About KDiff3 menu plugin..." +msgstr "關於 KDiff3 選單外掛程式..." + +#: kdiff3fileitemaction.cpp:270 +#, kde-format +msgid "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" +msgstr "KDiff3 檔案項目動作外掛程式:版權 (C) 2011 Joachim Eibl\n" + +#: kdiff3fileitemaction.cpp:271 +#, fuzzy, kde-format +#| msgid "" +#| "Using the context menu extension:\n" +#| "For simple comparison of two selected files choose \"Compare\".\n" +#| "If the other file is somewhere else \"Save\" the first file for later. It " +#| "will appear in the \"Compare with...\" submenu. Then use \"Compare With\" " +#| "on the second file.\n" +#| "For a 3-way merge first \"Save\" the base file, then the branch to merge " +#| "and choose \"3-way merge with base\" on the other branch which will be " +#| "used as destination.\n" +#| "Same also applies to directory comparison and merge." +msgid "" +"Using the context menu extension:\n" +"For simple comparison of two selected files choose \"Compare\".\n" +"If the other file is somewhere else \"Save\" the first file for later. It " +"will appear in the \"Compare with...\" submenu. Then use \"Compare With\" on " +"the second file.\n" +"For a 3-way merge first \"Save\" the base file, then the branch to merge and " +"choose \"3-way merge with base\" on the other branch which will be used as " +"destination.\n" +"Same also applies to folder comparison and merge." +msgstr "" +"使用內文選單延伸:\n" +"選擇「比較」簡單比較兩個選取的檔案。\n" +"若是另一個檔案在別處,請先「儲存」第一個檔案稍後使用,然後它會出現「比較對" +"象:」的子選單。再用它選擇第二個檔案。\n" +"要做三方的合併,先儲存基底檔,然後是要合併的分支,然後在做為目標的分支中選擇" +"「三方與基底合併」。\n" +"這些延伸對目錄的比較與合併也有效。" + +#: kdiff3fileitemaction.cpp:279 +#, kde-format +msgid "About KDiff3 File Item Action Plugin" +msgstr "關於 KDiff3 檔案項目動作外掛程式" \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..bc756d5 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,103 @@ +# SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de +# SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com +# SPDX-License-Identifier: GPL-2.0-or-later + +########### kdiff3 KPart ############### +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Parts WidgetsAddons) + +set(kdiff3part_PART_SRCS + kdiff3_part.cpp + kdiff3.cpp + DirectoryInfo.cpp + directorymergewindow.cpp + merger.cpp + pdiff.cpp + difftextwindow.cpp + diff.cpp + optiondialog.cpp + mergeresultwindow.cpp + fileaccess.cpp + DefaultFileAccessJobHandler.cpp + gnudiff_analyze.cpp + gnudiff_io.cpp + gnudiff_xmalloc.cpp + common.cpp + smalldialogs.cpp + progress.cpp + ProgressProxyExtender.cpp + PixMapUtils.cpp + MergeFileInfos.cpp + Utils.cpp + selection.cpp + ignorelist.cpp + SourceData.cpp + Overview.cpp + Logging.cpp + FileNameLineEdit.cpp + MergeEditLine.cpp + Options.cpp + CommentParser.cpp ) + +ki18n_wrap_ui(kdiff3part_PART_SRCS + scroller.ui + opendialog.ui +) + +add_library(kdiff3part MODULE ${kdiff3part_PART_SRCS}) + +set_target_properties(kdiff3part PROPERTIES DEFINE_SYMBOL KDIFF3_PART) +target_compile_features(kdiff3part PRIVATE ${needed_features}) +target_link_libraries(kdiff3part ${KDiff3_LIBRARIES} KF5::Parts KF5::Crash) +target_compile_definitions(kdiff3part PRIVATE -DTRANSLATION_DOMAIN=\"kdiff3\") + +install(TARGETS kdiff3part DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/parts ) + +########### kdiff3 executable ############### +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS Parts WidgetsAddons Config) + +set(kdiff3_SRCS + main.cpp + kdiff3_shell.cpp + ${kdiff3part_PART_SRCS} + ) + +if(BUILD_TESTING) + add_subdirectory( autotests ) +endif() +#cann't use add_subdirectory because it changes the scope. +include(icons/CMakeLists.txt) +add_executable(kdiff3 ${kdiff3_SRCS}) + +target_link_libraries(kdiff3 KF5::ConfigCore KF5::ConfigGui KF5::Parts KF5::Crash ${KDiff3_LIBRARIES} ) +target_compile_features(kdiff3 PRIVATE ${needed_features}) + +# See https://cmake.org/cmake/help/v3.15/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.html +if(APPLE) + set_property( + TARGET kdiff3 + PROPERTY MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/MacOSXBundleInfo.plist.in + ) + + # These are substituted by CMake into plist.in. + set(MACOSX_BUNDLE_DISPLAY_NAME "KDiff3") + set(MACOSX_BUNDLE_GUI_IDENTIFIER "org.kde.KDiff3") + set(MACOSX_BUNDLE_BUNDLE_NAME "KDiff3") + set(MACOSX_BUNDLE_DISPLAY_NAME "KDiff3") + set(MACOSX_BUNDLE_INFO_STRING "KDiff3 - Diff/Patch Frontend") + set(MACOSX_BUNDLE_LONG_VERSION_STRING "KDiff3 ${KDIFF3_VERSION}") + set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${KDIFF3_VERSION_MAJOR}.${KDIFF3_VERSION_MINOR}") + set(MACOSX_BUNDLE_BUNDLE_VERSION "${KDIFF3_VERSION}") + set(MACOSX_BUNDLE_COPYRIGHT "2003-2020 The KDiff3 Authors") +endif() + +install(TARGETS kdiff3 ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) + + +########### install files ############### + +install( FILES kdiff3_part.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/kdiff3part ) +install( FILES kdiff3_shell.rc DESTINATION ${KDE_INSTALL_KXMLGUI5DIR}/kdiff3 ) +#install( PROGRAMS kdiff3.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) +install( PROGRAMS org.kde.kdiff3.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) +install( FILES org.kde.kdiff3.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR} ) + diff --git a/src/CommentParser.cpp b/src/CommentParser.cpp new file mode 100644 index 0000000..fcf229a --- /dev/null +++ b/src/CommentParser.cpp @@ -0,0 +1,174 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "CommentParser.h" + +#include "TypeUtils.h" + +#include +#include +#include +#include + +void DefaultCommentParser::processChar(const QString &line, const QChar &inChar) +{ + if(!bIsEscaped) + { + switch(inChar.unicode()) + { + case '\\': + if(bInString) + bIsEscaped = true; + break; + case '\'': + case '"': + if(!inComment()) + { + if(!bInString) + { + bInString = true; + mStartChar = inChar; + } + else if(mStartChar == inChar) + { + bInString = false; + } + } + break; + case '/': + if(bInString) + break; + + if(!inComment() && mLastChar == '/') + { + mCommentType = singleLine; + mIsPureComment = mIsCommentOrWhite = line.startsWith(QLatin1String("//")); + lastComment.startOffset = offset - 1; + if(lastComment.startOffset != 0) //whitespace at begining + { + mIsPureComment = false; + } + } + else if(mLastChar == '*' && mCommentType == multiLine) + { + //ending multi-line comment + mCommentType = none; + lastComment.endOffset = offset + 1; //include last char in offset + comments.push_back(lastComment); + if(!isFirstLine) + mIsPureComment = mIsCommentOrWhite = line.endsWith(QLatin1String("*/")) ? true : mIsCommentOrWhite; + } + break; + case '*': + if(bInString) + break; + + if(mLastChar == '/' && !inComment()) + { + mCommentType = multiLine; + mIsPureComment = mIsCommentOrWhite = line.startsWith(QLatin1String("/*")) ? true : mIsCommentOrWhite; + isFirstLine = true; + lastComment.startOffset = offset - 1; + if(lastComment.startOffset != 0) //whitespace at begining + { + mIsPureComment = false; + } + } + break; + case '\n': + if(mCommentType == singleLine) + { + mCommentType = none; + lastComment.endOffset = offset; + comments.push_back(lastComment); + } + + if(mCommentType == multiLine && !isFirstLine) + { + mIsPureComment = mIsCommentOrWhite = true; + } + + if(lastComment.startOffset > 0 && lastComment.endOffset == 0) + { + lastComment.endOffset = offset; + comments.push_back(lastComment); + } + + isFirstLine = false; + + break; + default: + if(inComment()) + { + break; + } + + mIsPureComment = mIsCommentOrWhite = false; + break; + } + + mLastChar = inChar; + } + else + { + bIsEscaped = false; + mLastChar = QChar(); + } + + ++offset; +}; + +/* + Find comments if any and set its pure comment flag if it has nothing but whitespace and comments. +*/ +void DefaultCommentParser::processLine(const QString &line) +{ + offset = line.indexOf(QRegularExpression("[\\S]", QRegularExpression::UseUnicodePropertiesOption)); + const QtNumberType trailIndex = line.lastIndexOf(QRegularExpression("\\s+$", QRegularExpression::UseUnicodePropertiesOption)); + lastComment.startOffset = lastComment.endOffset = 0; //reset these for each line + comments.clear(); + + //remove trailing and ending spaces. + const QString trimmedLine = line.trimmed(); + + for(const QChar &c : trimmedLine) + { + processChar(trimmedLine, c); + } + + /* + Line has trailing space after multi-line comment ended. + */ + if(trailIndex != -1 && !inComment()) + { + mIsPureComment = false; + } + + processChar(trimmedLine, '\n'); +} + +/* + Modifies the input data, and replaces comments with whitespace when the line contains other data too. +*/ +void DefaultCommentParser::removeComment(QString &line) +{ + if(isSkipable() || lastComment.startOffset == lastComment.endOffset) return; + + for(const CommentRange &range : comments) + { + /* + Q_ASSERT isn't useful during auto testing as it causes the QTest not to show the actual line that + the test failed on. + */ +#ifndef AUTOTEST + Q_ASSERT(range.endOffset <= line.length() && range.startOffset <= line.length()); + Q_ASSERT(range.endOffset >= range.startOffset); +#endif + qint32 size = range.endOffset - range.startOffset; + line.replace(range.startOffset, size, QString(" ").repeated(size)); + } +} diff --git a/src/CommentParser.h b/src/CommentParser.h new file mode 100644 index 0000000..d3a5196 --- /dev/null +++ b/src/CommentParser.h @@ -0,0 +1,71 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef COMMENTPARSER_H +#define COMMENTPARSER_H + +#include +#include +#include + +class CommentParser +{ + public: + virtual void processChar(const QString &line, const QChar &inChar) = 0; + virtual void processLine(const QString &line) = 0; + virtual void removeComment(QString &line) = 0; + virtual bool inComment() const = 0; + virtual bool isPureComment() const = 0; + + virtual bool isSkipable() const = 0; + virtual ~CommentParser() = default; +}; + +class DefaultCommentParser : public CommentParser +{ + private: + typedef enum {none, singleLine, multiLine}CommentType; + public: + void processLine(const QString &line) override; + inline bool inComment() const override { return mCommentType != none; }; + + inline bool isPureComment() const override { return mIsPureComment; }; + + inline bool isSkipable() const override { return mIsCommentOrWhite; }; + + void removeComment(QString &line) override; + protected: + friend class CommentParserTest; + + void processChar(const QString &line, const QChar &inChar) override; + //For tests only. + inline bool isEscaped() const{ return bIsEscaped; } + inline bool inString() const{ return bInString; } + private: + QChar mLastChar, mStartChar; + + struct CommentRange + { + qint32 startOffset = 0; + qint32 endOffset = 0; + }; + + qint32 offset = -1; + + CommentRange lastComment; + + std::vector comments; + + bool isFirstLine = false; + bool mIsCommentOrWhite = false; + bool mIsPureComment = false; + bool bInString = false; + bool bIsEscaped = false; + + CommentType mCommentType = none; +}; + +#endif // !COMMENTPASER_H diff --git a/src/ConfigValueMap.h b/src/ConfigValueMap.h new file mode 100644 index 0000000..6840aab --- /dev/null +++ b/src/ConfigValueMap.h @@ -0,0 +1,100 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef CONFIGVALUEMAP_H +#define CONFIGVALUEMAP_H + +#include "common.h" + +#include +#include +#include +#include +#include +#include +class ConfigValueMap : public ValueMap +{ + private: + KConfigGroup m_config; + + public: + explicit ConfigValueMap(const KConfigGroup& config) : m_config(config) {} + + void writeEntry(const QString& s, const QFont& v) override + { + m_config.writeEntry(s, v); + } + void writeEntry(const QString& s, const QColor& v) override + { + m_config.writeEntry(s, v); + } + void writeEntry(const QString& s, const QSize& v) override + { + m_config.writeEntry(s, v); + } + void writeEntry(const QString& s, const QPoint& v) override + { + m_config.writeEntry(s, v); + } + void writeEntry(const QString& s, int v) override + { + m_config.writeEntry(s, v); + } + void writeEntry(const QString& s, bool v) override + { + m_config.writeEntry(s, v); + } + void writeEntry(const QString& s, const QString& v) override + { + m_config.writeEntry(s, v); + } + void writeEntry(const QString& s, const char* v) override + { + m_config.writeEntry(s, v); + } +private: + QFont readFontEntry(const QString& s, const QFont* defaultVal) override + { + return m_config.readEntry(s, *defaultVal); + } + QColor readColorEntry(const QString& s, const QColor* defaultVal) override + { + return m_config.readEntry(s, *defaultVal); + } + QSize readSizeEntry(const QString& s, const QSize* defaultVal) override + { + return m_config.readEntry(s, *defaultVal); + } + QPoint readPointEntry(const QString& s, const QPoint* defaultVal) override + { + return m_config.readEntry(s, *defaultVal); + } + bool readBoolEntry(const QString& s, bool defaultVal) override + { + return m_config.readEntry(s, defaultVal); + } + int readNumEntry(const QString& s, int defaultVal) override + { + return m_config.readEntry(s, defaultVal); + } + QString readStringEntry(const QString& s, const QString& defaultVal) override + { + return m_config.readEntry(s, defaultVal); + } + + void writeEntry(const QString& s, const QStringList& v) override + { + m_config.writeEntry(s, v); + } + QStringList readListEntry(const QString& s, const QStringList& def) override + { + return m_config.readEntry(s, def); + } +}; + +#endif // !CONFIGVALUEMAP_H diff --git a/src/CvsIgnoreList.h b/src/CvsIgnoreList.h new file mode 100644 index 0000000..fe30a92 --- /dev/null +++ b/src/CvsIgnoreList.h @@ -0,0 +1,27 @@ +/** + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2021 Michael Reeves + * SPDX-License-Identifier: GPL-2.0-or-later + * + */ + +#ifndef CVSIGNORELIST_H +#define CVSIGNORELIST_H + +#include "fileaccess.h" + +#include "IgnoreList.h" + +#include +#include + +class CvsIgnoreList: public IgnoreList +{ + private: + friend class CvsIgnoreListTest; + inline const char* getVarName() const override { return "CVSIGNORE"; } + inline const QString getIgnoreName() const override { return QStringLiteral(".cvsignore"); } +}; + +#endif /* CVSIGNORELIST_H */ diff --git a/src/DefaultFileAccessJobHandler.cpp b/src/DefaultFileAccessJobHandler.cpp new file mode 100644 index 0000000..3e3ea99 --- /dev/null +++ b/src/DefaultFileAccessJobHandler.cpp @@ -0,0 +1,447 @@ +/** + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2021 Michael Reeves + * SPDX-License-Identifier: GPL-2.0-or-later + * + */ + +#include "DefaultFileAccessJobHandler.h" + +#include "defmac.h" +#include "Logging.h" +#include "progress.h" +#include "ProgressProxyExtender.h" + +#include +#include +#include +#include + +#include +#include + +bool DefaultFileAccessJobHandler::stat(short detail, bool bWantToWrite) +{ + m_bSuccess = false; + mFileAccess->setStatusText(QString()); + KIO::StatJob* pStatJob = KIO::stat(mFileAccess->url(), + bWantToWrite ? KIO::StatJob::DestinationSide : KIO::StatJob::SourceSide, + detail, KIO::HideProgressInfo); + + chk_connect(pStatJob, &KIO::StatJob::result, this, &DefaultFileAccessJobHandler::slotStatResult); + chk_connect(pStatJob, &KIO::StatJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + + ProgressProxy::enterEventLoop(pStatJob, i18n("Getting file status: %1", mFileAccess->prettyAbsPath())); + + return m_bSuccess; +} + +void DefaultFileAccessJobHandler::slotStatResult(KJob* pJob) +{ + int err = pJob->error(); + if(err != KJob::NoError) + { + qCDebug(kdiffFileAccess) << "slotStatResult: pJob->error() = " << pJob->error(); + if(err != KIO::ERR_DOES_NOT_EXIST) + { + pJob->uiDelegate()->showErrorMessage(); + m_bSuccess = false; + mFileAccess->reset(); + } + else + { + mFileAccess->doError(); + m_bSuccess = true; + } + } + else + { + m_bSuccess = true; + + const KIO::UDSEntry e = static_cast(pJob)->statResult(); + + mFileAccess->setFromUdsEntry(e, mFileAccess->parent()); + m_bSuccess = mFileAccess->isValid(); + } +} + +bool DefaultFileAccessJobHandler::get(void* pDestBuffer, long maxLength) +{ + ProgressProxyExtender pp; // Implicitly used in slotPercent() + + if(maxLength > 0 && !pp.wasCancelled()) + { + KIO::TransferJob* pJob = KIO::get(mFileAccess->url(), KIO::NoReload); + m_transferredBytes = 0; + m_pTransferBuffer = (char*)pDestBuffer; + m_maxLength = maxLength; + m_bSuccess = false; + mFileAccess->setStatusText(QString()); + + chk_connect(pJob, &KIO::TransferJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pJob, &KIO::TransferJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + chk_connect(pJob, &KIO::TransferJob::data, this, &DefaultFileAccessJobHandler::slotGetData); + chk_connect(pJob, SIGNAL(percent(KJob*,ulong)), &pp, SLOT(slotPercent(KJob*,ulong))); + + ProgressProxy::enterEventLoop(pJob, i18n("Reading file: %1", mFileAccess->prettyAbsPath())); + return m_bSuccess; + } + else + return true; +} + +void DefaultFileAccessJobHandler::slotGetData(KJob* pJob, const QByteArray& newData) +{ + if(pJob->error() != KJob::NoError) + { + qCDebug(kdiffFileAccess) << "slotGetData: pJob->error() = " << pJob->error(); + pJob->uiDelegate()->showErrorMessage(); + } + else + { + qint64 length = std::min(qint64(newData.size()), m_maxLength - m_transferredBytes); + ::memcpy(m_pTransferBuffer + m_transferredBytes, newData.data(), newData.size()); + m_transferredBytes += length; + } +} + +bool DefaultFileAccessJobHandler::put(const void* pSrcBuffer, long maxLength, bool bOverwrite, bool bResume, int permissions) +{ + ProgressProxyExtender pp; // Implicitly used in slotPercent() + if(maxLength > 0) + { + KIO::TransferJob* pJob = KIO::put(mFileAccess->url(), permissions, + KIO::HideProgressInfo | (bOverwrite ? KIO::Overwrite : KIO::DefaultFlags) | (bResume ? KIO::Resume : KIO::DefaultFlags)); + m_transferredBytes = 0; + m_pTransferBuffer = (char*)pSrcBuffer; + m_maxLength = maxLength; + m_bSuccess = false; + mFileAccess->setStatusText(QString()); + + chk_connect(pJob, &KIO::TransferJob::result, this, &DefaultFileAccessJobHandler::slotPutJobResult); + chk_connect(pJob, &KIO::TransferJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + chk_connect(pJob, &KIO::TransferJob::dataReq, this, &DefaultFileAccessJobHandler::slotPutData); + chk_connect(pJob, SIGNAL(percent(KJob*,ulong)), &pp, SLOT(slotPercent(KJob*,ulong))); + + ProgressProxy::enterEventLoop(pJob, i18n("Writing file: %1", mFileAccess->prettyAbsPath())); + return m_bSuccess; + } + else + return true; +} + +void DefaultFileAccessJobHandler::slotPutData(KIO::Job* pJob, QByteArray& data) +{ + if(pJob->error() != KJob::NoError) + { + qCDebug(kdiffFileAccess) << "slotPutData: pJob->error() = " << pJob->error(); + pJob->uiDelegate()->showErrorMessage(); + } + else + { + /* + Think twice before doing this in new code. + The maxChunkSize must be able to fit a 32-bit int. Given that the fallowing is safe. + + */ + qint64 maxChunkSize = 100000; + qint64 length = std::min(maxChunkSize, m_maxLength - m_transferredBytes); + data.resize((int)length); + if(data.size() == (int)length) + { + if(length > 0) + { + ::memcpy(data.data(), m_pTransferBuffer + m_transferredBytes, data.size()); + m_transferredBytes += length; + } + } + else + { + KMessageBox::error(ProgressProxy::getDialog(), i18n("Out of memory")); + data.resize(0); + m_bSuccess = false; + } + } +} + +void DefaultFileAccessJobHandler::slotPutJobResult(KJob* pJob) +{ + if(pJob->error() != KJob::NoError) + { + qCDebug(kdiffFileAccess) << "slotPutJobResult: pJob->error() = " << pJob->error(); + pJob->uiDelegate()->showErrorMessage(); + } + else + { + m_bSuccess = (m_transferredBytes == m_maxLength); // Special success condition + } +} + +bool DefaultFileAccessJobHandler::mkDirImp(const QString& dirName) +{ + if(dirName.isEmpty()) + return false; + + FileAccess dir(dirName); + if(dir.isLocal()) + { + return QDir().mkdir(dir.absoluteFilePath()); + } + else + { + m_bSuccess = false; + KIO::SimpleJob* pJob = KIO::mkdir(dir.url()); + chk_connect(pJob, &KIO::SimpleJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pJob, &KIO::SimpleJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + + ProgressProxy::enterEventLoop(pJob, i18n("Making folder: %1", dirName)); + return m_bSuccess; + } +} + +bool DefaultFileAccessJobHandler::rmDirImp(const QString& dirName) +{ + if(dirName.isEmpty()) + return false; + + FileAccess fa(dirName); + if(fa.isLocal()) + { + return QDir().rmdir(fa.absoluteFilePath()); + } + else + { + m_bSuccess = false; + KIO::SimpleJob* pJob = KIO::rmdir(fa.url()); + chk_connect(pJob, &KIO::SimpleJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pJob, &KIO::SimpleJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + + ProgressProxy::enterEventLoop(pJob, i18n("Removing folder: %1", dirName)); + return m_bSuccess; + } +} + +bool DefaultFileAccessJobHandler::removeFile(const QUrl& fileName) +{ + if(fileName.isEmpty()) + return false; + else + { + m_bSuccess = false; + KIO::SimpleJob* pJob = KIO::file_delete(fileName, KIO::HideProgressInfo); + chk_connect(pJob, &KIO::SimpleJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pJob, &KIO::SimpleJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + + ProgressProxy::enterEventLoop(pJob, i18n("Removing file: %1", FileAccess::prettyAbsPath(fileName))); + return m_bSuccess; + } +} + +bool DefaultFileAccessJobHandler::symLink(const QUrl& linkTarget, const QUrl& linkLocation) +{ + if(linkTarget.isEmpty() || linkLocation.isEmpty()) + return false; + else + { + m_bSuccess = false; + KIO::CopyJob* pJob = KIO::link(linkTarget, linkLocation, KIO::HideProgressInfo); + chk_connect(pJob, &KIO::CopyJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pJob, &KIO::CopyJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + + ProgressProxy::enterEventLoop(pJob, + i18n("Creating symbolic link: %1 -> %2", FileAccess::prettyAbsPath(linkLocation), FileAccess::prettyAbsPath(linkTarget))); + return m_bSuccess; + } +} + +bool DefaultFileAccessJobHandler::rename(const FileAccess& destFile) +{ + if(destFile.fileName().isEmpty()) + return false; + + if(mFileAccess->isLocal() && destFile.isLocal()) + { + return QDir().rename(mFileAccess->absoluteFilePath(), destFile.absoluteFilePath()); + } + else + { + ProgressProxyExtender pp; + int permissions = -1; + m_bSuccess = false; + KIO::FileCopyJob* pJob = KIO::file_move(mFileAccess->url(), destFile.url(), permissions, KIO::HideProgressInfo); + chk_connect(pJob, &KIO::FileCopyJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pJob, SIGNAL(percent(KJob*,ulong)), &pp, SLOT(slotPercent(KJob*,ulong))); + chk_connect(pJob, &KIO::FileCopyJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + + ProgressProxy::enterEventLoop(pJob, + i18n("Renaming file: %1 -> %2", mFileAccess->prettyAbsPath(), destFile.prettyAbsPath())); + return m_bSuccess; + } +} + +void DefaultFileAccessJobHandler::slotJobEnded(KJob* pJob) +{ + Q_UNUSED(pJob); + + ProgressProxy::exitEventLoop(); // Close the dialog, return from exec() +} + +void DefaultFileAccessJobHandler::slotSimpleJobResult(KJob* pJob) +{ + if(pJob->error() != KJob::NoError) + { + qCDebug(kdiffFileAccess) << "slotSimpleJobResult: pJob->error() = " << pJob->error(); + pJob->uiDelegate()->showErrorMessage(); + } + else + { + m_bSuccess = true; + } +} + +// Copy local or remote files. +bool DefaultFileAccessJobHandler::copyFile(const QString& inDest) +{ + ProgressProxyExtender pp; + FileAccess dest; + dest.setFile(inDest); + + mFileAccess->setStatusText(QString()); + if(!mFileAccess->isNormal() || !dest.isNormal()) return false; + + int permissions = (mFileAccess->isExecutable() ? 0111 : 0) + (mFileAccess->isWritable() ? 0222 : 0) + (mFileAccess->isReadable() ? 0444 : 0); + m_bSuccess = false; + KIO::FileCopyJob* pJob = KIO::file_copy(mFileAccess->url(), dest.url(), permissions, KIO::HideProgressInfo|KIO::Overwrite); + chk_connect(pJob, &KIO::FileCopyJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pJob, SIGNAL(percent(KJob*,ulong)), &pp, SLOT(slotPercent(KJob*,ulong))); + chk_connect(pJob, &KIO::FileCopyJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + + ProgressProxy::enterEventLoop(pJob, + i18n("Copying file: %1 -> %2", mFileAccess->prettyAbsPath(), dest.prettyAbsPath())); + + return m_bSuccess; + // Note that the KIO-slave preserves the original date, if this is supported. +} + +bool DefaultFileAccessJobHandler::listDir(t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, const QString& filePattern, + const QString& fileAntiPattern, const QString& dirAntiPattern, bool bFollowDirLinks, const bool bUseCvsIgnore) +{ + ProgressProxyExtender pp; + m_pDirList = pDirList; + m_pDirList->clear(); + m_bFindHidden = bFindHidden; + m_bRecursive = bRecursive; + m_bFollowDirLinks = bFollowDirLinks; // Only relevant if bRecursive==true. + m_fileAntiPattern = fileAntiPattern; + m_filePattern = filePattern; + m_dirAntiPattern = dirAntiPattern; + + if(pp.wasCancelled()) + return true; // Cancelled is not an error. + + pp.setInformation(i18n("Reading folder: %1", mFileAccess->absoluteFilePath()), 0, false); + qCInfo(kdiffFileAccess) << "Reading folder: " << mFileAccess->absoluteFilePath(); + + if(mFileAccess->isLocal()) + { + m_bSuccess = true; + QDir dir(mFileAccess->absoluteFilePath()); + + dir.setSorting(QDir::Name | QDir::DirsFirst); + if(bFindHidden) + dir.setFilter(QDir::Files | QDir::Dirs | QDir::Hidden | QDir::System | QDir::NoDotAndDotDot); + else + dir.setFilter(QDir::Files | QDir::Dirs | QDir::System | QDir::NoDotAndDotDot); + + const QFileInfoList fiList = dir.entryInfoList(); + if(fiList.isEmpty()) + { + /* + Sadly Qt provides no error information making this case ambiguous. + A readability check is the best we can do. + */ + m_bSuccess = dir.isReadable(); + } + else + { + for(const QFileInfo& fi: fiList) // for each file... + { + if(pp.wasCancelled()) + break; + + Q_ASSERT(fi.fileName() != "." && fi.fileName() != ".."); + + FileAccess fa; + + fa.setFile(mFileAccess, fi); + pDirList->push_back(fa); + } + } + } + else + { + KIO::ListJob* pListJob = nullptr; + pListJob = KIO::listDir(mFileAccess->url(), KIO::HideProgressInfo, true /*bFindHidden*/); + + m_bSuccess = false; + if(pListJob != nullptr) + { + chk_connect(pListJob, &KIO::ListJob::entries, this, &DefaultFileAccessJobHandler::slotListDirProcessNewEntries); + chk_connect(pListJob, &KIO::ListJob::result, this, &DefaultFileAccessJobHandler::slotSimpleJobResult); + chk_connect(pListJob, &KIO::ListJob::finished, this, &DefaultFileAccessJobHandler::slotJobEnded); + chk_connect(pListJob, &KIO::ListJob::infoMessage, &pp, &ProgressProxyExtender::slotListDirInfoMessage); + + // This line makes the transfer via fish unreliable.:-( + /*if(mFileAccess->url().scheme() != QLatin1String("fish")){ + chk_connect( pListJob, static_cast(&KIO::ListJob::percent), &pp, &ProgressProxyExtender::slotPercent); + }*/ + + ProgressProxy::enterEventLoop(pListJob, + i18n("Listing directory: %1", mFileAccess->prettyAbsPath())); + } + } + + mFileAccess->filterList(pDirList, filePattern, fileAntiPattern, dirAntiPattern, bUseCvsIgnore); + + if(bRecursive) + { + t_DirectoryList::iterator i; + t_DirectoryList subDirsList; + + for(i = m_pDirList->begin(); i != m_pDirList->end(); ++i) + { + Q_ASSERT(i->isValid()); + if(i->isDir() && (!i->isSymLink() || m_bFollowDirLinks)) + { + t_DirectoryList dirList; + i->listDir(&dirList, bRecursive, bFindHidden, + filePattern, fileAntiPattern, dirAntiPattern, bFollowDirLinks, bUseCvsIgnore); + + // append data onto the main list + subDirsList.splice(subDirsList.end(), dirList); + } + } + + m_pDirList->splice(m_pDirList->end(), subDirsList); + } + + return m_bSuccess; +} + +void DefaultFileAccessJobHandler::slotListDirProcessNewEntries(KIO::Job*, const KIO::UDSEntryList& l) +{ + //This function is called for non-local urls. Don't use QUrl::fromLocalFile here as it does not handle these. + for(const KIO::UDSEntry& e: l) + { + FileAccess fa; + + fa.setFromUdsEntry(e, mFileAccess); + + //must be manually filtered KDE does not supply API for ignoring these. + if(fa.fileName() != "." && fa.fileName() != ".." && fa.isValid()) + { + m_pDirList->push_back(std::move(fa)); + } + } +} diff --git a/src/DefaultFileAccessJobHandler.h b/src/DefaultFileAccessJobHandler.h new file mode 100644 index 0000000..fad8d68 --- /dev/null +++ b/src/DefaultFileAccessJobHandler.h @@ -0,0 +1,71 @@ +/** + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2021 Michael Reeves + * SPDX-License-Identifier: GPL-2.0-or-later + * + */ + +#ifndef DEFAULTFILEACCESSJOBHANDLER_H +#define DEFAULTFILEACCESSJOBHANDLER_H + +#include "FileAccessJobHandler.h" + +#include +#include + +#include + +namespace KIO { +class Job; +} + +class KJob; + +class FileAccess; +class t_DirectoryList; + +class DefaultFileAccessJobHandler: public FileAccessJobHandler +{ + Q_OBJECT + public: + using FileAccessJobHandler::FileAccessJobHandler; + + FileAccessJobHandler* copy(FileAccess* inFileAccess) override { return new DefaultFileAccessJobHandler(inFileAccess);} + + bool get(void* pDestBuffer, long maxLength) override; + bool put(const void* pSrcBuffer, long maxLength, bool bOverwrite, bool bResume = false, int permissions = -1) override; + bool stat(short detailLevel = 2, bool bWantToWrite = false) override; + bool copyFile(const QString& dest) override; + bool rename(const FileAccess& dest) override; + bool listDir(t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, + const QString& filePattern, const QString& fileAntiPattern, + const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore) override; + + static bool mkDir(const QString& dirName) {return DefaultFileAccessJobHandler(nullptr).mkDirImp(dirName);} + static bool rmDir(const QString& dirName) {return DefaultFileAccessJobHandler(nullptr).rmDirImp(dirName);} + + bool removeFile(const QUrl& fileName) override; + bool symLink(const QUrl& linkTarget, const QUrl& linkLocation) override; + + private: + bool mkDirImp(const QString& dirName) override; + bool rmDirImp(const QString& dirName) override; + + bool scanLocalDirectory(const QString& dirName, t_DirectoryList* dirList); + + private Q_SLOTS: + void slotJobEnded(KJob*); + void slotStatResult(KJob*); + void slotSimpleJobResult(KJob* pJob); + void slotPutJobResult(KJob* pJob); + + void slotGetData(KJob*, const QByteArray&); + void slotPutData(KIO::Job*, QByteArray&); + + void slotListDirProcessNewEntries(KIO::Job*, const KIO::UDSEntryList& l); +}; + + + +#endif /* FILEACCESSJOBHANDLER_H */ diff --git a/src/DirectoryInfo.cpp b/src/DirectoryInfo.cpp new file mode 100644 index 0000000..126f9ef --- /dev/null +++ b/src/DirectoryInfo.cpp @@ -0,0 +1,40 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2021-2021 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "DirectoryInfo.h" + +#include + +//Intialize with a dummy default DirectoryInfo so we don't crash on first run. +QSharedPointer gDirInfo = QSharedPointer::create(); + +bool DirectoryInfo::listDirA(const Options& options) +{ + return m_dirA.listDir(&m_dirListA, + options.m_bDmRecursiveDirs, options.m_bDmFindHidden, + options.m_DmFilePattern, options.m_DmFileAntiPattern, + options.m_DmDirAntiPattern, options.m_bDmFollowDirLinks, + options.m_bDmUseCvsIgnore); +} + +bool DirectoryInfo::listDirB(const Options& options) +{ + return m_dirB.listDir(&m_dirListB, + options.m_bDmRecursiveDirs, options.m_bDmFindHidden, + options.m_DmFilePattern, options.m_DmFileAntiPattern, + options.m_DmDirAntiPattern, options.m_bDmFollowDirLinks, + options.m_bDmUseCvsIgnore); +} + +bool DirectoryInfo::listDirC(const Options& options) +{ + return m_dirC.listDir(&m_dirListC, + options.m_bDmRecursiveDirs, options.m_bDmFindHidden, + options.m_DmFilePattern, options.m_DmFileAntiPattern, + options.m_DmDirAntiPattern, options.m_bDmFollowDirLinks, + options.m_bDmUseCvsIgnore); +} diff --git a/src/DirectoryInfo.h b/src/DirectoryInfo.h new file mode 100644 index 0000000..6ac1280 --- /dev/null +++ b/src/DirectoryInfo.h @@ -0,0 +1,62 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef DIRECTORYINFO_H +#define DIRECTORYINFO_H + +#include "fileaccess.h" +#include "options.h" + +class DirectoryInfo +{ + public: + explicit DirectoryInfo() = default; + + DirectoryInfo(FileAccess& dirA, FileAccess& dirB, FileAccess& dirC, FileAccess& dirDest) + { + m_dirA = dirA; + m_dirB = dirB; + m_dirC = dirC; + m_dirDest = dirDest; + + m_dirListA.clear(); + m_dirListB.clear(); + m_dirListC.clear(); + } + + inline const FileAccess& dirA() const { return m_dirA; } + inline const FileAccess& dirB() const { return m_dirB; } + inline const FileAccess& dirC() const { return m_dirC; } + inline const FileAccess& destDir() const + { + if(m_dirDest.isValid()) + return m_dirDest; + else + return m_dirC.isValid() ? m_dirC : m_dirB; + } + + inline bool allowSyncMode() { return !m_dirC.isValid() && !m_dirDest.isValid(); } + + bool listDirA(const Options& options); + bool listDirB(const Options& options); + bool listDirC(const Options& options); + + t_DirectoryList& getDirListA() { return m_dirListA; } + t_DirectoryList& getDirListB() { return m_dirListB; } + t_DirectoryList& getDirListC() { return m_dirListC; } + + private: + FileAccess m_dirA, m_dirB, m_dirC; + + t_DirectoryList m_dirListA; + t_DirectoryList m_dirListB; + t_DirectoryList m_dirListC; + FileAccess m_dirDest; +}; + +extern QSharedPointer gDirInfo; + +#endif diff --git a/src/FileAccessJobHandler.h b/src/FileAccessJobHandler.h new file mode 100644 index 0000000..9008c0e --- /dev/null +++ b/src/FileAccessJobHandler.h @@ -0,0 +1,74 @@ +/** + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2021 Michael Reeves + * SPDX-License-Identifier: GPL-2.0-or-later + * + */ + +#ifndef FILEACCESSJOBHANDLER_H +#define FILEACCESSJOBHANDLER_H + +#include "fileaccess.h" + +#include +#include + +#ifndef AUTOTEST +#include +#endif + +namespace KIO { +class Job; +} + +class KJob; + +class FileAccess; +class t_DirectoryList; + +class FileAccessJobHandler: public QObject +{ + public: + FileAccessJobHandler(FileAccess* pFileAccess) + { + mFileAccess = pFileAccess; + } + + virtual FileAccessJobHandler* copy(FileAccess* fileAccess) = 0; + //This exists soley to allow FileAccess to be no-except movable + void setFileAccess(FileAccess* pFileAccess) { mFileAccess = pFileAccess; } + virtual bool get(void* pDestBuffer, long maxLength) = 0; + virtual bool put(const void* pSrcBuffer, long maxLength, bool bOverwrite, bool bResume = false, int permissions = -1) = 0; + virtual bool stat(short detailLevel = 2, bool bWantToWrite = false) = 0; + virtual bool copyFile(const QString& dest) = 0; + virtual bool rename(const FileAccess& dest) = 0; + virtual bool listDir(t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, + const QString& filePattern, const QString& fileAntiPattern, + const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore) = 0; + virtual bool removeFile(const QUrl& fileName) = 0; + virtual bool symLink(const QUrl& linkTarget, const QUrl& linkLocation) = 0; + + protected: + FileAccess* mFileAccess = nullptr; + bool m_bSuccess = false; + + // Data needed during Job + qint64 m_transferredBytes = 0; + char* m_pTransferBuffer = nullptr; // Needed during get or put + qint64 m_maxLength = 0; + + QString m_filePattern; + QString m_fileAntiPattern; + QString m_dirAntiPattern; + t_DirectoryList* m_pDirList = nullptr; + bool m_bFindHidden = false; + bool m_bRecursive = false; + bool m_bFollowDirLinks = false; + + private: + virtual bool mkDirImp(const QString& dirName) = 0; + virtual bool rmDirImp(const QString& dirName) = 0; +}; + +#endif /* FILEACCESSJOBHANDLER_H */ diff --git a/src/FileNameLineEdit.cpp b/src/FileNameLineEdit.cpp new file mode 100644 index 0000000..ab5c38e --- /dev/null +++ b/src/FileNameLineEdit.cpp @@ -0,0 +1,44 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#include "FileNameLineEdit.h" + +#include "fileaccess.h" +#include "Logging.h" + +#include +#include +#include +#include + +void FileNameLineEdit::dropEvent(QDropEvent* event) +{ + Q_ASSERT(event->mimeData()->hasUrls());//Debugging aid in case FileNameLineEdit::dragEnterEvent is changed to accept other types. + + qCDebug(kdiffMain) << "Enter FileNameLineEdit::dropEvent"; + QList lst = event->mimeData()->urls(); + + if(lst.count() > 0) + { + /* + Do not use QUrl::toString() here. Sadly the Qt5 version does not permit Qt4 style + fullydecoded conversions. It also treats empty schemes as non-local. + */ + qCDebug(kdiffMain) << "Received Drop Event"; + qCDebug(kdiffMain) << "Url List Size: " << lst.count(); + qCDebug(kdiffMain) << "lst[0] = " << lst[0]; + setText(FileAccess::prettyAbsPath(lst[0])); + qCDebug(kdiffMain) << "Set line edit text to: " << text() ; + setFocus(); + Q_EMIT returnPressed(); + } + qCDebug(kdiffMain) << "Leave FileNameLineEdit::dropEvent"; +} + +void FileNameLineEdit::dragEnterEvent(QDragEnterEvent* e) +{ + e->setAccepted(e->mimeData()->hasUrls()); +} diff --git a/src/FileNameLineEdit.h b/src/FileNameLineEdit.h new file mode 100644 index 0000000..0c47434 --- /dev/null +++ b/src/FileNameLineEdit.h @@ -0,0 +1,20 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef FILENAMELINEEDIT_H + +#include + +class FileNameLineEdit : public QLineEdit +{ + public: + using QLineEdit::QLineEdit; + void dropEvent(QDropEvent* event) override; + void dragEnterEvent(QDragEnterEvent* e) override; +}; + +#endif // !FILENAMELINEEDIT_H diff --git a/src/IgnoreList.h b/src/IgnoreList.h new file mode 100644 index 0000000..0272cab --- /dev/null +++ b/src/IgnoreList.h @@ -0,0 +1,53 @@ +/* + class CvsIgnoreList from Cervisia cvsdir.cpp + SPDX-FileCopyrightText: 1999-2002 Bernd Gehrmann + with elements from class StringMatcher + SPDX-FileCopyrightText: 2003 Andre Woebbeking + Modifications for KDiff3 by Joachim Eibl + + SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef IGNORELIST_H +#define IGNORELIST_H + +#include "fileaccess.h" + +#include +#include + +class IgnoreList +{ + public: + IgnoreList() = default; + void init(FileAccess& dir, const t_DirectoryList* pDirList); + bool matches(const QString& text, bool bCaseSensitive) const; + + virtual ~IgnoreList() = default; + + protected: + bool ignoreExists(const t_DirectoryList* pDirList); + + void addEntriesFromString(const QString& str); + virtual void addEntriesFromFile(const QString& name); + void addEntry(const QString& pattern); + + QStringList m_exactPatterns; + QStringList m_startPatterns; + QStringList m_endPatterns; + QStringList m_generalPatterns; + + private: + /* + The name of the users global ignore can be changed separately in some cases in the future + kdiff will handle this through a user settings. + For now just return the same thing as gerIngoreName. That works + */ + inline virtual const QString getGlobalIgnoreName() const { return getIgnoreName(); } + virtual const char* getVarName() const = 0; + virtual const QString getIgnoreName() const = 0; + +}; + +#endif diff --git a/src/LineRef.h b/src/LineRef.h new file mode 100644 index 0000000..587d882 --- /dev/null +++ b/src/LineRef.h @@ -0,0 +1,93 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef LINEREF_H +#define LINEREF_H + +#include "TypeUtils.h" + +#include +#include + +#include + +class LineRef +{ + public: + typedef qint32 LineType; + + static constexpr LineType invalid = -1; + inline LineRef() = default; + inline LineRef(const LineType i) noexcept { mLineNumber = i; } + + inline LineRef(const qint64 i) noexcept + { + if(i <= TYPE_MAX(LineType)) + mLineNumber = (LineType)i; + else + mLineNumber = invalid; + } + inline operator LineType() const noexcept { return mLineNumber; } + inline LineRef& operator=(const LineType lineIn) noexcept + { + mLineNumber = lineIn; + return *this; + } + inline LineRef& operator+=(const LineType& inLine) + { + mLineNumber += inLine; + return *this; + }; + + LineRef& operator++() + { + ++mLineNumber; + return *this; + }; + + const LineRef operator++(int) + { + LineRef line(*this); + ++mLineNumber; + return line; + }; + + LineRef& operator--() + { + --mLineNumber; + return *this; + }; + + const LineRef operator--(int) + { + LineRef line(*this); + --mLineNumber; + return line; + }; + inline void invalidate() noexcept { mLineNumber = invalid; } + inline bool isValid() const noexcept { return mLineNumber != invalid; } + + private: + LineType mLineNumber = invalid; +}; + +/* + This is here because its easy to unknowingly break these conditions. The resulting + compiler errors are a bit cryptic if you aren't famialar with the C++ language. + Also some IDEs with clangd or ccls integration can automatically check static_asserts + without doing a full compile. +*/ +static_assert(std::is_copy_constructible::value, "LineRef must be copy constuctible."); +static_assert(std::is_copy_assignable::value, "LineRef must copy assignable."); +static_assert(std::is_move_constructible::value, "LineRef must be move constructible."); +static_assert(std::is_move_assignable::value, "LineRef must be move assignable."); +static_assert(std::is_convertible::value, "Can not convert LineRef to int."); +static_assert(std::is_convertible::value, "Can not convert int to LineRef."); + +typedef LineRef::LineType LineCount; +typedef LineRef::LineType LineIndex; + +#endif diff --git a/src/Logging.cpp b/src/Logging.cpp new file mode 100644 index 0000000..29522ce --- /dev/null +++ b/src/Logging.cpp @@ -0,0 +1,13 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "Logging.h" + +Q_LOGGING_CATEGORY(kdiffMain, "org.kde.kdiff3") +Q_LOGGING_CATEGORY(kdiffFileAccess, "org.kde.kdiff3.fileAccess") +//The following is very noisey if debug is turned on and not really useful unless your making changes in the core data processing. +Q_LOGGING_CATEGORY(kdiffCore, "org.kde.kdiff3.core", QtWarningMsg) diff --git a/src/Logging.h b/src/Logging.h new file mode 100644 index 0000000..1bcf3dd --- /dev/null +++ b/src/Logging.h @@ -0,0 +1,17 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef LOGGING_H +#define LOGGING_H +#include + +Q_DECLARE_LOGGING_CATEGORY(kdiffMain) + +Q_DECLARE_LOGGING_CATEGORY(kdiffFileAccess); +Q_DECLARE_LOGGING_CATEGORY(kdiffCore) //very noisey shows internal state information for kdiffs core. + +#endif // !LOGGING_H diff --git a/src/MacOSXBundleInfo.plist.in b/src/MacOSXBundleInfo.plist.in new file mode 100644 index 0000000..078a6cd --- /dev/null +++ b/src/MacOSXBundleInfo.plist.in @@ -0,0 +1,53 @@ + + + + + NSPrincipalClass + NSApplication + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${MACOSX_BUNDLE_EXECUTABLE_NAME} + CFBundleGetInfoString + ${MACOSX_BUNDLE_INFO_STRING} + CFBundleIconFile + ${MACOSX_BUNDLE_ICON_FILE} + CFBundleIdentifier + ${MACOSX_BUNDLE_GUI_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleLongVersionString + ${MACOSX_BUNDLE_LONG_VERSION_STRING} + CFBundleName + ${MACOSX_BUNDLE_BUNDLE_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + ${MACOSX_BUNDLE_SHORT_VERSION_STRING} + CFBundleSignature + ???? + CFBundleVersion + ${MACOSX_BUNDLE_BUNDLE_VERSION} + CSResourcesFileMapped + + LSRequiresCarbon + + NSHumanReadableCopyright + ${MACOSX_BUNDLE_COPYRIGHT} + LSMultipleInstancesProhibited + + CFBundleDocumentTypes + + + LSItemContentTypes + + * + + CFBundleTypeName + NSStringPboardType + CFBundleTypeRole + Viewer + + + + diff --git a/src/MergeEditLine.cpp b/src/MergeEditLine.cpp new file mode 100644 index 0000000..d5959ba --- /dev/null +++ b/src/MergeEditLine.cpp @@ -0,0 +1,53 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "MergeEditLine.h" + +QString MergeEditLine::getString(const QVector* pLineDataA, const QVector* pLineDataB, const QVector* pLineDataC) const +{ + //Triggered by resize event during early init. Ignore these calls. + if((m_src == e_SrcSelector::A && pLineDataA->empty()) || (m_src == e_SrcSelector::B && pLineDataB->empty()) || (m_src == e_SrcSelector::C && pLineDataC->empty())) + return QString(); + + if(isRemoved()) + { + return QString(); + } + + if(!isModified()) + { + e_SrcSelector src = m_src; + if(src == e_SrcSelector::None) + { + return QString(); + } + const Diff3Line& d3l = *m_id3l; + const LineData* pld = nullptr; + Q_ASSERT(src == e_SrcSelector::A || src == e_SrcSelector::B || src == e_SrcSelector::C); + + if(src == e_SrcSelector::A && d3l.getLineA().isValid()) + pld = &(*pLineDataA)[d3l.getLineA()]; + else if(src == e_SrcSelector::B && d3l.getLineB().isValid()) + pld = &(*pLineDataB)[d3l.getLineB()]; + else if(src == e_SrcSelector::C && d3l.getLineC().isValid()) + pld = &(*pLineDataC)[d3l.getLineC()]; + + //Not an error. + if(pld == nullptr) + { + return QString(); + } + + return pld->getLine(); + } + else + { + return m_str; + } + return QString(); +} diff --git a/src/MergeEditLine.h b/src/MergeEditLine.h new file mode 100644 index 0000000..89f86d4 --- /dev/null +++ b/src/MergeEditLine.h @@ -0,0 +1,146 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef MERGEEDITLINE_H +#include "diff.h" + +#include +#include + +class MergeEditLine +{ + public: + explicit MergeEditLine(const Diff3LineList::const_iterator& i, e_SrcSelector src = e_SrcSelector::None) + { + m_id3l = i; + m_src = src; + m_bLineRemoved = false; + mChanged = false; + } + void setConflict() + { + m_src = e_SrcSelector::None; + m_bLineRemoved = false; + mChanged = false; + m_str = QString(); + } + Q_REQUIRED_RESULT bool isConflict() const { return m_src == e_SrcSelector::None && !m_bLineRemoved && !mChanged; } + void setRemoved(e_SrcSelector src = e_SrcSelector::None) + { + m_src = src; + m_bLineRemoved = true; + m_str = QString(); + mChanged = (src == e_SrcSelector::None); + } + Q_REQUIRED_RESULT bool isRemoved() const { return m_bLineRemoved; } + Q_REQUIRED_RESULT bool isEditableText() const { return !isConflict(); } + void setString(const QString& s) + { + m_str = s; + m_bLineRemoved = false; + m_src = e_SrcSelector::None; + mChanged = true; + } + Q_REQUIRED_RESULT QString getString(const QVector* pLineDataA, const QVector* pLineDataB, const QVector* pLineDataC) const; + Q_REQUIRED_RESULT bool isModified() const { return mChanged; } + + void setSource(e_SrcSelector src, bool bLineRemoved) + { + m_src = src; + m_bLineRemoved = bLineRemoved; + if(bLineRemoved && m_src == e_SrcSelector::None) + mChanged = true; + else if(m_src != e_SrcSelector::None) + { + mChanged = false; + m_str=QLatin1String(""); + } + } + e_SrcSelector src() const { return m_src; } + Diff3LineList::const_iterator id3l() const { return m_id3l; } + private: + Diff3LineList::const_iterator m_id3l; + e_SrcSelector m_src; // 1, 2 or 3 for A, B or C respectively, or 0 when line is from neither source. + QString m_str; // String when modified by user or null-string when orig data is used. + bool m_bLineRemoved; + bool mChanged; +}; + +class MergeEditLineList :public std::list +{ + private: + typedef std::list BASE; + + public: + typedef std::list::iterator iterator; + typedef std::list::reverse_iterator reverse_iterator; + typedef std::list::const_iterator const_iterator; + + + Q_REQUIRED_RESULT int size() + { + return (int)BASE::size(); + } +}; + +class MergeLine +{ + public: + Diff3LineList::const_iterator id3l; + LineIndex d3lLineIdx = -1; // Needed to show the correct window pos. + LineCount srcRangeLength = 0; // how many src-lines have this properties + e_MergeDetails mergeDetails = e_MergeDetails::eDefault; + bool bConflict = false; + bool bWhiteSpaceConflict = false; + bool bDelta = false; + e_SrcSelector srcSelect = e_SrcSelector::None; + MergeEditLineList mergeEditLineList; + void split(MergeLine& ml2, int d3lLineIdx2) // The caller must insert the ml2 after this ml in the m_mergeLineList + { + if(d3lLineIdx2 < d3lLineIdx || d3lLineIdx2 >= d3lLineIdx + srcRangeLength) + return; //Error + ml2.mergeDetails = mergeDetails; + ml2.bConflict = bConflict; + ml2.bWhiteSpaceConflict = bWhiteSpaceConflict; + ml2.bDelta = bDelta; + ml2.srcSelect = srcSelect; + + ml2.d3lLineIdx = d3lLineIdx2; + ml2.srcRangeLength = srcRangeLength - (d3lLineIdx2 - d3lLineIdx); + srcRangeLength = d3lLineIdx2 - d3lLineIdx; // current MergeLine controls fewer lines + ml2.id3l = id3l; + for(int i = 0; i < srcRangeLength; ++i) + ++ml2.id3l; + + ml2.mergeEditLineList.clear(); + // Search for best place to splice + for(MergeEditLineList::iterator i = mergeEditLineList.begin(); i != mergeEditLineList.end(); ++i) + { + if(i->id3l() == ml2.id3l) + { + ml2.mergeEditLineList.splice(ml2.mergeEditLineList.begin(), mergeEditLineList, i, mergeEditLineList.end()); + return; + } + } + ml2.mergeEditLineList.push_back(MergeEditLine(ml2.id3l)); + } + void join(MergeLine& ml2) // The caller must remove the ml2 from the m_mergeLineList after this call + { + srcRangeLength += ml2.srcRangeLength; + ml2.mergeEditLineList.clear(); + mergeEditLineList.clear(); + mergeEditLineList.push_back(MergeEditLine(id3l)); // Create a simple conflict + if(ml2.bConflict) bConflict = true; + if(!ml2.bWhiteSpaceConflict) bWhiteSpaceConflict = false; + if(ml2.bDelta) bDelta = true; + } +}; + +typedef std::list MergeLineList; + +#endif diff --git a/src/MergeFileInfos.cpp b/src/MergeFileInfos.cpp new file mode 100644 index 0000000..74d253c --- /dev/null +++ b/src/MergeFileInfos.cpp @@ -0,0 +1,577 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#include "MergeFileInfos.h" + +#include "DirectoryInfo.h" +#include "directorymergewindow.h" +#include "fileaccess.h" +#include "progress.h" + +#include + +#include + +MergeFileInfos::MergeFileInfos() +{ + m_bEqualAB = false; + m_bEqualAC = false; + m_bEqualBC = false; + m_pParent = nullptr; + m_bOperationComplete = false; + m_bSimOpComplete = false; + m_eMergeOperation = eNoOperation; + m_eOpStatus = eOpStatusNone; + m_ageA = eNotThere; + m_ageB = eNotThere; + m_ageC = eNotThere; + m_bConflictingAges = false; + m_pFileInfoA = nullptr; + m_pFileInfoB = nullptr; + m_pFileInfoC = nullptr; +} + +MergeFileInfos::~MergeFileInfos() +{ + m_children.clear(); +} + +void MergeFileInfos::updateParents() +{ + MergeFileInfos* current = parent(); + while(current != nullptr) + { + bool bChange = false; + if(!isEqualAB() && current->isEqualAB()) + { + current->m_bEqualAB = false; + bChange = true; + } + if(!isEqualAC() && current->isEqualAC()) + { + current->m_bEqualAC = false; + bChange = true; + } + if(!isEqualBC() && current->isEqualBC()) + { + current->m_bEqualBC = false; + bChange = true; + } + + if(bChange) + current->updateAge(); + else + break; + + current = current->parent(); + } +} +/* + Check for directories or links marked as not equal and mark them equal. +*/ +void MergeFileInfos::updateDirectoryOrLink() +{ + bool bChange = false; + if(!isEqualAB() && isDirA() == isDirB() && isLinkA() == isLinkB()) + { + m_bEqualAB = true; + bChange = true; + } + if(!isEqualBC() && isDirC() == isDirB() && isLinkC() == isLinkB()) + { + m_bEqualBC = true; + bChange = true; + } + if(!isEqualAC() && isDirA() == isDirC() && isLinkA() == isLinkC()) + { + m_bEqualAC = true; + bChange = true; + } + + if(bChange) + updateAge(); +} + +QString MergeFileInfos::subPath() const +{ + if(m_pFileInfoA != nullptr && m_pFileInfoA->exists()) + return m_pFileInfoA->fileRelPath(); + else if(m_pFileInfoB != nullptr && m_pFileInfoB->exists()) + return m_pFileInfoB->fileRelPath(); + else if(m_pFileInfoC != nullptr && m_pFileInfoC->exists()) + return m_pFileInfoC->fileRelPath(); + return QString(""); +} + +QString MergeFileInfos::fileName() const +{ + if(m_pFileInfoA != nullptr && m_pFileInfoA->exists()) + return m_pFileInfoA->fileName(); + else if(m_pFileInfoB != nullptr && m_pFileInfoB->exists()) + return m_pFileInfoB->fileName(); + else if(m_pFileInfoC != nullptr && m_pFileInfoC->exists()) + return m_pFileInfoC->fileName(); + return QString(""); +} + +bool MergeFileInfos::conflictingFileTypes() const +{ + if((m_pFileInfoA != nullptr && !m_pFileInfoA->isNormal()) || (m_pFileInfoB != nullptr && !m_pFileInfoB->isNormal()) || (m_pFileInfoC != nullptr && !m_pFileInfoC->isNormal())) + return true; + // Now check if file/dir-types fit. + if(isLinkA() || isLinkB() || isLinkC()) + { + if((existsInA() && !isLinkA()) || + (existsInB() && !isLinkB()) || + (existsInC() && !isLinkC())) + { + return true; + } + } + + if(isDirA() || isDirB() || isDirC()) + { + if((existsInA() && !isDirA()) || + (existsInB() && !isDirB()) || + (existsInC() && !isDirC())) + { + return true; + } + } + return false; +} + +QString MergeFileInfos::fullNameA() const +{ + if(existsInA()) + return getFileInfoA()->absoluteFilePath(); + + return gDirInfo->dirA().absoluteFilePath() + '/' + subPath(); +} + +QString MergeFileInfos::fullNameB() const +{ + if(existsInB()) + return getFileInfoB()->absoluteFilePath(); + + return gDirInfo->dirB().absoluteFilePath() + '/' + subPath(); +} + +QString MergeFileInfos::fullNameC() const +{ + if(existsInC()) + return getFileInfoC()->absoluteFilePath(); + + return gDirInfo->dirC().absoluteFilePath() + '/' + subPath(); +} + +void MergeFileInfos::sort(Qt::SortOrder order) +{ + std::sort(m_children.begin(), m_children.end(), MfiCompare(order)); + + for(int i = 0; i < m_children.count(); ++i) + m_children[i]->sort(order); +} + +QString MergeFileInfos::fullNameDest() const +{ + if(gDirInfo->destDir().prettyAbsPath() == gDirInfo->dirC().prettyAbsPath()) + return fullNameC(); + else if(gDirInfo->destDir().prettyAbsPath() == gDirInfo->dirB().prettyAbsPath()) + return fullNameB(); + else + return gDirInfo->destDir().absoluteFilePath() + '/' + subPath(); +} + +bool MergeFileInfos::compareFilesAndCalcAges(QStringList& errors, QSharedPointer const &pOptions, DirectoryMergeWindow* pDMW) +{ + std::map dateMap; + + if(existsInA()) + { + dateMap[getFileInfoA()->lastModified()] = 0; + } + if(existsInB()) + { + dateMap[getFileInfoB()->lastModified()] = 1; + } + if(existsInC()) + { + dateMap[getFileInfoC()->lastModified()] = 2; + } + + if(pOptions->m_bDmFullAnalysis) + { + if((existsInA() && isDirA()) || (existsInB() && isDirB()) || (existsInC() && isDirC())) + { + // If any input is a directory, don't start any comparison. + m_bEqualAB = existsInA() && existsInB(); + m_bEqualAC = existsInA() && existsInC(); + m_bEqualBC = existsInB() && existsInC(); + } + else + { + Q_EMIT pDMW->startDiffMerge(errors, + existsInA() ? getFileInfoA()->absoluteFilePath() : QString(""), + existsInB() ? getFileInfoB()->absoluteFilePath() : QString(""), + existsInC() ? getFileInfoC()->absoluteFilePath() : QString(""), + "", + "", "", "", &diffStatus()); + int nofNonwhiteConflicts = diffStatus().getNonWhitespaceConflicts(); + + if(pOptions->m_bDmWhiteSpaceEqual && nofNonwhiteConflicts == 0) + { + m_bEqualAB = existsInA() && existsInB(); + m_bEqualAC = existsInA() && existsInC(); + m_bEqualBC = existsInB() && existsInC(); + } + else + { + m_bEqualAB = diffStatus().isBinaryEqualAB(); + m_bEqualBC = diffStatus().isBinaryEqualBC(); + m_bEqualAC = diffStatus().isBinaryEqualAC(); + } + + //Limit size of error list in memory. + if(errors.size() >= 30) + { + //Bail out something is very wrong. + return false; + } + } + } + else + { + bool bError = false; + QString eqStatus; + if(existsInA() && existsInB()) + { + if(isDirA()) + m_bEqualAB = true; + else + m_bEqualAB = fastFileComparison(*getFileInfoA(), *getFileInfoB(), bError, eqStatus, pOptions); + } + if(existsInA() && existsInC()) + { + if(isDirA()) + m_bEqualAC = true; + else + m_bEqualAC = fastFileComparison(*getFileInfoA(), *getFileInfoC(), bError, eqStatus, pOptions); + } + if(existsInB() && existsInC()) + { + if((m_bEqualAB && m_bEqualAC) || isDirB()) + m_bEqualBC = true; + else + { + m_bEqualBC = fastFileComparison(*getFileInfoB(), *getFileInfoC(), bError, eqStatus, pOptions); + } + } + if(bError) + { + //Limit size of error list in memory. + if(errors.size() < 30) + errors.append(eqStatus); + return false; + } + } + + if(isLinkA() != isLinkB()) m_bEqualAB = false; + if(isLinkA() != isLinkC()) m_bEqualAC = false; + if(isLinkB() != isLinkC()) m_bEqualBC = false; + + if(isDirA() != isDirB()) m_bEqualAB = false; + if(isDirA() != isDirC()) m_bEqualAC = false; + if(isDirB() != isDirC()) m_bEqualBC = false; + + Q_ASSERT(eNew == 0 && eMiddle == 1 && eOld == 2); + + // The map automatically sorts the keys. + int age = eNew; + std::map::reverse_iterator i; + for(i = dateMap.rbegin(); i != dateMap.rend(); ++i) + { + int n = i->second; + if(n == 0 && getAgeA() == eNotThere) + { + setAgeA((e_Age)age); + ++age; + if(m_bEqualAB) + { + setAgeB(getAgeA()); + ++age; + } + if(m_bEqualAC) + { + setAgeC(getAgeA()); + ++age; + } + } + else if(n == 1 && getAgeB() == eNotThere) + { + setAgeB((e_Age)age); + ++age; + if(m_bEqualAB) + { + setAgeA(getAgeB()); + ++age; + } + if(m_bEqualBC) + { + setAgeC(getAgeB()); + ++age; + } + } + else if(n == 2 && getAgeC() == eNotThere) + { + setAgeC((e_Age)age); + ++age; + if(m_bEqualAC) + { + setAgeA(getAgeC()); + ++age; + } + if(m_bEqualBC) + { + setAgeB(getAgeC()); + ++age; + } + } + } + + // The checks below are necessary when the dates of the file are equal but the + // files are not. One wouldn't expect this to happen, yet it happens sometimes. + if(existsInC() && getAgeC() == eNotThere) + { + setAgeC((e_Age)age); + ++age; + m_bConflictingAges = true; + } + if(existsInB() && getAgeB() == eNotThere) + { + setAgeB((e_Age)age); + ++age; + m_bConflictingAges = true; + } + if(existsInA() && getAgeA() == eNotThere) + { + setAgeA((e_Age)age); + ++age; + m_bConflictingAges = true; + } + + if(getAgeA() != eOld && getAgeB() != eOld && getAgeC() != eOld) + { + if(getAgeA() == eMiddle) setAgeA(eOld); + if(getAgeB() == eMiddle) setAgeB(eOld); + if(getAgeC() == eMiddle) setAgeC(eOld); + } + + return true; +} + +bool MergeFileInfos::fastFileComparison( + FileAccess& fi1, FileAccess& fi2, + bool& bError, QString& status, const QSharedPointer &pOptions) +{ + ProgressProxy pp; + bool bEqual = false; + + status = ""; + bError = true; + + if(fi1.isNormal() != fi2.isNormal()) + { + status = i18n("Unable to compare non-normal file with normal file."); + return false; + } + + if(!fi1.isNormal()) + { + bError = false; + return false; + } + + if(!pOptions->m_bDmFollowFileLinks) + { + if(fi1.isSymLink() != fi2.isSymLink()) + { + status = i18n("Mix of links and normal files."); + return bEqual; + } + else if(fi1.isSymLink() && fi2.isSymLink()) + { + bError = false; + bEqual = fi1.readLink() == fi2.readLink(); + status = i18n("Link: "); + return bEqual; + } + } + + if(fi1.size() != fi2.size()) + { + bError = false; + bEqual = false; + status = i18n("Size. "); + return bEqual; + } + else if(pOptions->m_bDmTrustSize) + { + bEqual = true; + bError = false; + return bEqual; + } + + if(pOptions->m_bDmTrustDate) + { + bEqual = (fi1.lastModified() == fi2.lastModified() && fi1.size() == fi2.size()); + bError = false; + status = i18n("Date & Size: "); + return bEqual; + } + + if(pOptions->m_bDmTrustDateFallbackToBinary) + { + bEqual = (fi1.lastModified() == fi2.lastModified() && fi1.size() == fi2.size()); + if(bEqual) + { + bError = false; + status = i18n("Date & Size: "); + return bEqual; + } + } + + std::vector buf1(100000); + std::vector buf2(buf1.size()); + + if(!fi1.open(QIODevice::ReadOnly)) + { + status = fi1.errorString(); + return bEqual; + } + + if(!fi2.open(QIODevice::ReadOnly)) + { + fi1.close(); + status = fi2.errorString(); + return bEqual; + } + + pp.setInformation(i18n("Comparing file..."), 0, false); + typedef qint64 t_FileSize; + t_FileSize fullSize = fi1.size(); + t_FileSize sizeLeft = fullSize; + + pp.setMaxNofSteps(fullSize / buf1.size()); + + while(sizeLeft > 0 && !pp.wasCancelled()) + { + qint64 len = std::min(sizeLeft, (t_FileSize)buf1.size()); + if(len != fi1.read(&buf1[0], len)) + { + status = fi1.errorString(); + fi1.close(); + fi2.close(); + return bEqual; + } + + if(len != fi2.read(&buf2[0], len)) + { + status = fi2.errorString(); + fi1.close(); + fi2.close(); + return bEqual; + } + + if(memcmp(&buf1[0], &buf2[0], len) != 0) + { + bError = false; + fi1.close(); + fi2.close(); + return bEqual; + } + sizeLeft -= len; + //pp.setCurrent(double(fullSize-sizeLeft)/fullSize, false ); + pp.step(); + } + fi1.close(); + fi2.close(); + + // If the program really arrives here, then the files are really equal. + bError = false; + bEqual = true; + return bEqual; +} + +void MergeFileInfos::updateAge() +{ + if(isDirA() || isDirB() || isDirC()) + { + setAgeA(eNotThere); + setAgeB(eNotThere); + setAgeC(eNotThere); + e_Age age = eNew; + if(existsInC()) + { + setAgeC(age); + if(m_bEqualAC) setAgeA(age); + if(m_bEqualBC) setAgeB(age); + age = eMiddle; + } + if(existsInB() && getAgeB() == eNotThere) + { + setAgeB(age); + if(m_bEqualAB) setAgeA(age); + age = eOld; + } + if(existsInA() && getAgeA() == eNotThere) + { + setAgeA(age); + } + if(getAgeA() != eOld && getAgeB() != eOld && getAgeC() != eOld) + { + if(getAgeA() == eMiddle) setAgeA(eOld); + if(getAgeB() == eMiddle) setAgeB(eOld); + if(getAgeC() == eMiddle) setAgeC(eOld); + } + } +} + +QTextStream& operator<<(QTextStream& ts, MergeFileInfos& mfi) +{ + ts << "{\n"; + ValueMap vm; + vm.writeEntry("SubPath", mfi.subPath()); + vm.writeEntry("ExistsInA", mfi.existsInA()); + vm.writeEntry("ExistsInB", mfi.existsInB()); + vm.writeEntry("ExistsInC", mfi.existsInC()); + vm.writeEntry("EqualAB", mfi.isEqualAB()); + vm.writeEntry("EqualAC", mfi.isEqualAC()); + vm.writeEntry("EqualBC", mfi.isEqualBC()); + + vm.writeEntry("MergeOperation", (int)mfi.getOperation()); + vm.writeEntry("DirA", mfi.isDirA()); + vm.writeEntry("DirB", mfi.isDirB()); + vm.writeEntry("DirC", mfi.isDirC()); + vm.writeEntry("LinkA", mfi.isLinkA()); + vm.writeEntry("LinkB", mfi.isLinkB()); + vm.writeEntry("LinkC", mfi.isLinkC()); + vm.writeEntry("OperationComplete", !mfi.isOperationRunning()); + + vm.writeEntry("AgeA", (int)mfi.getAgeA()); + vm.writeEntry("AgeB", (int)mfi.getAgeB()); + vm.writeEntry("AgeC", (int)mfi.getAgeC()); + vm.writeEntry("ConflictingAges", mfi.conflictingAges()); // Equal age but files are not! + + vm.save(ts); + + ts << "}\n"; + + return ts; +} diff --git a/src/MergeFileInfos.h b/src/MergeFileInfos.h new file mode 100644 index 0000000..ca71718 --- /dev/null +++ b/src/MergeFileInfos.h @@ -0,0 +1,225 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef MERGEFILEINFO_H +#define MERGEFILEINFO_H + +#include "DirectoryInfo.h" +#include "diff.h" +#include "fileaccess.h" + +#include + +//class DirectoryInfo; + +enum e_MergeOperation +{ + eTitleId, + eNoOperation, + // Operations in sync mode (with only two directories): + eCopyAToB, + eCopyBToA, + eDeleteA, + eDeleteB, + eDeleteAB, + eMergeToA, + eMergeToB, + eMergeToAB, + + // Operations in merge mode (with two or three directories) + eCopyAToDest, + eCopyBToDest, + eCopyCToDest, + eDeleteFromDest, + eMergeABCToDest, + eMergeABToDest, + eConflictingFileTypes, // Error + eChangedAndDeleted, // Error + eConflictingAges // Equal age but files are not! +}; + +enum e_Age +{ + eNew, + eMiddle, + eOld, + eNotThere, + eAgeEnd +}; + +enum e_OperationStatus +{ + eOpStatusNone, + eOpStatusDone, + eOpStatusError, + eOpStatusSkipped, + eOpStatusNotSaved, + eOpStatusInProgress, + eOpStatusToDo +}; + +class DirectoryMergeWindow; + +class MergeFileInfos +{ + public: + MergeFileInfos(); + ~MergeFileInfos(); + + Q_REQUIRED_RESULT QString subPath() const; + Q_REQUIRED_RESULT QString fileName() const; + + Q_REQUIRED_RESULT bool isDirA() const { return m_pFileInfoA != nullptr ? m_pFileInfoA->isDir() : false; } + Q_REQUIRED_RESULT bool isDirB() const { return m_pFileInfoB != nullptr ? m_pFileInfoB->isDir() : false; } + Q_REQUIRED_RESULT bool isDirC() const { return m_pFileInfoC != nullptr ? m_pFileInfoC->isDir() : false; } + Q_REQUIRED_RESULT bool hasDir() const { return isDirA() || isDirB() || isDirC(); } + + Q_REQUIRED_RESULT bool isLinkA() const { return m_pFileInfoA != nullptr ? m_pFileInfoA->isSymLink() : false; } + Q_REQUIRED_RESULT bool isLinkB() const { return m_pFileInfoB != nullptr ? m_pFileInfoB->isSymLink() : false; } + Q_REQUIRED_RESULT bool isLinkC() const { return m_pFileInfoC != nullptr ? m_pFileInfoC->isSymLink() : false; } + Q_REQUIRED_RESULT bool hasLink() const { return isLinkA() || isLinkB() || isLinkC(); } + + Q_REQUIRED_RESULT bool existsInA() const { return m_pFileInfoA != nullptr; } + Q_REQUIRED_RESULT bool existsInB() const { return m_pFileInfoB != nullptr; } + Q_REQUIRED_RESULT bool existsInC() const { return m_pFileInfoC != nullptr; } + + Q_REQUIRED_RESULT bool conflictingFileTypes() const; + + void sort(Qt::SortOrder order); + Q_REQUIRED_RESULT inline MergeFileInfos* parent() const { return m_pParent; } + inline void setParent(MergeFileInfos* inParent) { m_pParent = inParent; } + Q_REQUIRED_RESULT inline const QList& children() const { return m_children; } + inline void addChild(MergeFileInfos* child) { m_children.push_back(child); } + inline void clear() { m_children.clear(); } + + Q_REQUIRED_RESULT FileAccess* getFileInfoA() const { return m_pFileInfoA; } + Q_REQUIRED_RESULT FileAccess* getFileInfoB() const { return m_pFileInfoB; } + Q_REQUIRED_RESULT FileAccess* getFileInfoC() const { return m_pFileInfoC; } + + void setFileInfoA(FileAccess* newInfo) { m_pFileInfoA = newInfo; } + void setFileInfoB(FileAccess* newInfo) { m_pFileInfoB = newInfo; } + void setFileInfoC(FileAccess* newInfo) { m_pFileInfoC = newInfo; } + + Q_REQUIRED_RESULT QString fullNameA() const; + Q_REQUIRED_RESULT QString fullNameB() const; + Q_REQUIRED_RESULT QString fullNameC() const; + Q_REQUIRED_RESULT QString fullNameDest() const; + + Q_REQUIRED_RESULT static inline QSharedPointer getDirectoryInfo() { return gDirInfo; } + + Q_REQUIRED_RESULT inline QString getDirNameA() const { return getDirectoryInfo()->dirA().prettyAbsPath(); } + Q_REQUIRED_RESULT inline QString getDirNameB() const { return getDirectoryInfo()->dirB().prettyAbsPath(); } + Q_REQUIRED_RESULT inline QString getDirNameC() const { return getDirectoryInfo()->dirC().prettyAbsPath(); } + Q_REQUIRED_RESULT inline QString getDirNameDest() const { return getDirectoryInfo()->destDir().prettyAbsPath(); } + + Q_REQUIRED_RESULT inline TotalDiffStatus& diffStatus() { return m_totalDiffStatus; } + + Q_REQUIRED_RESULT inline e_MergeOperation getOperation() const { return m_eMergeOperation; } + inline void setOperation(const e_MergeOperation op) { m_eMergeOperation = op; } + + Q_REQUIRED_RESULT inline e_OperationStatus getOpStatus() const { return m_eOpStatus; } + inline void setOpStatus(const e_OperationStatus eOpStatus) { m_eOpStatus = eOpStatus; } + + Q_REQUIRED_RESULT inline e_Age getAgeA() const { return m_ageA; } + Q_REQUIRED_RESULT inline e_Age getAgeB() const { return m_ageB; } + Q_REQUIRED_RESULT inline e_Age getAgeC() const { return m_ageC; } + + Q_REQUIRED_RESULT inline bool isEqualAB() const { return m_bEqualAB; } + Q_REQUIRED_RESULT inline bool isEqualAC() const { return m_bEqualAC; } + Q_REQUIRED_RESULT inline bool isEqualBC() const { return m_bEqualBC; } + bool compareFilesAndCalcAges(QStringList& errors, QSharedPointer const &pOptions, DirectoryMergeWindow* pDMW); + + void updateAge(); + + void updateParents(); + + void updateDirectoryOrLink(); + inline void startSimOp() { m_bSimOpComplete = false; } + Q_REQUIRED_RESULT inline bool isSimOpRunning() const { return !m_bOperationComplete; } + inline void endSimOp() { m_bSimOpComplete = true; } + + inline void startOperation() { m_bOperationComplete = false; }; + Q_REQUIRED_RESULT inline bool isOperationRunning() const { return !m_bOperationComplete; } + inline void endOperation() { m_bOperationComplete = true; }; + + Q_REQUIRED_RESULT inline bool isThreeWay() const + { + if(getDirectoryInfo() == nullptr) return false; + return getDirectoryInfo()->dirC().isValid(); + } + Q_REQUIRED_RESULT inline bool existsEveryWhere() const { return existsInA() && existsInB() && (existsInC() || !isThreeWay()); } + + Q_REQUIRED_RESULT inline int existsCount() const { return (existsInA() ? 1 : 0) + (existsInB() ? 1 : 0) + (existsInC() ? 1 : 0); } + + Q_REQUIRED_RESULT inline bool onlyInA() const { return existsInA() && !existsInB() && !existsInC(); } + Q_REQUIRED_RESULT inline bool onlyInB() const { return !existsInA() && existsInB() && !existsInC(); } + Q_REQUIRED_RESULT inline bool onlyInC() const { return !existsInA() && !existsInB() && existsInC(); } + + Q_REQUIRED_RESULT bool conflictingAges() const { return m_bConflictingAges; } + + private: + bool fastFileComparison(FileAccess& fi1, FileAccess& fi2, bool& bError, QString& status, const QSharedPointer &pOptions); + inline void setAgeA(const e_Age inAge) { m_ageA = inAge; } + inline void setAgeB(const e_Age inAge) { m_ageB = inAge; } + inline void setAgeC(const e_Age inAge) { m_ageC = inAge; } + + MergeFileInfos* m_pParent; + QList m_children; + + FileAccess* m_pFileInfoA; + FileAccess* m_pFileInfoB; + FileAccess* m_pFileInfoC; + + TotalDiffStatus m_totalDiffStatus; + + e_MergeOperation m_eMergeOperation; + e_OperationStatus m_eOpStatus; + e_Age m_ageA; + e_Age m_ageB; + e_Age m_ageC; + + bool m_bOperationComplete; + bool m_bSimOpComplete; + + bool m_bEqualAB; + bool m_bEqualAC; + bool m_bEqualBC; + bool m_bConflictingAges; // Equal age but files are not! +}; + +QTextStream& operator<<(QTextStream& ts, MergeFileInfos& mfi); + +class MfiCompare +{ + Qt::SortOrder mOrder; + + public: + explicit MfiCompare(Qt::SortOrder order) + { + mOrder = order; + } + bool operator()(MergeFileInfos* pMFI1, MergeFileInfos* pMFI2) + { + bool bDir1 = pMFI1->isDirA() || pMFI1->isDirB() || pMFI1->isDirC(); + bool bDir2 = pMFI2->isDirA() || pMFI2->isDirB() || pMFI2->isDirC(); + if(bDir1 == bDir2) + { + if(mOrder == Qt::AscendingOrder) + { + return pMFI1->fileName().compare(pMFI2->fileName(), Qt::CaseInsensitive) < 0; + } + else + { + return pMFI1->fileName().compare(pMFI2->fileName(), Qt::CaseInsensitive) > 0; + } + } + else + return bDir1; + } +}; + +#endif // !MERGEFILEINFO_H diff --git a/src/Messages.sh b/src/Messages.sh new file mode 100644 index 0000000..feda3ba --- /dev/null +++ b/src/Messages.sh @@ -0,0 +1,3 @@ +#! /usr/bin/env bash +$EXTRACTRC `find . \( -name \*.rc -o -name \*.ui \) \! -name kdiff3win.rc` >> rc.cpp +$XGETTEXT `find . -name \*.cpp` -o $podir/kdiff3.pot diff --git a/src/OptionItems.h b/src/OptionItems.h new file mode 100644 index 0000000..4ae448b --- /dev/null +++ b/src/OptionItems.h @@ -0,0 +1,178 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef OPTIONITEMS_H +#define OPTIONITEMS_H + +#include "common.h" + +#include +#include +#include +#include +#include +#include + +#include + +class OptionItemBase +{ + public: + explicit OptionItemBase(const QString& saveName) + { + m_saveName = saveName; + m_bPreserved = false; + } + virtual ~OptionItemBase() = default; + virtual void setToDefault() = 0; + virtual void setToCurrent() = 0; + + virtual void apply() = 0; + + virtual void write(ValueMap*) const = 0; + virtual void read(ValueMap*) = 0; + void doPreserve() + { + if(!m_bPreserved) + { + m_bPreserved = true; + preserve(); + } + } + void doUnpreserve() + { + if(m_bPreserved) + { + unpreserve(); + } + } + QString getSaveName() const { return m_saveName; } + protected: + virtual void preserve() = 0; + virtual void unpreserve() = 0; + bool m_bPreserved; + QString m_saveName; + + Q_DISABLE_COPY(OptionItemBase) +}; + +template +class Option : public OptionItemBase +{ + public: + explicit Option(const QString& saveName) + : OptionItemBase(saveName) + { + } + + explicit Option(T* pVar, const QString& saveName):OptionItemBase(saveName) + { + m_pVar = pVar; + } + + explicit Option(const T& defaultVal, const QString& saveName, T* pVar) + : Option(pVar, defaultVal, saveName) + { + } + + explicit Option(T* pVar, const T& defaultValue, const QString& saveName) + : OptionItemBase(saveName) + { + m_pVar = pVar; + m_defaultVal = defaultValue; + } + + void setToDefault() override {}; + void setToCurrent() override {}; + const T& getDefault() const { return m_defaultVal; }; + const T getCurrent() const { return *m_pVar; }; + + virtual void setCurrent(const T inValue) { *m_pVar = inValue; } + + void apply() override {}; + virtual void apply(const T& inValue) { *m_pVar = inValue; } + + void write(ValueMap* config) const override { config->writeEntry(m_saveName, *m_pVar); } + void read(ValueMap* config) override { *m_pVar = config->readEntry(m_saveName, m_defaultVal); } + + protected: + void preserve() override { m_preservedVal = *m_pVar; } + void unpreserve() override { *m_pVar = m_preservedVal; } + T* m_pVar; + T m_preservedVal; + T m_defaultVal; + + private: + Q_DISABLE_COPY(Option) +}; + +template +class OptionNum : public Option +{ + public: + using Option::Option; + explicit OptionNum(T* pVar, const QString& saveName) + : Option(pVar, saveName) + { + } + + explicit OptionNum(T* pVar, const T& defaultValue, const QString& saveName) + : Option(pVar, defaultValue, saveName) + { + } + + void setCurrent(const T inValue) override + { + Option::setCurrent(inValue); + } + + static const QString toString(const T inValue) + { + //QString::setNum does not use locale formatting instead it always use QLocale::C. + return QLocale().toString(inValue); + } + const QString getString() const + { + //QString::setNum does not use locale formatting instead it always use QLocale::C. + return QLocale().toString(Option::getCurrent()); + } + + private: + Q_DISABLE_COPY(OptionNum) +}; + +typedef Option OptionToggleAction; +typedef OptionNum OptionInt; +typedef Option OptionPoint; +typedef Option OptionSize; +typedef Option OptionStringList; + +typedef Option OptionBool; +typedef Option OptionFont; +typedef Option OptionColor; +typedef Option OptionString; + +class OptionCodec : public OptionString +{ + public: + using OptionString::Option; + + void setCurrent(const QString name) override { OptionString::setCurrent(name); }; + void setCurrent(const QByteArray& name) { OptionString::setCurrent(QString::fromLatin1(name)); } + const QString& defaultName() const { return mDefaultName; } + + void saveDefaultIndex(const int i) { defaultIndex = i; }; + int getDefaultIndex() const { return defaultIndex; } + + private: + const QString mDefaultName = QLatin1String(QTextCodec::codecForLocale()->name()); + int defaultIndex = 0; + Q_DISABLE_COPY(OptionCodec) +}; + +#endif // !OPTIONITEMS_H diff --git a/src/Options.cpp b/src/Options.cpp new file mode 100644 index 0000000..290bbe3 --- /dev/null +++ b/src/Options.cpp @@ -0,0 +1,138 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "options.h" + +#include "ConfigValueMap.h" +#include "diff.h" +#include "OptionItems.h" + +#include + +#define KDIFF3_CONFIG_GROUP "KDiff3 Options" + +void Options::init() +{ + addOptionItem(new OptionSize(QSize(600, 400), "Geometry", &m_geometry)); + addOptionItem(new OptionPoint(QPoint(0, 22), "Position", &m_position)); + addOptionItem(new OptionToggleAction(false, "WindowStateFullScreen", &m_bFullScreen)); + addOptionItem(new OptionToggleAction(false, "WindowStateMaximised", &m_bMaximised)); + + addOptionItem(new OptionToggleAction(true, "Show Toolbar", &m_bShowToolBar)); + addOptionItem(new OptionToggleAction(true, "Show Statusbar", &m_bShowStatusBar)); +} + +void Options::apply() +{ + for(OptionItemBase* item : mOptionItemList) + { + item->apply(); + } +} + +void Options::resetToDefaults() +{ + for(OptionItemBase* item : mOptionItemList) + { + item->setToDefault(); + } +} + +void Options::setToCurrent() +{ + for(OptionItemBase* item : mOptionItemList) + { + item->setToCurrent(); + } +} + +void Options::saveOptions(const KSharedConfigPtr config) +{ + // No i18n()-Translations here! + + ConfigValueMap cvm(config->group(KDIFF3_CONFIG_GROUP)); + + for(OptionItemBase* item : mOptionItemList) + { + item->doUnpreserve(); + item->write(&cvm); + } +} + +void Options::readOptions(const KSharedConfigPtr config) +{ + // No i18n()-Translations here! + + ConfigValueMap cvm(config->group(KDIFF3_CONFIG_GROUP)); + + for(OptionItemBase* item : mOptionItemList) + { + item->read(&cvm); + } + + if(m_whiteSpace2FileMergeDefault <= (int)e_SrcSelector::Min) + m_whiteSpace2FileMergeDefault = (int)e_SrcSelector::None; + + if(m_whiteSpace2FileMergeDefault >= (int)e_SrcSelector::Max) + m_whiteSpace2FileMergeDefault = (int)e_SrcSelector::C; +} + + +const QString Options::parseOptions(const QStringList& optionList) +{ + QString result; + + for(const QString &optionString : optionList) + { + int pos = optionString.indexOf('='); + if(pos > 0) // seems not to have a tag + { + const QString key = optionString.left(pos); + const QString val = optionString.mid(pos + 1); + + bool bFound = false; + for(OptionItemBase* item : mOptionItemList) + { + if(item->getSaveName() == key) + { + item->doPreserve(); + ValueMap config; + config.writeEntry(key, val); // Write the value as a string and + item->read(&config); // use the internal conversion from string to the needed value. + bFound = true; + break; + } + } + if(!bFound) + { + result += "No config item named \"" + key + "\"\n"; + } + } + else + { + result += "No '=' found in \"" + optionString + "\"\n"; + } + } + return result; +} + +QString Options::calcOptionHelp() +{ + ValueMap config; + + for(OptionItemBase* item : mOptionItemList) + { + item->write(&config); + } + return config.getAsString(); +} + +void Options::addOptionItem(OptionItemBase* inItem) +{ + mOptionItemList.push_back(inItem); +} + diff --git a/src/Overview.cpp b/src/Overview.cpp new file mode 100644 index 0000000..aa7a5ca --- /dev/null +++ b/src/Overview.cpp @@ -0,0 +1,309 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#include "Overview.h" + +#include "diff.h" +#include "kdiff3.h" +#include "options.h" + +#include // for max + +#include +#include +#include +#include +#include +#include + +Overview::Overview(const QSharedPointer& pOptions) +//: QWidget( pParent, 0, Qt::WNoAutoErase ) +{ + m_pDiff3LineList = nullptr; + m_pOptions = pOptions; + mOverviewMode = e_OverviewMode::eOMNormal; + m_nofLines = 1; + setUpdatesEnabled(false); + m_firstLine = 0; + m_pageHeight = 0; + + setFixedWidth(20); +} + +void Overview::init(Diff3LineList* pDiff3LineList) +{ + m_pDiff3LineList = pDiff3LineList; + m_pixmap = QPixmap(QSize(0, 0)); // make sure that a redraw happens + update(); +} + +void Overview::reset() +{ + m_pDiff3LineList = nullptr; +} + +void Overview::slotRedraw() +{ + m_pixmap = QPixmap(QSize(0, 0)); // make sure that a redraw happens + update(); +} + +void Overview::setRange(QtNumberType firstLine, QtNumberType pageHeight) +{ + m_firstLine = firstLine; + m_pageHeight = pageHeight; + update(); +} +void Overview::setFirstLine(QtNumberType firstLine) +{ + QScrollBar* scrollBar = qobject_cast(sender()); + + if(Q_UNLIKELY(scrollBar == nullptr)) + { + m_firstLine = firstLine; + update(); + } + else + setRange(firstLine, scrollBar->pageStep()); +} + +void Overview::setOverviewMode(e_OverviewMode eOverviewMode) +{ + mOverviewMode = eOverviewMode; + slotRedraw(); +} + +e_OverviewMode Overview::getOverviewMode() +{ + return mOverviewMode; +} + +void Overview::mousePressEvent(QMouseEvent* e) +{ + int h = height() - 1; + int h1 = h * m_pageHeight / std::max(1, m_nofLines) + 3; + if(h > 0) + Q_EMIT setLine((e->y() - h1 / 2) * m_nofLines / h); +} + +void Overview::mouseMoveEvent(QMouseEvent* e) +{ + mousePressEvent(e); +} + +void Overview::setPaintingAllowed(bool bAllowPainting) +{ + if(updatesEnabled() != bAllowPainting) + { + + setUpdatesEnabled(bAllowPainting); + if(bAllowPainting) + update(); + else + reset(); + } +} + +void Overview::drawColumn(QPainter& p, e_OverviewMode eOverviewMode, int x, int w, int h, int nofLines) +{ + p.setPen(Qt::black); + p.drawLine(x, 0, x, h); + + if(nofLines == 0) return; + + int line = 0; + int oldY = 0; + int oldConflictY = -1; + int wrapLineIdx = 0; + Diff3LineList::const_iterator i; + + for(i = m_pDiff3LineList->begin(); i != m_pDiff3LineList->end();) + { + const Diff3Line& d3l = *i; + int y = h * (line + 1) / nofLines; + e_MergeDetails md; + bool bConflict; + bool bLineRemoved; + e_SrcSelector src; + d3l.mergeOneLine(md, bConflict, bLineRemoved, src, !KDiff3App::isTripleDiff()); + + QColor c = m_pOptions->m_bgColor; + bool bWhiteSpaceChange = false; + //if( bConflict ) c=m_pOptions->m_colorForConflict; + //else + switch(eOverviewMode) + { + case e_OverviewMode::eOMNormal: + switch(md) + { + case e_MergeDetails::eDefault: + case e_MergeDetails::eNoChange: + c = m_pOptions->m_bgColor; + break; + + case e_MergeDetails::eBAdded: + case e_MergeDetails::eBDeleted: + case e_MergeDetails::eBChanged: + c = bConflict ? m_pOptions->m_colorForConflict : m_pOptions->m_colorB; + bWhiteSpaceChange = d3l.isEqualAB() || (d3l.isWhiteLine(e_SrcSelector::A) && d3l.isWhiteLine(e_SrcSelector::B)); + break; + + case e_MergeDetails::eCAdded: + case e_MergeDetails::eCDeleted: + case e_MergeDetails::eCChanged: + bWhiteSpaceChange = d3l.isEqualAC() || (d3l.isWhiteLine(e_SrcSelector::A) && d3l.isWhiteLine(e_SrcSelector::C)); + c = bConflict ? m_pOptions->m_colorForConflict : m_pOptions->m_colorC; + break; + + case e_MergeDetails::eBCChanged: // conflict + case e_MergeDetails::eBCChangedAndEqual: // possible conflict + case e_MergeDetails::eBCDeleted: // possible conflict + case e_MergeDetails::eBChanged_CDeleted: // conflict + case e_MergeDetails::eCChanged_BDeleted: // conflict + case e_MergeDetails::eBCAdded: // conflict + case e_MergeDetails::eBCAddedAndEqual: // possible conflict + c = m_pOptions->m_colorForConflict; + break; + } + break; + case e_OverviewMode::eOMAvsB: + switch(md) + { + case e_MergeDetails::eDefault: + case e_MergeDetails::eNoChange: + case e_MergeDetails::eCAdded: + case e_MergeDetails::eCDeleted: + case e_MergeDetails::eCChanged: + break; + default: + c = m_pOptions->m_colorForConflict; + bWhiteSpaceChange = d3l.isEqualAB() || (d3l.isWhiteLine(e_SrcSelector::A) && d3l.isWhiteLine(e_SrcSelector::B)); + break; + } + break; + case e_OverviewMode::eOMAvsC: + switch(md) + { + case e_MergeDetails::eDefault: + case e_MergeDetails::eNoChange: + case e_MergeDetails::eBAdded: + case e_MergeDetails::eBDeleted: + case e_MergeDetails::eBChanged: + break; + default: + c = m_pOptions->m_colorForConflict; + bWhiteSpaceChange = d3l.isEqualAC() || (d3l.isWhiteLine(e_SrcSelector::A) && d3l.isWhiteLine(e_SrcSelector::C)); + break; + } + break; + case e_OverviewMode::eOMBvsC: + switch(md) + { + case e_MergeDetails::eDefault: + case e_MergeDetails::eNoChange: + case e_MergeDetails::eBCChangedAndEqual: + case e_MergeDetails::eBCDeleted: + case e_MergeDetails::eBCAddedAndEqual: + break; + default: + c = m_pOptions->m_colorForConflict; + bWhiteSpaceChange = d3l.isEqualBC() || (d3l.isWhiteLine(e_SrcSelector::B) && d3l.isWhiteLine(e_SrcSelector::C)); + break; + } + break; + } + + int x2 = x; + int w2 = w; + + if(!KDiff3App::isTripleDiff()) + { + if(!d3l.getLineA().isValid() && d3l.getLineB().isValid()) + { + c = m_pOptions->m_colorA; + x2 = w / 2; + w2 = x2; + } + if(d3l.getLineA().isValid() && !d3l.getLineB().isValid()) + { + c = m_pOptions->m_colorB; + w2 = w / 2; + } + } + + if(!bWhiteSpaceChange || m_pOptions->m_bShowWhiteSpace) + { + // Make sure that lines with conflict are not overwritten. + if(c == m_pOptions->m_colorForConflict) + { + p.fillRect(x2 + 1, oldY, w2, std::max(1, y - oldY), bWhiteSpaceChange ? QBrush(c, Qt::Dense4Pattern) : QBrush(c)); + oldConflictY = oldY; + } + else if(c != m_pOptions->m_bgColor && oldY > oldConflictY) + { + p.fillRect(x2 + 1, oldY, w2, std::max(1, y - oldY), bWhiteSpaceChange ? QBrush(c, Qt::Dense4Pattern) : QBrush(c)); + } + } + + oldY = y; + + ++line; + if(m_pOptions->wordWrapOn()) + { + ++wrapLineIdx; + if(wrapLineIdx >= d3l.linesNeededForDisplay()) + { + wrapLineIdx = 0; + ++i; + } + } + else + { + ++i; + } + } +} + +void Overview::paintEvent(QPaintEvent*) +{ + if(m_pDiff3LineList == nullptr) return; + int h = height() - 1; + int w = width(); + + const auto dpr = devicePixelRatioF(); + if(m_pixmap.size() != size() * dpr) + { + m_nofLines = m_pDiff3LineList->numberOfLines(m_pOptions->wordWrapOn()); + + m_pixmap = QPixmap(size() * dpr); + m_pixmap.setDevicePixelRatio(dpr); + + QPainter p(&m_pixmap); + p.fillRect(rect(), m_pOptions->m_bgColor); + + if(!KDiff3App::isTripleDiff() || mOverviewMode == e_OverviewMode::eOMNormal) + { + drawColumn(p, e_OverviewMode::eOMNormal, 0, w, h, m_nofLines); + } + else + { + drawColumn(p, e_OverviewMode::eOMNormal, 0, w / 2, h, m_nofLines); + drawColumn(p, mOverviewMode, w / 2, w / 2, h, m_nofLines); + } + } + + QPainter painter(this); + painter.drawPixmap(0, 0, m_pixmap); + int y1 = 0, h1 = 0; + if(m_nofLines > 0) + { + y1 = h * m_firstLine / m_nofLines - 1; + h1 = h * m_pageHeight / m_nofLines + 3; + } + painter.setPen(Qt::black); + painter.drawRect(1, y1, w - 1, h1); +} diff --git a/src/Overview.h b/src/Overview.h new file mode 100644 index 0000000..8bc4de7 --- /dev/null +++ b/src/Overview.h @@ -0,0 +1,64 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef OVERVIEW_H +#define OVERVIEW_H + +#include "LineRef.h" // for LineRef +#include "TypeUtils.h" // for QtNumberType + +#include // for QString +#include +#include + +class Diff3LineList; +class Options; + +enum class e_OverviewMode +{ + eOMNormal, + eOMAvsB, + eOMAvsC, + eOMBvsC +}; + +class Overview : public QWidget +{ + Q_OBJECT + public: + explicit Overview(const QSharedPointer &pOptions); + + void init(Diff3LineList* pDiff3LineList); + void reset(); + void setRange(QtNumberType firstLine, QtNumberType pageHeight); + void setPaintingAllowed(bool bAllowPainting); + + e_OverviewMode getOverviewMode(); + + public Q_SLOTS: + void setOverviewMode(e_OverviewMode eOverviewMode); + void setFirstLine(QtNumberType firstLine); + void slotRedraw(); + Q_SIGNALS: + void setLine(LineRef); + + private: + const Diff3LineList* m_pDiff3LineList; + QSharedPointer m_pOptions; + LineRef m_firstLine; + int m_pageHeight; + QPixmap m_pixmap; + e_OverviewMode mOverviewMode; + int m_nofLines; + + void paintEvent(QPaintEvent* e) override; + void mousePressEvent(QMouseEvent* e) override; + void mouseMoveEvent(QMouseEvent* e) override; + void drawColumn(QPainter& p, e_OverviewMode eOverviewMode, int x, int w, int h, int nofLines); +}; + +#endif // !OVERVIEW_H diff --git a/src/PixMapUtils.cpp b/src/PixMapUtils.cpp new file mode 100644 index 0000000..76b48bf --- /dev/null +++ b/src/PixMapUtils.cpp @@ -0,0 +1,161 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "MergeFileInfos.h" + +#include +#include +#include +#include +#include + +namespace PixMapUtils +{ +namespace{ +QPixmap* s_pm_dir = nullptr; +QPixmap* s_pm_file = nullptr; + +QPixmap* pmNotThere; +QPixmap* pmNew = nullptr; +QPixmap* pmOld; +QPixmap* pmMiddle; + +QPixmap* pmLink; + +QPixmap* pmDirLink; +QPixmap* pmFileLink; + +QPixmap* pmNewLink; +QPixmap* pmOldLink; +QPixmap* pmMiddleLink; + +QPixmap* pmNewDir; +QPixmap* pmMiddleDir; +QPixmap* pmOldDir; + +QPixmap* pmNewDirLink; +QPixmap* pmMiddleDirLink; +QPixmap* pmOldDirLink; +} +QPixmap colorToPixmap(const QColor &inColor) +{ + QPixmap pm(16, 16); + QPainter p(&pm); + p.setPen(Qt::black); + p.setBrush(inColor); + p.drawRect(0, 0, pm.width(), pm.height()); + return pm; +} +// Copy pm2 onto pm1, but preserve the alpha value from pm1 where pm2 is transparent. +QPixmap pixCombiner(const QPixmap* pm1, const QPixmap* pm2) +{ + QImage img1 = pm1->toImage().convertToFormat(QImage::Format_ARGB32); + QImage img2 = pm2->toImage().convertToFormat(QImage::Format_ARGB32); + + for(int y = 0; y < img1.height(); y++) + { + quint32* line1 = reinterpret_cast(img1.scanLine(y)); + quint32* line2 = reinterpret_cast(img2.scanLine(y)); + for(int x = 0; x < img1.width(); x++) + { + if(qAlpha(line2[x]) > 0) + line1[x] = (line2[x] | 0xff000000); + } + } + return QPixmap::fromImage(img1); +} + +// like pixCombiner but let the pm1 color shine through +QPixmap pixCombiner2(const QPixmap* pm1, const QPixmap* pm2) +{ + QPixmap pix = *pm1; + QPainter p(&pix); + p.setOpacity(0.5); + p.drawPixmap(0, 0, *pm2); + p.end(); + + return pix; +} + +void initPixmaps(const QColor& newest, const QColor& oldest, const QColor& middle, const QColor& notThere) +{ + if(s_pm_dir == nullptr || s_pm_file == nullptr) + { +#include "xpm/file.xpm" +#include "xpm/folder.xpm" + const int smallIcon = qApp->style()->pixelMetric(QStyle::PM_SmallIconSize); + s_pm_dir = new QPixmap(QIcon::fromTheme(QStringLiteral("folder")).pixmap(smallIcon)); + if(s_pm_dir->size() != QSize(16, 16)) + { + delete s_pm_dir; + s_pm_dir = new QPixmap(folder_pm); + } + s_pm_file = new QPixmap(file_pm); + } + + if(pmNew == nullptr) + { +#include "xpm/link_arrow.xpm" + + pmNotThere = new QPixmap; + pmNew = new QPixmap; + pmOld = new QPixmap; + pmMiddle = new QPixmap; + + pmLink = new QPixmap(link_arrow); + + pmDirLink = new QPixmap; + pmFileLink = new QPixmap; + + pmNewLink = new QPixmap; + pmOldLink = new QPixmap; + pmMiddleLink = new QPixmap; + + pmNewDir = new QPixmap; + pmMiddleDir = new QPixmap; + pmOldDir = new QPixmap; + + pmNewDirLink = new QPixmap; + pmMiddleDirLink = new QPixmap; + pmOldDirLink = new QPixmap; + } + + *pmNotThere = colorToPixmap(notThere); + *pmNew = colorToPixmap(newest); + *pmOld = colorToPixmap(oldest); + *pmMiddle = colorToPixmap(middle); + + *pmDirLink = pixCombiner(s_pm_dir, pmLink); + *pmFileLink = pixCombiner(s_pm_file, pmLink); + + *pmNewLink = pixCombiner(pmNew, pmLink); + *pmOldLink = pixCombiner(pmOld, pmLink); + *pmMiddleLink = pixCombiner(pmMiddle, pmLink); + + *pmNewDir = pixCombiner2(pmNew, s_pm_dir); + *pmMiddleDir = pixCombiner2(pmMiddle, s_pm_dir); + *pmOldDir = pixCombiner2(pmOld, s_pm_dir); + + *pmNewDirLink = pixCombiner(pmNewDir, pmLink); + *pmMiddleDirLink = pixCombiner(pmMiddleDir, pmLink); + *pmOldDirLink = pixCombiner(pmOldDir, pmLink); +} + +QPixmap getOnePixmap(e_Age eAge, bool bLink, bool bDir) +{ + QPixmap* ageToPm[] = {pmNew, pmMiddle, pmOld, pmNotThere, s_pm_file}; + QPixmap* ageToPmLink[] = {pmNewLink, pmMiddleLink, pmOldLink, pmNotThere, pmFileLink}; + QPixmap* ageToPmDir[] = {pmNewDir, pmMiddleDir, pmOldDir, pmNotThere, s_pm_dir}; + QPixmap* ageToPmDirLink[] = {pmNewDirLink, pmMiddleDirLink, pmOldDirLink, pmNotThere, pmDirLink}; + + QPixmap** ppPm = bDir ? (bLink ? ageToPmDirLink : ageToPmDir) : (bLink ? ageToPmLink : ageToPm); + + return *ppPm[eAge]; +} + +} // namespace PixMapUtils diff --git a/src/PixMapUtils.h b/src/PixMapUtils.h new file mode 100644 index 0000000..ea0bbaa --- /dev/null +++ b/src/PixMapUtils.h @@ -0,0 +1,30 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef PIXMAPUTILSH +#define PIXMAPUTILSH + +#include "MergeFileInfos.h" + +class QPixmap; +class QColor; + +namespace PixMapUtils +{ +QPixmap colorToPixmap(const QColor &inColor); +// Copy pm2 onto pm1, but preserve the alpha value from pm1 where pm2 is transparent. +QPixmap pixCombiner(const QPixmap* pm1, const QPixmap* pm2); + +// like pixCombiner but let the pm1 color shine through +QPixmap pixCombiner2(const QPixmap* pm1, const QPixmap* pm2); +void initPixmaps(const QColor& newest, const QColor& oldest, const QColor& middle, const QColor& notThere); + +QPixmap getOnePixmap(e_Age eAge, bool bLink, bool bDir); + +} // namespace PixMapUtils + +#endif diff --git a/src/ProgressProxyExtender.cpp b/src/ProgressProxyExtender.cpp new file mode 100644 index 0000000..e3ec707 --- /dev/null +++ b/src/ProgressProxyExtender.cpp @@ -0,0 +1,23 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "ProgressProxyExtender.h" + +#include + +void ProgressProxyExtender::slotListDirInfoMessage(KJob*, const QString& msg) +{ + setInformation(msg, 0); +} + +void ProgressProxyExtender::slotPercent(KJob*, unsigned long percent) +{ + setCurrent(percent); +} + + diff --git a/src/ProgressProxyExtender.h b/src/ProgressProxyExtender.h new file mode 100644 index 0000000..e7f889a --- /dev/null +++ b/src/ProgressProxyExtender.h @@ -0,0 +1,26 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef PROGRESSPROXYEXTENDER_H +#define PROGRESSPROXYEXTENDER_H + +#include "progress.h" +#include + +class KJob; + +class ProgressProxyExtender: public ProgressProxy +{ + Q_OBJECT +public: + ProgressProxyExtender() { setMaxNofSteps(100); } +public Q_SLOTS: + void slotListDirInfoMessage( KJob*, const QString& msg ); + void slotPercent( KJob*, unsigned long percent ); +}; +#endif diff --git a/src/RLPainter.h b/src/RLPainter.h new file mode 100644 index 0000000..c9a56bc --- /dev/null +++ b/src/RLPainter.h @@ -0,0 +1,69 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef RLPAINTER_H +#define RLPAINTER_H + +#include +// Helper class that swaps left and right for some commands. +class RLPainter : public QPainter +{ + int m_factor; + int m_xOffset; + int m_fontWidth; + + public: + RLPainter(QPaintDevice* pd, bool bRTL, int width, int fontWidth) + : QPainter(pd) + { + if(bRTL) + { + m_fontWidth = fontWidth; + m_factor = -1; + m_xOffset = width - 1; + } + else + { + m_fontWidth = 0; + m_factor = 1; + m_xOffset = 0; + } + } + + void fillRect(int x, int y, int w, int h, const QBrush& b) + { + if(m_factor == 1) + QPainter::fillRect(m_xOffset + x, y, w, h, b); + else + QPainter::fillRect(m_xOffset - x - w, y, w, h, b); + } + + void drawText(int x, int y, const QString& s, bool bAdapt = false) + { + Qt::LayoutDirection ld = (m_factor == 1 || !bAdapt) ? Qt::LeftToRight : Qt::RightToLeft; + //QPainter::setLayoutDirection( ld ); + if(ld == Qt::RightToLeft) // Reverse the text + { + QString s2; + for(int i = s.length() - 1; i >= 0; --i) + { + s2 += s[i]; + } + QPainter::drawText(m_xOffset - m_fontWidth * s.length() + m_factor * x, y, s2); + return; + } + QPainter::drawText(m_xOffset - m_fontWidth * s.length() + m_factor * x, y, s); + } + + void drawLine(int x1, int y1, int x2, int y2) + { + QPainter::drawLine(m_xOffset + m_factor * x1, y1, m_xOffset + m_factor * x2, y2); + } +}; + +#endif diff --git a/src/SourceData.cpp b/src/SourceData.cpp new file mode 100644 index 0000000..46adf88 --- /dev/null +++ b/src/SourceData.cpp @@ -0,0 +1,855 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +/* Features of class SourceData: +- Read a file (from the given URL) or accept data via a string. +- Allocate and free buffers as necessary. +- Run a preprocessor, when specified. +- Run the line-matching preprocessor, when specified. +- Run other preprocessing steps: Uppercase, ignore comments, + remove carriage return, ignore numbers. + +Order of operation: + 1. If data was given via a string then save it to a temp file. (see setData()) + 2. If the specified file is nonlocal (URL) copy it to a temp file. (TODO revisit this) + 3. If a preprocessor was specified, run the input file through it. + 4. Read the output of the preprocessor. + 5. If Uppercase was specified: Turn the read data to uppercase. + 6. Write the result to a temp file. + 7. If a line-matching preprocessor was specified, run the temp file through it. + 8. Read the output of the line-matching preprocessor. + 9. If ignore numbers was specified, strip the LMPP-output of all numbers. +10. If ignore comments was specified, strip the LMPP-output of comments. + +Optimizations: Skip unneeded steps. +*/ +#include "SourceData.h" + +#include "CommentParser.h" +#include "diff.h" +#include "kdiff3.h" +#include "Logging.h" +#include "Utils.h" + +#include +#include +#include +#include +#include +#include +#include + +#include + +void SourceData::setupConnections() +{ +#ifndef AUTOTEST + connections.push_back(KDiff3App::encodingChanged.connect(boost::bind(&SourceData::setEncoding, this, boost::placeholders::_1))); +#endif +} + +void SourceData::reset() +{ + mFromClipBoard = false; + m_pEncoding = nullptr; + m_fileAccess = FileAccess(); + m_normalData.reset(); + m_lmppData.reset(); + if(!m_tempInputFileName.isEmpty()) + { + m_tempFile.remove(); + m_tempInputFileName = ""; + } + + mErrors.clear(); +} + +void SourceData::setFilename(const QString& filename) +{ + if(filename.isEmpty()) + { + reset(); + } + else + { + FileAccess fa(filename); + setFileAccess(fa); + } +} + +bool SourceData::isEmpty() const +{ + return getFilename().isEmpty(); +} + +bool SourceData::hasData() const +{ + return m_normalData.m_pBuf != nullptr; +} + +bool SourceData::isValid() const +{ + return isEmpty() || hasData(); +} + +void SourceData::setOptions(const QSharedPointer &pOptions) +{ + m_pOptions = pOptions; +} + +QString SourceData::getFilename() const +{ + return m_fileAccess.absoluteFilePath(); +} + +QString SourceData::getAliasName() const +{ + return m_aliasName.isEmpty() ? m_fileAccess.prettyAbsPath() : m_aliasName; +} + +void SourceData::setAliasName(const QString& name) +{ + m_aliasName = name; +} + +void SourceData::setFileAccess(const FileAccess& fileAccess) +{ + mFromClipBoard = false; + + m_fileAccess = fileAccess; + m_aliasName = QString(); + if(!m_tempInputFileName.isEmpty()) + { + m_tempFile.remove(); + m_tempInputFileName = ""; + } + + mErrors.clear(); +} +void SourceData::setEncoding(QTextCodec* pEncoding) +{ + m_pEncoding = pEncoding; +} + +const QString SourceData::setData(const QString& data) +{ + mErrors.clear(); + // Create a temp file for preprocessing: + if(m_tempInputFileName.isEmpty()) + { + FileAccess::createTempFile(m_tempFile); + m_tempInputFileName = m_tempFile.fileName(); + } + m_fileAccess = FileAccess(m_tempInputFileName); + QByteArray ba = QTextCodec::codecForName("UTF-8")->fromUnicode(data); + bool bSuccess = m_fileAccess.writeFile(ba.constData(), ba.length()); + if(!bSuccess) + { + mErrors.append(i18n("Writing clipboard data to temp file failed.")); + return mErrors[0]; + } + else + { + m_aliasName = i18n("From Clipboard"); + mFromClipBoard = true; + //m_fileAccess = FileAccess(); // Insure m_fileAccess is not valid + } + + return QLatin1String(""); +} + +const QVector* SourceData::getLineDataForDiff() const +{ + if(m_lmppData.m_pBuf == nullptr) + return m_normalData.m_v.size() > 0 ? &m_normalData.m_v : nullptr; + else + return m_lmppData.m_v.size() > 0 ? &m_lmppData.m_v : nullptr; +} + +const QVector* SourceData::getLineDataForDisplay() const +{ + return m_normalData.m_v.size() > 0 ? &m_normalData.m_v : nullptr; +} + +LineRef SourceData::getSizeLines() const +{ + return m_normalData.lineCount(); +} + +qint64 SourceData::getSizeBytes() const +{ + return m_normalData.byteCount(); +} + +const char* SourceData::getBuf() const +{ + return m_normalData.m_pBuf; +} + +const QString& SourceData::getText() const +{ + return *m_normalData.m_unicodeBuf; +} + +bool SourceData::isText() const +{ + return m_normalData.isText() || m_normalData.isEmpty(); +} + +bool SourceData::isIncompleteConversion() const +{ + return m_normalData.m_bIncompleteConversion; +} + +bool SourceData::isFromBuffer() const +{ + return mFromClipBoard; +} + +bool SourceData::isBinaryEqualWith(const QSharedPointer& other) const +{ + return m_fileAccess.exists() && other->m_fileAccess.exists() && + getSizeBytes() == other->getSizeBytes() && + (getSizeBytes() == 0 || memcmp(getBuf(), other->getBuf(), getSizeBytes()) == 0); +} + +/* + Warning: Do not call this function without re-running the comparison or + otherwise resetting the DiffTextWindows as these store a pointer to the file + data stored here. +*/ +void SourceData::FileData::reset() +{ + if(m_pBuf != nullptr) + { + delete[](char*) m_pBuf; + m_pBuf = nullptr; + } + m_v.clear(); + mDataSize = 0; + mLineCount = 0; + m_bIsText = false; + m_bIncompleteConversion = false; + m_eLineEndStyle = eLineEndStyleUndefined; +} + +bool SourceData::FileData::readFile(FileAccess& file) +{ + reset(); + if(file.fileName().isEmpty()) + { + return true; + } + + //FileAccess fa(filename); + + if(!file.isNormal()) + return true; + + mDataSize = file.sizeForReading(); + char* pBuf; + m_pBuf = pBuf = new char[mDataSize + 100]; // Alloc 100 byte extra: Safety hack, not nice but does no harm. + // Some extra bytes at the end of the buffer are needed by + // the diff algorithm. See also GnuDiff::diff_2_files(). + bool bSuccess = file.readFile(pBuf, mDataSize); + if(!bSuccess) + { + delete[] pBuf; + m_pBuf = nullptr; + mDataSize = 0; + } + else + { + //null terminate buffer + pBuf[mDataSize + 1] = 0; + pBuf[mDataSize + 2] = 0; + pBuf[mDataSize + 3] = 0; + pBuf[mDataSize + 4] = 0; + } + return bSuccess; +} + +bool SourceData::FileData::readFile(const QString& filename) +{ + reset(); + if(filename.isEmpty()) + { + return true; + } + + FileAccess fa(filename); + + if(!fa.isNormal()) + return true; + + mDataSize = fa.sizeForReading(); + char* pBuf; + m_pBuf = pBuf = new char[mDataSize + 100]; // Alloc 100 byte extra: Safety hack, not nice but does no harm. + // Some extra bytes at the end of the buffer are needed by + // the diff algorithm. See also GnuDiff::diff_2_files(). + bool bSuccess = fa.readFile(pBuf, mDataSize); + if(!bSuccess) + { + delete[] pBuf; + m_pBuf = nullptr; + mDataSize = 0; + } + return bSuccess; +} + +bool SourceData::saveNormalDataAs(const QString& fileName) +{ + return m_normalData.writeFile(fileName); +} + +bool SourceData::FileData::writeFile(const QString& filename) +{ + if(filename.isEmpty()) + { + return true; + } + + FileAccess fa(filename); + bool bSuccess = fa.writeFile(m_pBuf, mDataSize); + return bSuccess; +} + +//Depriated +void SourceData::FileData::copyBufFrom(const FileData& src) //TODO: Remove me. +{ + reset(); + char* pBuf; + mDataSize = src.mDataSize; + m_pBuf = pBuf = new char[mDataSize + 100]; + Q_ASSERT(src.m_pBuf != nullptr); + memcpy(pBuf, src.m_pBuf, mDataSize); +} + +QTextCodec* SourceData::detectEncoding(const QString& fileName, QTextCodec* pFallbackCodec) +{ + QFile f(fileName); + if(f.open(QIODevice::ReadOnly)) + { + char buf[400]; + + qint64 size = f.read(buf, sizeof(buf)); + qint64 skipBytes = 0; + QTextCodec* pCodec = detectEncoding(buf, size, skipBytes); + if(pCodec) + return pCodec; + } + return pFallbackCodec; +} + +void SourceData::readAndPreprocess(QTextCodec* pEncoding, bool bAutoDetectUnicode) +{ + m_pEncoding = pEncoding; + QTemporaryFile fileIn1, fileOut1; + QString fileNameIn1; + QString fileNameOut1; + QString fileNameIn2; + QString fileNameOut2; + + // Detect the input for the preprocessing operations + if(!mFromClipBoard) + { + //Routine result of directory compare finding a file that isn't in all locations. + if(!m_fileAccess.isValid()) return; + + Q_ASSERT(!m_fileAccess.isDir()); + if(!m_fileAccess.isNormal()) + { + mErrors.append(i18n("%1 is not a normal file.", m_fileAccess.prettyAbsPath())); + return; + } + + if(m_fileAccess.isLocal()) + { + fileNameIn1 = m_fileAccess.absoluteFilePath(); + } + else // File is not local: create a temporary local copy: + { + if(m_tempInputFileName.isEmpty()) + { + m_fileAccess.createLocalCopy(); + m_tempInputFileName = m_fileAccess.getTempName(); + } + + fileNameIn1 = m_tempInputFileName; + } + if(bAutoDetectUnicode) + { + m_pEncoding = detectEncoding(fileNameIn1, pEncoding); + } + } + else // The input was set via setData(), probably from clipboard. + { + /* + Happens during initial startup. This means we have nothing to compare + */ + if(m_tempInputFileName.isEmpty()) + return; + + fileNameIn1 = m_tempInputFileName; + m_pEncoding = QTextCodec::codecForName("UTF-8"); + } + QTextCodec* pEncoding1 = m_pEncoding; + QTextCodec* pEncoding2 = m_pEncoding; + + m_normalData.reset(); + m_lmppData.reset(); + + FileAccess faIn(fileNameIn1); + qint64 fileInSize = faIn.size(); + + if(faIn.exists()) + { + // Run the first preprocessor + if(m_pOptions->m_PreProcessorCmd.isEmpty()) + { + // No preprocessing: Read the file directly: + if(!m_normalData.readFile(faIn)) + { + mErrors.append(faIn.getStatusText()); + return; + } + } + else + { + QTemporaryFile tmpInPPFile; + QString fileNameInPP = fileNameIn1; + + if(pEncoding1 != m_pOptions->m_pEncodingPP) + { + // Before running the preprocessor convert to the format that the preprocessor expects. + FileAccess::createTempFile(tmpInPPFile); + fileNameInPP = tmpInPPFile.fileName(); + pEncoding1 = m_pOptions->m_pEncodingPP; + convertFileEncoding(fileNameIn1, pEncoding, fileNameInPP, pEncoding1); + } + + QString ppCmd = m_pOptions->m_PreProcessorCmd; + FileAccess::createTempFile(fileOut1); + fileNameOut1 = fileOut1.fileName(); + + QProcess ppProcess; + ppProcess.setStandardInputFile(fileNameInPP); + ppProcess.setStandardOutputFile(fileNameOut1); + QString program; + QStringList args; + QString errorReason = Utils::getArguments(ppCmd, program, args); + if(errorReason.isEmpty()) + { + ppProcess.start(program, args); + ppProcess.waitForFinished(-1); + } + else + errorReason = "\n(" + errorReason + ')'; + + bool bSuccess = errorReason.isEmpty() && m_normalData.readFile(fileNameOut1); + if(fileInSize > 0 && (!bSuccess || m_normalData.byteCount() == 0)) + { + //Don't fail the preprocessor command if the file can't be read. + if(!m_normalData.readFile(faIn)) + { + mErrors.append(faIn.getStatusText()); + mErrors.append(i18n(" Temp file is: %1", fileNameIn1)); + return; + } + mErrors.append( + i18n("Preprocessing possibly failed. Check this command:\n\n %1" + "\n\nThe preprocessing command will be disabled now.", ppCmd) + + errorReason); + m_pOptions->m_PreProcessorCmd = ""; + + pEncoding1 = m_pEncoding; + } + } + + if(!m_normalData.preprocess(pEncoding1, false)) + { + mErrors.append(i18n("File %1 too large to process. Skipping.", fileNameIn1)); + return; + } + //exit early for non text data further processing assumes a text file as input + if(!m_normalData.isText()) + return; + + // LineMatching Preprocessor + if(!m_pOptions->m_LineMatchingPreProcessorCmd.isEmpty()) + { + QTemporaryFile tempOut2, fileInPP; + fileNameIn2 = fileNameOut1.isEmpty() ? fileNameIn1 : fileNameOut1; + QString fileNameInPP = fileNameIn2; + pEncoding2 = pEncoding1; + if(pEncoding2 != m_pOptions->m_pEncodingPP) + { + // Before running the preprocessor convert to the format that the preprocessor expects. + FileAccess::createTempFile(fileInPP); + fileNameInPP = fileInPP.fileName(); + pEncoding2 = m_pOptions->m_pEncodingPP; + convertFileEncoding(fileNameIn2, pEncoding1, fileNameInPP, pEncoding2); + } + + QString ppCmd = m_pOptions->m_LineMatchingPreProcessorCmd; + FileAccess::createTempFile(tempOut2); + fileNameOut2 = tempOut2.fileName(); + QProcess ppProcess; + ppProcess.setStandardInputFile(fileNameInPP); + ppProcess.setStandardOutputFile(fileNameOut2); + QString program; + QStringList args; + QString errorReason = Utils::getArguments(ppCmd, program, args); + if(errorReason.isEmpty()) + { + ppProcess.start(program, args); + ppProcess.waitForFinished(-1); + } + else + errorReason = "\n(" + errorReason + ')'; + + bool bSuccess = errorReason.isEmpty() && m_lmppData.readFile(fileNameOut2); + if(FileAccess(fileNameIn2).size() > 0 && (!bSuccess || m_lmppData.byteCount() == 0)) + { + mErrors.append( + i18n("The line-matching-preprocessing possibly failed. Check this command:\n\n %1" + "\n\nThe line-matching-preprocessing command will be disabled now.", ppCmd) + + errorReason); + m_pOptions->m_LineMatchingPreProcessorCmd = ""; + if(!m_lmppData.readFile(fileNameIn2)) + { + mErrors.append(i18n("Failed to read file: %1", fileNameIn2)); + return; + } + } + } + else if(m_pOptions->ignoreComments() || m_pOptions->m_bIgnoreCase) + { + // We need a copy of the normal data. + m_lmppData.copyBufFrom(m_normalData); + } + } + else + { + //exit early for nonexistent files + return; + } + + if(!m_lmppData.preprocess(pEncoding2, true)) + { + mErrors.append(i18n("File %1 too large to process. Skipping.", fileNameIn1)); + return; + } + + Q_ASSERT(m_lmppData.isText()); + //TODO: Needed? + if(m_lmppData.lineCount() < m_normalData.lineCount()) + { + // Preprocessing command may result in smaller data buffer so adjust size + for(qint64 i = m_lmppData.lineCount(); i < m_normalData.lineCount(); ++i) + { // Set all empty lines to point to the end of the buffer. + m_lmppData.m_v.push_back(LineData(m_lmppData.m_unicodeBuf, m_lmppData.m_unicodeBuf->length())); + } + + m_lmppData.mLineCount = m_normalData.lineCount(); + } + + // Ignore comments + if(m_pOptions->ignoreComments() && hasData()) + { + qint64 vSize = std::min(m_normalData.lineCount(), m_lmppData.lineCount()); + Q_ASSERT(vSize < TYPE_MAX(qint32)); + //Perform explcit cast to insure well defined behavior comparing 32-bit to a 64-bit value + for(qint32 i = 0; (qint64)i < vSize; ++i) + { + //TODO: Phase this out. We should not be messing with these flags outside the parser. + m_normalData.m_v[i].setPureComment(m_lmppData.m_v[i].isPureComment()); + m_normalData.m_v[i].setSkipable(m_lmppData.m_v[i].isSkipable()); + } + } +} + +/** Prepare the linedata vector for every input line.*/ +bool SourceData::FileData::preprocess(QTextCodec* pEncoding, bool removeComments) +{ + if(m_pBuf == nullptr) + return true; + + if(pEncoding == nullptr) + return false; + + QString line; + QChar curChar, prevChar = 0; + LineCount lineCount = 0; + qint64 lastOffset = 0; + qint64 skipBytes = 0; + QScopedPointer parser(new DefaultCommentParser()); + + // detect line end style + QVector vOrigDataLineEndStyle; + m_eLineEndStyle = eLineEndStyleUndefined; + + QTextCodec* pCodec = detectEncoding(m_pBuf, mDataSize, skipBytes); + if(pCodec != pEncoding) + skipBytes = 0; + + if(mDataSize - skipBytes > TYPE_MAX(QtNumberType)) + return false; + + const QByteArray ba = QByteArray::fromRawData(m_pBuf + skipBytes, (int)(mDataSize - skipBytes)); + QTextStream ts(ba, QIODevice::ReadOnly); //Don't use text mode we need to see the actual line ending. + ts.setCodec(pEncoding); + ts.setAutoDetectUnicode(false); + + m_bIncompleteConversion = false; + m_unicodeBuf->clear(); + Q_ASSERT(m_unicodeBuf->length() == 0); + + bool skipNextRead = false; + while(!ts.atEnd()) + { + line.clear(); + if(lineCount >= TYPE_MAX(LineCount) - 5) + { + m_v.clear(); + return false; + } + + if(!skipNextRead){ + prevChar = curChar; + curChar = ts.read(1).unicode()[0]; + } + else + skipNextRead = false; + + quint32 firstNonwhite = 0; + bool foundNonWhite = false; + + //QTextStream::readLine doesn't tell us about line endings. + while(curChar != '\n' && curChar != '\r') + { + if(curChar.isNull() || curChar.isNonCharacter()) + { + m_v.clear(); + return true; + } + + if(curChar == QChar::ReplacementCharacter) + m_bIncompleteConversion = true; + + line.append(curChar); + if(!curChar.isSpace() && !foundNonWhite) + { + firstNonwhite = line.length(); + foundNonWhite = true; + } + + if(ts.atEnd()) + break; + + prevChar = curChar; + curChar = ts.read(1).unicode()[0]; + } + + + switch(curChar.unicode()) + { + case '\n': + vOrigDataLineEndStyle.push_back(eLineEndStyleUnix); + break; + case '\r': + if(lastOffset < mDataSize) + { + prevChar = curChar; + curChar = ts.read(1).unicode()[0]; + + if(curChar == '\n') + { + vOrigDataLineEndStyle.push_back(eLineEndStyleDos); + break; + } + //work around for lack of seek API in QTextStream + skipNextRead = true; + } + + //old mac style ending. + vOrigDataLineEndStyle.push_back(eLineEndStyleUndefined); + break; + } + parser->processLine(line); + if(removeComments) + parser->removeComment(line); + + ++lineCount; + m_v.push_back(LineData(m_unicodeBuf, lastOffset, line.length(), firstNonwhite, parser->isSkipable(), parser->isPureComment())); + //The last line may not have an EOL mark. In that case don't add one to our buffer. + m_unicodeBuf->append(line); + if(curChar == '\n' || curChar == '\r') + { + //kdiff3 internally uses only unix style endings for simplicity. + m_unicodeBuf->append('\n'); + } + + lastOffset = m_unicodeBuf->length(); + } + /* + Process trailing new line as if there were a blank non-terminated line after it. + But do nothing to the data buffer since this a phantom line needed for internal purposes. + */ + if(curChar == '\n' || curChar == '\r') + { + ++lineCount; + + parser->processLine(""); + m_v.push_back(LineData(m_unicodeBuf, lastOffset, 0, 0, parser->isSkipable(), parser->isPureComment())); + } + //Check if we have two identical offsets at the end. Indicates a bug in the read loop. + Q_ASSERT(m_v.size() < 2 || m_v[m_v.size() - 1].getOffset() != m_v[m_v.size() - 2].getOffset()); + + m_v.push_back(LineData(m_unicodeBuf, lastOffset)); + + m_bIsText = true; + + if(!vOrigDataLineEndStyle.isEmpty()) + m_eLineEndStyle = vOrigDataLineEndStyle[0]; + + mLineCount = lineCount; + return true; +} + +// Convert the input file from input encoding to output encoding and write it to the output file. +bool SourceData::convertFileEncoding(const QString& fileNameIn, QTextCodec* pCodecIn, + const QString& fileNameOut, QTextCodec* pCodecOut) +{ + QFile in(fileNameIn); + if(!in.open(QIODevice::ReadOnly)) + return false; + QTextStream inStream(&in); + inStream.setCodec(pCodecIn); + inStream.setAutoDetectUnicode(false); + + QFile out(fileNameOut); + if(!out.open(QIODevice::WriteOnly)) + return false; + QTextStream outStream(&out); + outStream.setCodec(pCodecOut); + + QString data = inStream.readAll(); + outStream << data; + + return true; +} + +QTextCodec* SourceData::getEncodingFromTag(const QByteArray& s, const QByteArray& encodingTag) +{ + int encodingPos = s.indexOf(encodingTag); + if(encodingPos >= 0) + { + int apostrophPos = s.indexOf('"', encodingPos + encodingTag.length()); + int apostroph2Pos = s.indexOf('\'', encodingPos + encodingTag.length()); + char apostroph = '"'; + if(apostroph2Pos >= 0 && (apostrophPos < 0 || apostroph2Pos < apostrophPos)) + { + apostroph = '\''; + apostrophPos = apostroph2Pos; + } + + int encodingEnd = s.indexOf(apostroph, apostrophPos + 1); + if(encodingEnd >= 0) // e.g.: or + { + QByteArray encoding = s.mid(apostrophPos + 1, encodingEnd - (apostrophPos + 1)); + return QTextCodec::codecForName(encoding); + } + else // e.g.: + { + QByteArray encoding = s.mid(encodingPos + encodingTag.length(), apostrophPos - (encodingPos + encodingTag.length())); + return QTextCodec::codecForName(encoding); + } + } + return nullptr; +} + +QTextCodec* SourceData::detectEncoding(const char* buf, qint64 size, qint64& skipBytes) +{ + if(size >= 2) + { + if(buf[0] == '\xFF' && buf[1] == '\xFE') + { + skipBytes = 2; + return QTextCodec::codecForName("UTF-16LE"); + } + + if(buf[0] == '\xFE' && buf[1] == '\xFF') + { + skipBytes = 2; + return QTextCodec::codecForName("UTF-16BE"); + } + } + if(size >= 3) + { + if(buf[0] == '\xEF' && buf[1] == '\xBB' && buf[2] == '\xBF') + { + skipBytes = 3; + //Custom codec. + return QTextCodec::codecForName("UTF-8-BOM"); + } + } + skipBytes = 0; + QByteArray s; + /* + We don't need the whole file here just the header. + */ + if(size <= 5000) + s = QByteArray(buf, (int)size); + else + s = QByteArray(buf, 5000); + + int xmlHeaderPos = s.indexOf("= 0) + { + int xmlHeaderEnd = s.indexOf("?>", xmlHeaderPos); + if(xmlHeaderEnd >= 0) + { + QTextCodec* pCodec = getEncodingFromTag(s.mid(xmlHeaderPos, xmlHeaderEnd - xmlHeaderPos), "encoding="); + if(pCodec) + return pCodec; + } + } + else // HTML + { + int metaHeaderPos = s.indexOf("= 0) + { + int metaHeaderEnd = s.indexOf(">", metaHeaderPos); + if(metaHeaderEnd >= 0) + { + QTextCodec* pCodec = getEncodingFromTag(s.mid(metaHeaderPos, metaHeaderEnd - metaHeaderPos), "charset="); + if(pCodec) + return pCodec; + + metaHeaderPos = s.indexOf("toUnicode(data.constData(), data.size(), &state); + if(state.invalidChars == 0) + return utf8; + + return nullptr; +} diff --git a/src/SourceData.h b/src/SourceData.h new file mode 100644 index 0000000..ccb8745 --- /dev/null +++ b/src/SourceData.h @@ -0,0 +1,127 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef SOURCEDATA_H +#define SOURCEDATA_H + +#include "options.h" +#include "fileaccess.h" +#include "LineRef.h" + +#include + +#include +#include +#include +#include + +class LineData; +class SourceData +{ + public: + void setupConnections(); + void setOptions(const QSharedPointer &pOptions); + + Q_REQUIRED_RESULT LineRef getSizeLines() const; + Q_REQUIRED_RESULT qint64 getSizeBytes() const; + Q_REQUIRED_RESULT const char* getBuf() const; + Q_REQUIRED_RESULT const QString& getText() const; + Q_REQUIRED_RESULT const QVector* getLineDataForDisplay() const; + Q_REQUIRED_RESULT const QVector* getLineDataForDiff() const; + + void setFilename(const QString& filename); + void setFileAccess(const FileAccess& fileAccess); + Q_REQUIRED_RESULT QString getFilename() const; + void setAliasName(const QString& name); + Q_REQUIRED_RESULT QString getAliasName() const; + Q_REQUIRED_RESULT bool isEmpty() const; // File was set + Q_REQUIRED_RESULT bool hasData() const; // Data was readable + Q_REQUIRED_RESULT bool isText() const; // is it pure text (vs. binary data) + Q_REQUIRED_RESULT bool isIncompleteConversion() const; // true if some replacement characters were found + Q_REQUIRED_RESULT bool isFromBuffer() const; // was it set via setData() (vs. setFileAccess() or setFilename()) + Q_REQUIRED_RESULT const QString setData(const QString& data); + Q_REQUIRED_RESULT bool isValid() const; // Either no file is specified or reading was successful + + // Returns a list of error messages if anything went wrong + void readAndPreprocess(QTextCodec* pEncoding, bool bAutoDetectUnicode); + bool saveNormalDataAs(const QString& fileName); + + Q_REQUIRED_RESULT bool isBinaryEqualWith(const QSharedPointer& other) const; + + void reset(); + + Q_REQUIRED_RESULT bool isDir() const { return m_fileAccess.isDir(); } + + Q_REQUIRED_RESULT QTextCodec* getEncoding() const { return m_pEncoding; } + Q_REQUIRED_RESULT e_LineEndStyle getLineEndStyle() const { return m_normalData.m_eLineEndStyle; } + + Q_REQUIRED_RESULT const QStringList& getErrors() const { return mErrors; } + + void setEncoding(QTextCodec* pEncoding); + + private: + bool convertFileEncoding(const QString& fileNameIn, QTextCodec* pCodecIn, + const QString& fileNameOut, QTextCodec* pCodecOut); + + static QTextCodec* dectectUTF8(const QByteArray& data); + static QTextCodec* detectEncoding(const char* buf, qint64 size, qint64& skipBytes); + static QTextCodec* getEncodingFromTag(const QByteArray& s, const QByteArray& encodingTag); + + QTextCodec* detectEncoding(const QString& fileName, QTextCodec* pFallbackCodec); + QString m_aliasName; + FileAccess m_fileAccess; + QSharedPointer m_pOptions; + QString m_tempInputFileName; + QTemporaryFile m_tempFile; //Created from clipboard content. + + QStringList mErrors; + + bool mFromClipBoard = false; + + class FileData + { + private: + friend SourceData; + const char* m_pBuf = nullptr; //TODO: Phase out needlessly wastes memory and time by keeping second copy of file data. + qint64 mDataSize = 0; + qint64 mLineCount = 0; // Number of lines in m_pBuf1 and size of m_v1, m_dv12 and m_dv13 + QSharedPointer m_unicodeBuf=QSharedPointer::create(); + QVector m_v; + bool m_bIsText = false; + bool m_bIncompleteConversion = false; + e_LineEndStyle m_eLineEndStyle = eLineEndStyleUndefined; + + public: + ~FileData() { reset(); } + + bool readFile(FileAccess& file); + bool readFile(const QString& filename); + bool writeFile(const QString& filename); + + bool preprocess(QTextCodec* pEncoding, bool removeComments); + void reset(); + void copyBufFrom(const FileData& src); + + bool isEmpty() const { return mDataSize == 0; } + + bool isText() const { return m_bIsText || isEmpty(); } + + inline qint64 lineCount() const { return mLineCount; } + inline qint64 byteCount() const { return mDataSize; } + }; + FileData m_normalData; + FileData m_lmppData; + QTextCodec* m_pEncoding = nullptr; + + /* + This list exists solely to auto disconnect boost signals. + */ + std::list connections; +}; + +#endif // !SOURCEDATA_H diff --git a/src/TypeUtils.h b/src/TypeUtils.h new file mode 100644 index 0000000..aa3b893 --- /dev/null +++ b/src/TypeUtils.h @@ -0,0 +1,24 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef TYPEUTILS_H +#define TYPEUTILS_H + +#include +#include +#include + +#include + +#define TYPE_MAX(x) std::numeric_limits::max() +#define TYPE_MIN(x) std::numeric_limits::min() + +typedef size_t PtrDiffRef; +typedef qint32 QtNumberType;//Qt insists on one type for all but does not create a typedef for it. + +static_assert(sizeof(int) >= sizeof(qint32), "Legacy LP32 systems/compilers not supported"); // e.g. Windows 16-bit + +#endif diff --git a/src/UTF8BOMCodec.h b/src/UTF8BOMCodec.h new file mode 100644 index 0000000..52eb1de --- /dev/null +++ b/src/UTF8BOMCodec.h @@ -0,0 +1,54 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include + +// UTF8-Codec that saves a BOM +class UTF8BOMCodec: public QTextCodec +{ + QTextCodec* m_pUtf8Codec; + class PublicTextCodec: public QTextCodec + { + public: + QString publicConvertToUnicode(const char* p, int len, ConverterState* pState) const + { + return convertToUnicode(p, len, pState); + } + QByteArray publicConvertFromUnicode(const QChar* input, int number, ConverterState* pState) const + { + return convertFromUnicode(input, number, pState); + } + }; + + public: + UTF8BOMCodec() + { + m_pUtf8Codec = QTextCodec::codecForName("UTF-8"); + } + QByteArray name() const override { return "UTF-8-BOM"; } + int mibEnum() const override { return 2123; } + + QByteArray convertFromUnicode(const QChar* input, int number, ConverterState* pState) const override + { + QByteArray r; + if(pState && pState->state_data[2] == 0) // state_data[2] not used by QUtf8::convertFromUnicode (see qutfcodec.cpp) + { + r += "\xEF\xBB\xBF"; + pState->state_data[2] = 1; + pState->flags |= QTextCodec::IgnoreHeader; + } + + r += ((PublicTextCodec*)m_pUtf8Codec)->publicConvertFromUnicode(input, number, pState); + return r; + } + + QString convertToUnicode(const char* p, int len, ConverterState* pState) const override + { + return ((PublicTextCodec*)m_pUtf8Codec)->publicConvertToUnicode(p, len, pState); + } +}; diff --git a/src/Utils.cpp b/src/Utils.cpp new file mode 100644 index 0000000..135d19d --- /dev/null +++ b/src/Utils.cpp @@ -0,0 +1,182 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#include "Utils.h" + +#include "fileaccess.h" + +#include + +#include +#include +#include +#include +#include + +/* Split the command line into arguments. + * Normally split at white space separators except when quoting with " or '. + * Backslash is treated as meta. + * Detect parsing errors like unclosed quotes. + * The first item in the list will be the command itself. + * Returns the error reason as string or an empty string on success. + * Eg. >"1" "2"< => >1<, >2< + * Eg. >'\'\\'< => >'\< backslash is a meta character + * Eg. > "\\" < => >\< + * Eg. >"c:\sed" 's/a/\' /g'< => >c:\sed<, >s/a/' /g< + */ +QString Utils::getArguments(QString cmd, QString& program, QStringList& args) +{ + program = QString(); + args.clear(); + for(int i = 0; i < cmd.length(); ++i) + { + while(i < cmd.length() && cmd[i].isSpace()) + { + ++i; + } + if(cmd[i] == '"' || cmd[i] == '\'') // argument beginning with a quote + { + QChar quoteChar = cmd[i]; + ++i; + int argStart = i; + bool bSkip = false; + while(i < cmd.length() && (cmd[i] != quoteChar || bSkip)) + { + if(bSkip) + { + bSkip = false; + //Don't emulate bash here we are not talking to it. + //For us all quotes are the same. + if(cmd[i] == '\\' || cmd[i] == '\'' || cmd[i] == '"') + { + cmd.remove(i - 1, 1); // remove the backslash '\' + continue; + } + } + else if(cmd[i] == '\\') + bSkip = true; + ++i; + } + if(i < cmd.length()) + { + args << cmd.mid(argStart, i - argStart); + if(i + 1 < cmd.length() && !cmd[i + 1].isSpace()) + return i18n("Expecting space after closing quote."); + } + else + return i18n("Unmatched quote."); + continue; + } + else + { + int argStart = i; + while(i < cmd.length() && (!cmd[i].isSpace() /*|| bSkip*/)) + { + if(cmd[i] == '"' || cmd[i] == '\'') + return i18n("Unexpected quote character within argument."); + ++i; + } + args << cmd.mid(argStart, i - argStart); + } + } + if(args.isEmpty()) + return i18n("No program specified."); + else + { + program = args[0]; + args.pop_front(); + } + return QString(); +} + +bool Utils::wildcardMultiMatch(const QString& wildcard, const QString& testString, bool bCaseSensitive) +{ + static QHash s_patternMap; + + const QStringList regExpList = wildcard.split(QChar(';')); + + for(const QString& regExp : regExpList) + { + QHash::iterator patIt = s_patternMap.find(regExp); + if(patIt == s_patternMap.end()) + { + QRegExp pattern(regExp, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::Wildcard); + patIt = s_patternMap.insert(regExp, pattern); + } + + if(patIt.value().exactMatch(testString)) + return true; + } + + return false; +} + +//TODO: Only used by calcTokenPos. +bool Utils::isCTokenChar(QChar c) +{ + return (c == '_') || + (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || + (c >= '0' && c <= '9'); +} + + +//TODO: Needed? Only user of isCTokenChar. +/// Calculate where a token starts and ends, given the x-position on screen. +void Utils::calcTokenPos(const QString& s, int posOnScreen, int& pos1, int& pos2) +{ + int pos = std::max(0, posOnScreen); + if(pos >= (int)s.length()) + { + pos1 = s.length(); + pos2 = s.length(); + return; + } + + pos1 = pos; + pos2 = pos + 1; + + if(isCTokenChar(s[pos1])) + { + while(pos1 >= 0 && isCTokenChar(s[pos1])) + --pos1; + ++pos1; + + while(pos2 < (int)s.length() && isCTokenChar(s[pos2])) + ++pos2; + } +} + +QString Utils::calcHistoryLead(const QString& s) +{ + // Return the start of the line until the first white char after the first non white char. + int i = s.indexOf(QRegularExpression("\\S")); + if(i == -1) + return QString(""); + + i = s.indexOf(QRegularExpression("\\s"), i); + if(Q_UNLIKELY(i == -1)) + return s;// Very unlikely + + return s.left(i); +} + +/* + QUrl::toLocalFile does some special handling for locally visable windows network drives. + If QUrl::isLocal however it returns false we get an empty string back. +*/ +QString Utils::urlToString(const QUrl &url) +{ + if(!FileAccess::isLocal(url)) + return url.toString(); + + QString result = url.toLocalFile(); + if(result.isEmpty()) + return url.path(); + + return result; +} + diff --git a/src/Utils.h b/src/Utils.h new file mode 100644 index 0000000..adfe765 --- /dev/null +++ b/src/Utils.h @@ -0,0 +1,55 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef UTILS_H +#define UTILS_H + +#include +#include +#include +#include + +class Utils{ + public: + /* + QUrl::toLocalFile does some special handling for locally visable windows network drives. + If QUrl::isLocal however it returns false we get an empty string back. + */ + static QString urlToString(const QUrl &url); + static bool wildcardMultiMatch(const QString& wildcard, const QString& testString, bool bCaseSensitive); + static QString getArguments(QString cmd, QString& program, QStringList& args); + inline static bool isEndOfLine( QChar c ) { return c=='\n' || c=='\r' || c=='\x0b'; } + + //Where possible use QTextLayout in place of these functions especially when dealing with non-latin scripts. + inline static int getHorizontalAdvance(const QFontMetrics &metrics, const QString& s, int len = -1) + { + //Warning: The Qt API used here is not accurate for some non-latin characters. + #if QT_VERSION < QT_VERSION_CHECK(5,12,0) + return metrics.width(s, len); + #else + return metrics.horizontalAdvance(s, len); + #endif + } + + inline static int getHorizontalAdvance(const QFontMetrics &metrics, const QChar& c) + { + //Warning: The Qt API used here is not accurate for some non-latin characters. + #if QT_VERSION < QT_VERSION_CHECK(5,12,0) + return metrics.width(c); + #else + return metrics.horizontalAdvance(c); + #endif + } + + static void calcTokenPos(const QString& s, int posOnScreen, int& pos1, int& pos2); + static QString calcHistoryLead(const QString& s); + + private: + static bool isCTokenChar(QChar c); +}; + +#endif diff --git a/src/autotests/CMakeLists.txt b/src/autotests/CMakeLists.txt new file mode 100644 index 0000000..1137610 --- /dev/null +++ b/src/autotests/CMakeLists.txt @@ -0,0 +1,39 @@ +# SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com +# SPDX-License-Identifier: GPL-2.0-or-later + +find_package( + Qt5 ${QT_MIN_VERSION} + REQUIRED + Test + ) +add_definitions(-DAUTOTEST) + +ecm_add_test(connectiontest.cpp + TEST_NAME "connntiontest" + LINK_LIBRARIES Qt5::Test +) + +ecm_add_test(commentparser.cpp ../CommentParser.cpp + TEST_NAME "commentparser" + LINK_LIBRARIES Qt5::Test +) + +ecm_add_test(CvsIgnoreListTest.cpp ../ignorelist.cpp ../fileaccess.cpp ../Utils.cpp ../progress.cpp + TEST_NAME "cvsignorelisttest" + LINK_LIBRARIES Qt5::Test Qt5::Gui Qt5::Widgets KF5::KIOCore KF5::I18n +) + +ecm_add_test(FileAccessTest.cpp ../fileaccess.cpp ../Utils.cpp ../progress.cpp ../ignorelist.cpp + TEST_NAME "fileaccesstest" + LINK_LIBRARIES Qt5::Test Qt5::Gui Qt5::Widgets KF5::KIOCore KF5::I18n +) + +ecm_add_test(combinertest.cpp + TEST_NAME "combinertest" + LINK_LIBRARIES Qt5::Test +) + +ecm_add_test(DiffTest.cpp ../diff.cpp ../Logging.cpp ../Utils.cpp ../progress.cpp ../gnudiff_io.cpp ../gnudiff_analyze.cpp ../gnudiff_xmalloc.cpp ../fileaccess.cpp ../SourceData.cpp ../ignorelist.cpp ../CommentParser.cpp + TEST_NAME "difftest" + LINK_LIBRARIES Qt5::Test Qt5::Widgets Qt5::Gui KF5::ConfigCore KF5::I18n KF5::WidgetsAddons KF5::Parts KF5::XmlGui KF5::KIOCore +) diff --git a/src/autotests/CvsIgnoreListTest.cpp b/src/autotests/CvsIgnoreListTest.cpp new file mode 100644 index 0000000..4bc9bac --- /dev/null +++ b/src/autotests/CvsIgnoreListTest.cpp @@ -0,0 +1,133 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include +#include + +#include "../CvsIgnoreList.h" +#include "MocIgnoreFile.h" + +class IgnoreListTestInterface: public CvsIgnoreList +{ + public: + bool isEmpty() const + { + return m_exactPatterns.isEmpty() && m_endPatterns.isEmpty() && m_generalPatterns.isEmpty() && m_startPatterns.isEmpty(); + } + + const QStringList& getExactMatchList() const + { + return m_exactPatterns; + } +}; + +class CvsIgnoreListTest : public QObject +{ + const QString defaultPatterns = QString::fromLatin1(". .. core RCSLOG tags TAGS RCS SCCS .make.state " + ".nse_depinfo #* .#* cvslog.* ,* CVS CVS.adm .del-* *.a *.olb *.o *.obj " + "*.so *.Z *~ *.old *.elc *.ln *.bak *.BAK *.orig *.rej *.exe _$* *$"); + Q_OBJECT + private Q_SLOTS: + void initTestCase() + { + MocIgnoreFile file; + IgnoreListTestInterface test; + //sanity check defaults + QVERIFY(test.isEmpty()); + QVERIFY(test.isEmpty()); + QVERIFY(test.isEmpty()); + QVERIFY(test.isEmpty()); + //MocIgnoreFile should be emulating a readable local file. + QVERIFY(file.isLocal()); + QVERIFY(file.exists()); + QVERIFY(file.isReadable()); + QCOMPARE(file.fileName(), QStringLiteral(".cvsignore")); + } + + void addEntriesFromString() + { + IgnoreListTestInterface test; + + QString testString = ". .. core RCSLOG tags TAGS RCS SCCS .make.state"; + test.addEntriesFromString(testString); + QVERIFY(!test.getExactMatchList().isEmpty()); + QVERIFY(test.getExactMatchList() == testString.split(' ')); + } + + void matches() + { + CvsIgnoreList test; + + QString testString = ". .. core RCSLOG tags TAGS RCS SCCS .make.state *.so _$*"; + test.addEntriesFromString(testString); + + QVERIFY(test.matches(".", false)); + QVERIFY(test.matches(".", true)); + QVERIFY(!test.matches("cores core", true)); + QVERIFY(test.matches("core", true)); + QVERIFY(!test.matches("Core", true)); + QVERIFY(test.matches("Core", false)); + QVERIFY(!test.matches("a", false)); + QVERIFY(test.matches("core", false)); + //ends with .so + QVERIFY(test.matches("sdf3.so", true)); + QVERIFY(!test.matches("sdf3.to", true)); + QVERIFY(test.matches("*.so", true)); + QVERIFY(test.matches("sdf4.So", false)); + QVERIFY(!test.matches("sdf4.So", true)); + //starts with _$ddsf + QVERIFY(test.matches("_$ddsf", true)); + //Should only match exact strings not partial ones + QVERIFY(!test.matches("sdf4.so ", true)); + QVERIFY(!test.matches(" _$ddsf", true)); + + testString = "*.*"; + test = CvsIgnoreList(); + test.addEntriesFromString("*.*"); + + QVERIFY(test.matches("k.K", false)); + QVERIFY(test.matches("*.K", false)); + QVERIFY(test.matches("*.*", false)); + QVERIFY(!test.matches("*+*", false)); + QVERIFY(!test.matches("asd", false)); + //The fallowing are matched by the above + QVERIFY(test.matches("a k.k", false)); + QVERIFY(test.matches("k.k v", false)); + QVERIFY(test.matches(" k.k", false)); + QVERIFY(test.matches("k.k ", false)); + } + + void testDefaults() + { + CvsIgnoreList test; + CvsIgnoreList expected; + MocIgnoreFile file; + t_DirectoryList dirList; + + /* + Verify default init. For this to work we must: + 1. Unset CVSIGNORE + 2. Insure no patterns are read from a .cvsignore file. + MocCvsIgnore emulates a blank cvs file by default insuring the second condition. + */ + test = CvsIgnoreList(); + // + qunsetenv("CVSIGNORE"); + + expected.addEntriesFromString(defaultPatterns); + + test.init(file, &dirList); + QVERIFY(test.m_endPatterns == expected.m_endPatterns); + QVERIFY(test.m_exactPatterns == expected.m_exactPatterns); + QVERIFY(test.m_startPatterns == expected.m_startPatterns); + QVERIFY(test.m_generalPatterns == expected.m_generalPatterns); + } +}; + +QTEST_MAIN(CvsIgnoreListTest); + +#include "CvsIgnoreListTest.moc" diff --git a/src/autotests/DiffTest.cpp b/src/autotests/DiffTest.cpp new file mode 100644 index 0000000..dc59f3e --- /dev/null +++ b/src/autotests/DiffTest.cpp @@ -0,0 +1,100 @@ +/** + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2021 Michael Reeves + * SPDX-License-Identifier: GPL-2.0-or-later + * + */ + +#include "../diff.h" +#include "../SourceData.h" + +#include +#include + +#include +#include + +class DiffTest: public QObject +{ + Q_OBJECT; + private: + QTemporaryFile tempFile; + SourceData simData; + QSharedPointer defualtOptions = QSharedPointer::create(); + + private Q_SLOTS: + void initTestCase() + { + //Check assumed default values. + QVERIFY(simData.isEmpty()); + QVERIFY(simData.isValid()); + QVERIFY(!simData.hasData()); + QVERIFY(simData.isText()); + QVERIFY(simData.getBuf() == nullptr); + QVERIFY(!simData.isFromBuffer()); + QVERIFY(!simData.isIncompleteConversion()); + QVERIFY(simData.getErrors().isEmpty()); + //Setup default options for. + simData.setOptions(defualtOptions); + } + void testWhiteLineComment() + { + tempFile.open(); + tempFile.write(u8"//\n //\n \t\n D// \t\n"); + tempFile.close(); + + auto file = FileAccess(tempFile.fileName()); + QVERIFY(file.exists()); + QVERIFY(file.isFile()); + QVERIFY(file.isReadable()); + + FileAccess faRec = FileAccess(tempFile.fileName()); + QVERIFY(faRec.isLocal()); + QVERIFY(faRec.exists()); + QVERIFY(faRec.isFile()); + QVERIFY(faRec.size() > 0); + + simData.setFilename(tempFile.fileName()); + QVERIFY(!simData.isFromBuffer()); + QVERIFY(!simData.isEmpty()); + QVERIFY(!simData.hasData()); //setFileName should not load data. + + simData.readAndPreprocess(QTextCodec::codecForName("UTF-8"), true); + QVERIFY(simData.getErrors().isEmpty()); + QVERIFY(!simData.isFromBuffer()); + QVERIFY(!simData.isEmpty()); + QVERIFY(simData.hasData()); + QVERIFY(simData.getEncoding() != nullptr); + QCOMPARE(simData.getSizeLines(), 5); + QCOMPARE(simData.getSizeBytes(), file.size()); + + const QVector* lineData = simData.getLineDataForDisplay(); + QVERIFY(lineData != nullptr); + QCOMPARE(lineData->size() - 1, 5); + QVERIFY(!(*lineData)[0].whiteLine()); + QVERIFY((*lineData)[0].isSkipable()); + QVERIFY((*lineData)[0].isPureComment()); + + QVERIFY(!(*lineData)[1].whiteLine()); + QVERIFY(!(*lineData)[1].isPureComment()); + QVERIFY((*lineData)[1].isSkipable()); + + QVERIFY((*lineData)[2].whiteLine()); + QVERIFY(!(*lineData)[2].isPureComment()); + QVERIFY((*lineData)[2].isSkipable()); + + QVERIFY(!(*lineData)[3].whiteLine()); + QVERIFY(!(*lineData)[3].isPureComment()); + QVERIFY(!(*lineData)[3].isSkipable()); + + QVERIFY((*lineData)[4].whiteLine()); + QVERIFY(!(*lineData)[4].isPureComment()); + QVERIFY(!(*lineData)[4].isSkipable()); + } + +}; + +QTEST_MAIN(DiffTest); + +#include "DiffTest.moc" diff --git a/src/autotests/FileAccessJobHandlerMoc.h b/src/autotests/FileAccessJobHandlerMoc.h new file mode 100644 index 0000000..f3f617a --- /dev/null +++ b/src/autotests/FileAccessJobHandlerMoc.h @@ -0,0 +1,36 @@ +/** + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2021 Michael Reeves + * SPDX-License-Identifier: GPL-2.0-or-later + * + */ + +#ifndef FILEACCESSJOBHANDLERMOC_H +#define FILEACCESSJOBHANDLERMOC_H + +#include "../FileAccessJobHandler.h" + +class FileAccessJobHandlerMoc: public FileAccessJobHandler +{ + public: + using FileAccessJobHandler::FileAccessJobHandler; + + FileAccessJobHandler* copy(FileAccess* inFileAccess) override { return new FileAccessJobHandlerMoc(inFileAccess);} + bool get(void* /*pDestBuffer*/, long /*maxLength*/) override {return true;}; + bool put(const void* /*pSrcBuffer*/, long /*maxLength*/, bool /*bOverwrite*/, bool /*bResume*/ = false, int /*permissions*/ = -1) override {return true;}; + bool stat(short /*detailLevel*/ = 2, bool /*bWantToWrite*/ = false) override {return true;}; + bool copyFile(const QString& /*dest*/) override {return true;}; + bool rename(const FileAccess& /*dest*/) override {return true;}; + bool listDir(t_DirectoryList* /*pDirList*/, bool /*bRecursive*/, bool /*bFindHidden*/, + const QString& /*filePattern*/, const QString& /*fileAntiPattern*/, + const QString& /*dirAntiPattern*/, bool /*bFollowDirLinks*/, bool /*bUseCvsIgnore*/) override {return true;}; + bool removeFile(const QUrl& /*fileName*/) override {return true;}; + bool symLink(const QUrl& /*linkTarget*/, const QUrl& /*linkLocation*/) override { return true;}; + + protected: + bool mkDirImp(const QString& /*dirName*/) override {return true;}; + bool rmDirImp(const QString& /*dirName*/) override {return true;}; +}; + +#endif /* FILEACCESSJOBHANDLERMOC_H */ diff --git a/src/autotests/FileAccessTest.cpp b/src/autotests/FileAccessTest.cpp new file mode 100644 index 0000000..06f61c3 --- /dev/null +++ b/src/autotests/FileAccessTest.cpp @@ -0,0 +1,173 @@ +/** + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2020 Michael Reeves + * SPDX-License-Identifier: GPL-2.0-or-later + * + */ + +#include +#include + +#include "../fileaccess.h" +#include "FileAccessJobHandlerMoc.h" + +class FileAccessMoc: public FileAccess +{ + public: + void setEngine(FileAccessJobHandler* handler) + { + if(handler != mJobHandler.data()) mJobHandler.reset(handler); + } + + void setParent(FileAccessMoc* parent) + { + m_pParent = (FileAccess*)parent; + m_baseDir = parent->m_baseDir; + } + void setFileName(const QString& name) { m_name = name; } + void setUrl(const QUrl& url) { m_url = url; } + + void loadData() override {} +}; + +class FileAccessTest: public QObject +{ + Q_OBJECT; + + private Q_SLOTS: + + void testFileRelPath() + { + FileAccessMoc mocFile, mocRoot, mocFile2; + + mocRoot.setEngine(new FileAccessJobHandlerMoc(&mocRoot)); + mocFile.setEngine(new FileAccessJobHandlerMoc(&mocFile)); + mocFile2.setEngine(new FileAccessJobHandlerMoc(&mocFile2)); + + //Check remote url. + mocRoot.setFile(QLatin1String("fish://i@0.0.0.0/root")); + QCOMPARE(mocRoot.fileRelPath(), QLatin1String("")); + + mocFile.setFile(QLatin1String("fish://i@0.0.0.0/root/x")); + mocFile.setParent(&mocRoot); + QCOMPARE(mocFile.fileRelPath(), QStringLiteral("x")); + + mocFile2.setFile("fish://i@0.0.0.0/root/x/y"); + mocFile2.setParent(&mocFile); + QCOMPARE(mocFile2.fileRelPath(), QStringLiteral("x/y")); + } + + void testUrl() + { +#ifndef Q_OS_WIN + const QString expected = "/dds/root"; + const QString expected2 = "file:///dds/root"; +#else + const QString expected = "C:/dds/root"; + const QString expected2 = "file:///C:/dds/root"; +#endif // !Q_OS_WIN + FileAccessMoc mocFile; + + mocFile.setEngine(new FileAccessJobHandlerMoc(&mocFile)); + + //Sanity check FileAccess::url by directly setting the url. + mocFile.setFileName(QLatin1String("root")); + mocFile.setUrl(QUrl("fish://i@0.0.0.0/root")); + QCOMPARE(mocFile.url(), QUrl("fish://i@0.0.0.0/root")); + + //Now check that setFile does what its supposed to + mocFile.setFile(QUrl("fish://i@0.0.0.0/root")); + QCOMPARE(mocFile.url(), QUrl("fish://i@0.0.0.0/root")); + + mocFile.setFile(QUrl(expected)); + QCOMPARE(mocFile.url(), QUrl(expected)); + //Try the QString version + mocFile.setFile("fish://i@0.0.0.0/root"); + QCOMPARE(mocFile.url(), QUrl("fish://i@0.0.0.0/root")); + + mocFile.setFile(expected); + QCOMPARE(mocFile.url(), QUrl(expected2)); + } + + void testIsLocal() + { + FileAccessMoc mocFile; + + mocFile.setEngine(new FileAccessJobHandlerMoc(&mocFile)); + + QVERIFY(!FileAccess::isLocal(QUrl("fish://i@0.0.0.0/root"))); + QVERIFY(FileAccess::isLocal(QUrl("file:///dds/root"))); + QVERIFY(FileAccess::isLocal(QUrl("/dds/root"))); + //Check remote url. + mocFile.setFile("fish://i@0.0.0.0/root"); + QVERIFY(!mocFile.isLocal()); + + //Check local file. + mocFile.setFile(QStringLiteral("file:///dds/root")); + QVERIFY(mocFile.isLocal()); + //Path only + mocFile.setFile(QStringLiteral("/dds/root")); + QVERIFY(mocFile.isLocal()); + } + + void testAbsolutePath() + { +#ifndef Q_OS_WIN + const QString expected = "/dds/root"; +#else + const QString expected = "c:/dds/root"; +#endif // !Q_OS_WIN + FileAccessMoc mocFile; + mocFile.setEngine(new FileAccessJobHandlerMoc(&mocFile)); + + const QUrl url = QUrl("fish://i@0.0.0.0/root"); + + QCOMPARE(FileAccess::prettyAbsPath(url), url.toDisplayString()); + QCOMPARE(FileAccess::prettyAbsPath(QUrl("file:///dds/root")).toLower(), expected); + QCOMPARE(FileAccess::prettyAbsPath(QUrl("/dds/root")).toLower(), expected); + QCOMPARE(FileAccess::prettyAbsPath(QUrl("c:/dds/root")).toLower(), "c:/dds/root"); + //work around for bad path in windows drop event urls. (Qt 5.15.2 affected) +#ifndef Q_OS_WIN + QCOMPARE(FileAccess::prettyAbsPath(QUrl("file:///c:/dds/root")).toLower(), "/c:/dds/root"); +#else + QCOMPARE(FileAccess::prettyAbsPath(QUrl("file:///c:/dds/root")).toLower(), "c:/dds/root"); +#endif // !Q_OS_WIN + + mocFile.setFile(url); + QCOMPARE(mocFile.prettyAbsPath(url), url.toDisplayString()); + + mocFile.setFile(QUrl("file:///dds/root")); + QCOMPARE(mocFile.prettyAbsPath().toLower(), expected); + + mocFile.setFile(QUrl("/dds/root")); + QCOMPARE(mocFile.prettyAbsPath().toLower(), expected); + + mocFile.setFile(QStringLiteral("file:///dds/root")); + QCOMPARE(mocFile.prettyAbsPath().toLower(), expected); + + mocFile.setFile(QStringLiteral("/dds/root")); + QCOMPARE(mocFile.prettyAbsPath().toLower(), expected); + } + + void liveTest() + { + QTemporaryFile testFile; + QVERIFY(testFile.open()); + FileAccess fileData(testFile.fileName()); + + QVERIFY(fileData.isValid()); + QVERIFY(fileData.isLocal()); + QVERIFY(fileData.isNormal()); + QVERIFY(fileData.isReadable()); + QVERIFY(fileData.isWritable()); + //sanity check + QVERIFY(!fileData.isSymLink()); + QVERIFY(!fileData.isDir()); + QVERIFY(fileData.isFile()); + } +}; + +QTEST_APPLESS_MAIN(FileAccessTest); + +#include "FileAccessTest.moc" diff --git a/src/autotests/MocIgnoreFile.h b/src/autotests/MocIgnoreFile.h new file mode 100644 index 0000000..0065bc4 --- /dev/null +++ b/src/autotests/MocIgnoreFile.h @@ -0,0 +1,67 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2018-2021 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef MOCIGNOREFILE_H +#define MOCIGNOREFILE_H + +#include "FileAccessJobHandlerMoc.h" +#include "../fileaccess.h" + +#include + +#include + +//typedef class MocIgnoreFile FileAccess; +//typedef std::list t_DirectoryList; + +class MocIgnoreFile: public FileAccess +{ + public: + MocIgnoreFile() + { + //Q_ASSERT(false); + mJobHandler.reset(new FileAccessJobHandlerMoc(this)); + /* + FileAccess set file calls our overriden loadData to actually get file meta data. + This way we can avoid making any actual FileSystem checks on the simulated file. + */ + setFile(QUrl("/test/ui/.cvsignore")); + } + void setParent(MocIgnoreFile* parent) { m_pParent = (FileAccess*)parent;} + void setFileName(const QString& name) { m_name = name; } + + void loadData() override + { + m_bValidData = true; + m_bExists = true; + m_bReadable = true; + + m_name = ".cvsignore"; + setUrl(QUrl("/test/ui/.cvsignore")); + } + void addPath(const QString& txt, bool /*reinit*/=true) override { Q_UNUSED(txt); } + bool createLocalCopy() override { return true; } + + Q_REQUIRED_RESULT qint64 size() const override { return 0; }; + + Q_REQUIRED_RESULT bool isFile() const override {return true;}; + Q_REQUIRED_RESULT bool isDir() const override {return false;}; + Q_REQUIRED_RESULT bool isSymLink() const override {return false;}; + Q_REQUIRED_RESULT bool exists() const override {return m_bExists; }; + Q_REQUIRED_RESULT bool isReadable() const override {return m_bReadable;}; + Q_REQUIRED_RESULT bool isWritable() const override {return m_bWritable;}; + Q_REQUIRED_RESULT bool isExecutable() const override {return m_bExecutable;}; + Q_REQUIRED_RESULT bool isHidden() const override { return m_bHidden; }; + + bool readFile(void* /*pDestBuffer*/, qint64 /*maxLength*/) override { return true;}; + bool writeFile(const void* /*pSrcBuffer*/, qint64 /*length*/) override { return true; }; + + private: + QString mPath = "/test/ui/.cvsignore"; +}; + +#endif // !FILEACCESS_H diff --git a/src/autotests/combinertest.cpp b/src/autotests/combinertest.cpp new file mode 100644 index 0000000..73d6120 --- /dev/null +++ b/src/autotests/combinertest.cpp @@ -0,0 +1,132 @@ +/* + KDiff3 - Text Diff And Merge Tool + + SPDX-FileCopyrightText: 2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include +#include + +#include "../combiners.h" + +class CombinertestTest: public QObject +{ + Q_OBJECT; + + private: + QString nonEmpty2(){ return "test 2";} + + QString nonEmpty1(){ return "test 1";} + QString emptyString(){ return "";} + bool yes() { return true; } + bool no() { return false;} + + private Q_SLOTS: + void testOrCombiner() + { + boost::signals2::signal test1; + std::list connections; + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + + QVERIFY(test1()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + + QVERIFY(!test1()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + + QVERIFY(test1()); + connections.clear(); + } + + void testAndCombiner() + { + boost::signals2::signal test1; + std::list connections; + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + + QVERIFY(!test1()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::no, this))); + + QVERIFY(!test1()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::yes, this))); + + QVERIFY(test1()); + connections.clear(); + } + + void testFirstNonEmpty() + { + boost::signals2::signal> test1; + std::list connections; + + //Just in case someone moneys with the test functions + QVERIFY(emptyString().isEmpty()); + QVERIFY(!nonEmpty1().isEmpty()); + QVERIFY(!nonEmpty1().isEmpty()); + + connections.clear(); + QVERIFY(test1().isEmpty()); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::emptyString, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty1, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty2, this))); + + QCOMPARE(test1(), nonEmpty1()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty1, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::emptyString, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty2, this))); + + QCOMPARE(test1(), nonEmpty1()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty1, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::emptyString, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty2, this))); + + QCOMPARE(test1(), nonEmpty1()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::emptyString, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty2, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::nonEmpty1, this))); + + QCOMPARE(test1(), nonEmpty2()); + connections.clear(); + + connections.push_back(test1.connect(boost::bind(&CombinertestTest::emptyString, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::emptyString, this))); + connections.push_back(test1.connect(boost::bind(&CombinertestTest::emptyString, this))); + + QCOMPARE(test1(), emptyString()); + connections.clear(); + } +}; + +QTEST_MAIN(CombinertestTest); + +#include "combinertest.moc" diff --git a/src/autotests/commentparser.cpp b/src/autotests/commentparser.cpp new file mode 100644 index 0000000..bb8ebbe --- /dev/null +++ b/src/autotests/commentparser.cpp @@ -0,0 +1,406 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2019-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include + +#include "../CommentParser.h" + +class CommentParserTest : public QObject +{ + Q_OBJECT + private Q_SLOTS: + void init() + { + DefaultCommentParser parser; + + //Sanity check defaults. + QVERIFY(!parser.isSkipable()); + QVERIFY(!parser.isEscaped()); + QVERIFY(!parser.inString()); + QVERIFY(!parser.inComment()); + QVERIFY(!parser.isPureComment()); + } + + void singleLineComment() + { + DefaultCommentParser test; + + test.processLine("//ddj ?*8"); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + //ignore trailing+leading whitespace + test = DefaultCommentParser(); + test.processLine("\t \t // comment "); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine("//comment with quotes embedded \"\""); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine("anythis//endof line comment"); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine("anythis//ignore embedded multiline sequence /*"); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + } + + void inComment() + { + DefaultCommentParser test; + + test.mCommentType = DefaultCommentParser::multiLine; + QVERIFY(test.inComment()); + + test.mCommentType = DefaultCommentParser::singleLine; + QVERIFY(test.inComment()); + + test.mCommentType = DefaultCommentParser::none; + QVERIFY(!test.inComment()); + } + + void multiLineComment() + { + DefaultCommentParser test; + + //mutiline syntax on one line + test.processLine("/* kjd*/"); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + QVERIFY(!test.inComment()); + + //mid line comment start. + test = DefaultCommentParser(); + test.processLine("fskk /* kjd */"); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + + //mid line comment start. multiple lines + test = DefaultCommentParser(); + test.processLine("fskk /* kjd "); + QVERIFY(test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test.processLine(" comment line "); + QVERIFY(test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + test.processLine(" comment */ not comment "); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + //mid line comment start. multiple lines + test = DefaultCommentParser(); + test.processLine("fskk /* kjd "); + QVERIFY(test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test.processLine(" comment line "); + QVERIFY(test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + test.processLine(" comment * line / "); + QVERIFY(test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + //embedded single line character sequence should not end comment + test.processLine(" comment line //"); + QVERIFY(test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + test.processLine(" comment */"); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + //Escape squeances not relavate to comments + test = DefaultCommentParser(); + test.processLine("/* comment \\*/"); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine(" int i = 8 / 8 * 3;/* comment*/"); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + //invalid in C++ should not be flagged as pure comment + test.processLine("/* comment */ */"); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + //leading whitespace + test = DefaultCommentParser(); + test.processLine("\t \t /* comment */"); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(!test.isPureComment()); + + //trailing whitespace + test = DefaultCommentParser(); + test.processLine("\t \t /* comment */ "); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine("/* comment */ "); + QVERIFY(!test.inComment()); + QVERIFY(test.isSkipable()); + QVERIFY(!test.isPureComment()); + } + + void stringTest() + { + DefaultCommentParser test; + + test.processLine("\"quoted string // \""); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine("\"quoted string /* \""); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine("\"\""); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + + test = DefaultCommentParser(); + test.processChar("\"", '"'); + QVERIFY(!test.isEscaped()); + QVERIFY(test.inString()); + + test.processChar("\"'", '\''); + QVERIFY(test.inString()); + test.processChar("\"'\"", '"'); + QVERIFY(!test.inString()); + + //test only escape sequence we care about + test = DefaultCommentParser(); + test.processChar("\"", '"'); + + test.processChar("\"", '\\'); + QVERIFY(test.isEscaped()); + QVERIFY(test.inString()); + + test.processChar("\"\\\"", '"'); + QVERIFY(!test.isEscaped()); + QVERIFY(test.inString()); + + test.processChar("\"\\\"\"", '"'); + QVERIFY(!test.isEscaped()); + QVERIFY(!test.inString()); + } + + void quotedCharacter() + { + DefaultCommentParser test; + + test.processLine("'\"'"); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test.processLine("'a'"); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test.processLine("'\\\''"); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test.processLine("'*'"); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test.processLine("'/'"); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + } + + void nonComment() + { + DefaultCommentParser test; + + test.processLine(" int i = 8 / 8 * 3;"); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine(" "); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine(""); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine(" / "); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + test = DefaultCommentParser(); + test.processLine(" * "); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + + //invalid in C++ should not be flagged as non-comment + test.processLine(" */"); + QVERIFY(!test.inString()); + QVERIFY(!test.inComment()); + QVERIFY(!test.isSkipable()); + QVERIFY(!test.isPureComment()); + } + + void removeComment() + { + DefaultCommentParser test; + QString line=QLatin1String(" int i = 8 / 8 * 3;"), correct=QLatin1String(" int i = 8 / 8 * 3;"); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + test = DefaultCommentParser(); + correct = line = QLatin1String(" //int i = 8 / 8 * 3;"); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + + test = DefaultCommentParser(); + correct = line = QLatin1String("// int i = 8 / 8 * 3;"); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + test = DefaultCommentParser(); + line = QLatin1String(" int i = 8 / 8 * 3;// comment"); + correct = QLatin1String(" int i = 8 / 8 * 3; "); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + test = DefaultCommentParser(); + line = QLatin1String(" int i = 8 / 8 * 3;/* comment"); + correct = QLatin1String(" int i = 8 / 8 * 3; "); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + correct = line = QLatin1String(" int i = 8 / 8 * 3;/* mot a comment"); + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + //end comment mid-line + line = QLatin1String("d */ why"); + correct = QLatin1String(" why"); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + test = DefaultCommentParser(); + line = QLatin1String(" int i = 8 / 8 * 3;/* comment*/"); + correct = QLatin1String(" int i = 8 / 8 * 3; "); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + test = DefaultCommentParser(); + correct = line = QLatin1String(" /*int i = 8 / 8 * 3;/* comment*/"); + + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + //line with multiple comments weird but legal c/c++ + test = DefaultCommentParser(); + line = QLatin1String(" int /*why?*/ i = 8 / 8 * 3;/* comment*/"); + correct = QLatin1String(" int i = 8 / 8 * 3; "); + test.processLine(line); + test.removeComment(line); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + + //invalid in C++ should be flagged as non-comment + test = DefaultCommentParser(); + line = correct = " */"; + test.processLine(" */"); + QCOMPARE(line, correct); + QCOMPARE(line.length(), correct.length()); + } +}; + +QTEST_MAIN(CommentParserTest); + +#include "commentparser.moc" diff --git a/src/autotests/connectiontest.cpp b/src/autotests/connectiontest.cpp new file mode 100644 index 0000000..b41edb7 --- /dev/null +++ b/src/autotests/connectiontest.cpp @@ -0,0 +1,43 @@ +/* + KDiff3 - Text Diff And Merge Tool + + SPDX-FileCopyrightText: 2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "../defmac.h" + +#include +#include +#include +#include + +class SigTest: public QObject +{ + Q_OBJECT + public: + bool fired = false; + Q_SIGNALS: + void signal(); + + public Q_SLOTS: + void slot() { fired=true;}; +}; + +class ConnectionTest: public QObject +{ + Q_OBJECT; + private Q_SLOTS: + void testConnect() + { + SigTest s; + + chk_connect(&s, &SigTest::signal, &s, &SigTest::slot); + Q_EMIT s.signal(); + QVERIFY(s.fired); + } +}; + +QTEST_MAIN(ConnectionTest); + +#include "connectiontest.moc" diff --git a/src/combiners.h b/src/combiners.h new file mode 100644 index 0000000..7bf8a3d --- /dev/null +++ b/src/combiners.h @@ -0,0 +1,87 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef COMBINERS_H +#define COMBINERS_H + +#include + +#include +#include + +struct or +{ + typedef bool result_type; + template bool operator()(InputIterator first, InputIterator last) const + { + // If there are no slots to call, just return true + if(first == last) return true; + + bool ret = *first++; + //return true if any slot returns true + while(first != last) + { + if(!ret) + ret = *first; + ++first; + } + + return ret; + } +}; + +struct and +{ + typedef bool result_type; + template bool operator()(InputIterator first, InputIterator last) const + { + // If there are no slots to call, just return true + if(first == last) return true; + + bool ret = *first++; + //return first non-true as if && were used + while(ret && first != last) + { + ret = *first; + ++first; + } + + return ret; + } +}; + +template struct FirstNonEmpty +{ + //This just provides a better error message if an in appropriate parameter is passed. + static_assert(std::is_class::type>(), "First parameter must be a class."); + static_assert(std::is_same().isEmpty()), bool>(), + "First parameter must implement or inherit isEmpty()."); + + typedef T result_type; + template T operator()(InputIterator first, InputIterator last) const + { + // If there are no slots to call, just return empty container + if(first == last) return T(); + + T ret = *first++; + //return first non-true as if && were used + while(ret.isEmpty() && first != last) + { + ret = *first; + ++first; + } + + return ret; + } +}; + +#ifdef BOOST_NO_EXCEPTIONS +//Because boost doesn't define this +inline void boost::throw_exception(std::exception const& e) { Q_UNUSED(e); std::terminate();} +#endif + +#endif // !COMBINERS_H diff --git a/src/common.cpp b/src/common.cpp new file mode 100644 index 0000000..47e9421 --- /dev/null +++ b/src/common.cpp @@ -0,0 +1,312 @@ +/* + * KDiff3 - Text Diff And Merge Tool + + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "common.h" +#include +#include +#include +#include +#include +#include +#include + +ValueMap::ValueMap() = default; + +ValueMap::~ValueMap() = default; + +void ValueMap::save(QTextStream& ts) +{ + for(const auto &entry: m_map) + { + const QString key = entry.first; + const QString val = entry.second; + ts << key << "=" << val << "\n"; + } +} + +QString ValueMap::getAsString() +{ + QString result; + + for(const auto &entry: m_map) + { + const QString key = entry.first; + const QString val = entry.second; + result += key + '=' + val + '\n'; + } + return result; +} + +void ValueMap::load(QTextStream& ts) +{ + while(!ts.atEnd()) + { // until end of file... + QString s = ts.readLine(); // line of text excluding '\n' + int pos = s.indexOf('='); + if(pos > 0) // seems not to have a tag + { + QString key = s.left(pos); + QString val = s.mid(pos + 1); + m_map[key] = val; + } + } +} + +// safeStringJoin and safeStringSplit allow to convert a stringlist into a string and back +// safely, even if the individual strings in the list contain the separator character. +QString safeStringJoin(const QStringList& sl, char sepChar, char metaChar) +{ + // Join the strings in the list, using the separator ',' + // If a string contains the separator character, it will be replaced with "\,". + // Any occurrences of "\" (one backslash) will be replaced with "\\" (2 backslashes) + + Q_ASSERT(sepChar != metaChar); + + QString sep; + sep += sepChar; + QString meta; + meta += metaChar; + + QString safeString; + + QStringList::const_iterator i; + for(i = sl.begin(); i != sl.end(); ++i) + { + QString s = *i; + s.replace(meta, meta + meta); // "\" -> "\\" + s.replace(sep, meta + sep); // "," -> "\," + if(i == sl.begin()) + safeString = s; + else + safeString += sep + s; + } + return safeString; +} + +// Split a string that was joined with safeStringJoin +QStringList safeStringSplit(const QString& s, char sepChar, char metaChar) +{ + Q_ASSERT(sepChar != metaChar); + QStringList sl; + // Miniparser + int i = 0; + int len = s.length(); + QString b; + for(i = 0; i < len; ++i) + { + if(i + 1 < len && s[i] == metaChar && s[i + 1] == metaChar) + { + b += metaChar; + ++i; + } + else if(i + 1 < len && s[i] == metaChar && s[i + 1] == sepChar) + { + b += sepChar; + ++i; + } + else if(s[i] == sepChar) // real separator + { + sl.push_back(b); + b = ""; + } + else + { + b += s[i]; + } + } + if(!b.isEmpty()) + sl.push_back(b); + + return sl; +} + +void ValueMap::writeEntry(const QString& k, const QFont& v) +{ + m_map[k] = v.family() + QLatin1String(",") + QString::number(v.pointSize()) + QLatin1String(",") + (v.bold() ? QLatin1String("bold") : QLatin1String("normal")); +} + +void ValueMap::writeEntry(const QString& k, const QColor& v) +{ + m_map[k].setNum(v.red()) + QLatin1String(",") + QString().setNum(v.green()) + QLatin1String(",") + QString().setNum(v.blue()); +} + +void ValueMap::writeEntry(const QString& k, const QSize& v) +{ + m_map[k].setNum(v.width()) + QLatin1String(",") + QString().setNum(v.height()); +} + +void ValueMap::writeEntry(const QString& k, const QPoint& v) +{ + m_map[k].setNum(v.x()) + QLatin1String(",") + QString().setNum(v.y()); +} + +void ValueMap::writeEntry(const QString& k, int v) +{ + m_map[k].setNum(v); +} + +void ValueMap::writeEntry(const QString& k, bool v) +{ + m_map[k].setNum(v); +} + +void ValueMap::writeEntry(const QString& k, const QString& v) +{ + m_map[k] = v; +} + +void ValueMap::writeEntry(const QString& k, const char* v) +{ + m_map[k] = QLatin1String(v); +} + +void ValueMap::writeEntry(const QString& k, const QStringList& v) +{ + m_map[k] = safeStringJoin(v); +} + +QFont ValueMap::readFontEntry(const QString& k, const QFont* defaultVal) +{ + QFont f = *defaultVal; + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) + { + f.setFamily(i->second.split(',')[0]); + f.setPointSize(i->second.split(',')[1].toInt()); + f.setBold(i->second.split(',')[2] == "bold"); + } + return f; +} + +QColor ValueMap::readColorEntry(const QString& k, const QColor* defaultVal) +{ + QColor c = *defaultVal; + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) + { + QString s = i->second; + c = QColor(s.split(',')[0].toInt(), s.split(',')[1].toInt(), s.split(',')[2].toInt()); + } + + return c; +} + +QSize ValueMap::readSizeEntry(const QString& k, const QSize* defaultVal) +{ + QSize size = defaultVal ? *defaultVal : QSize(600, 400); + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) + { + + QString s = i->second; + size = QSize(s.split(',')[0].toInt(), s.split(',')[1].toInt()); + } + + return size; +} + +QPoint ValueMap::readPointEntry(const QString& k, const QPoint* defaultVal) +{ + QPoint point = defaultVal ? *defaultVal : QPoint(0, 0); + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) + { + QString s = i->second; + point = QPoint(s.split(',')[0].toInt(), s.split(',')[1].toInt()); + } + + return point; +} + +bool ValueMap::readBoolEntry(const QString& k, bool bDefault) +{ + bool b = bDefault; + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) + { + QString s = i->second; + b = (s.split(',')[0].toInt() == 1); + } + + return b; +} + +int ValueMap::readNumEntry(const QString& k, int iDefault) +{ + int ival = iDefault; + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) + { + QString s = i->second; + ival = s.split(',')[0].toInt(); + } + + return ival; +} + +QString ValueMap::readStringEntry(const QString& k, const QString& sDefault) +{ + QString sval = sDefault; + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) + { + sval = i->second; + } + + return sval; +} + +QStringList ValueMap::readListEntry(const QString& k, const QStringList& defaultVal) +{ + QStringList strList; + + std::map::iterator i = m_map.find(k); + if(i != m_map.end()) { + strList = safeStringSplit(i->second); + return strList; + } + else + return defaultVal; +} + +QString ValueMap::readEntry(const QString& s, const QString& defaultVal) +{ + return readStringEntry(s, defaultVal); +} +QString ValueMap::readEntry(const QString& s, const char* defaultVal) +{ + return readStringEntry(s, QString::fromLatin1(defaultVal)); +} +QFont ValueMap::readEntry(const QString& s, const QFont& defaultVal) +{ + return readFontEntry(s, &defaultVal); +} +QColor ValueMap::readEntry(const QString& s, const QColor defaultVal) +{ + return readColorEntry(s, &defaultVal); +} +QSize ValueMap::readEntry(const QString& s, const QSize defaultVal) +{ + return readSizeEntry(s, &defaultVal); +} +QPoint ValueMap::readEntry(const QString& s, const QPoint defaultVal) +{ + return readPointEntry(s, &defaultVal); +} +bool ValueMap::readEntry(const QString& s, bool bDefault) +{ + return readBoolEntry(s, bDefault); +} +int ValueMap::readEntry(const QString& s, int iDefault) +{ + return readNumEntry(s, iDefault); +} +QStringList ValueMap::readEntry(const QString& s, const QStringList& defaultVal) +{ + return readListEntry(s, defaultVal); +} diff --git a/src/common.h b/src/common.h new file mode 100644 index 0000000..ac95683 --- /dev/null +++ b/src/common.h @@ -0,0 +1,94 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef COMMON_H +#define COMMON_H + +#include +#include +#include +#include + +template +T min3( T d1, T d2, T d3 ) +{ + return std::min( std::min( d1, d2 ), d3 ); +} + +template +T max3( T d1, T d2, T d3 ) +{ + return std::max( std::max( d1, d2 ), d3 ); +} + +inline int getAtomic(QAtomicInt& ai) +{ + return ai.load(); +} + +inline qint64 getAtomic(QAtomicInteger& ai) +{ + return ai.load(); +} + +class QFont; +class QColor; +class QSize; +class QPoint; +class QStringList; +class QTextStream; + +class ValueMap +{ + private: + std::map m_map; + + public: + ValueMap(); + virtual ~ValueMap(); + + void save(QTextStream& ts); + void load(QTextStream& ts); + QString getAsString(); + // void load( const QString& s ); + + virtual void writeEntry(const QString&, const QFont&); + virtual void writeEntry(const QString&, const QColor&); + virtual void writeEntry(const QString&, const QSize&); + virtual void writeEntry(const QString&, const QPoint&); + virtual void writeEntry(const QString&, int); + virtual void writeEntry(const QString&, bool); + virtual void writeEntry(const QString&, const QStringList&); + virtual void writeEntry(const QString&, const QString&); + virtual void writeEntry(const QString&, const char*); + + QString readEntry(const QString& s, const QString& defaultVal); + QString readEntry(const QString& s, const char* defaultVal); + QFont readEntry(const QString& s, const QFont& defaultVal); + QColor readEntry(const QString& s, const QColor defaultVal); + QSize readEntry(const QString& s, const QSize defaultVal); + QPoint readEntry(const QString& s, const QPoint defaultVal); + bool readEntry(const QString& s, bool bDefault); + int readEntry(const QString& s, int iDefault); + QStringList readEntry(const QString& s, const QStringList& defaultVal); + + private: + virtual QFont readFontEntry(const QString&, const QFont* defaultVal); + virtual QColor readColorEntry(const QString&, const QColor* defaultVal); + virtual QSize readSizeEntry(const QString&, const QSize* defaultVal); + virtual QPoint readPointEntry(const QString&, const QPoint* defaultVal); + virtual bool readBoolEntry(const QString&, bool bDefault); + virtual int readNumEntry(const QString&, int iDefault); + virtual QStringList readListEntry(const QString&, const QStringList& defaultVal); + virtual QString readStringEntry(const QString&, const QString&); +}; + +QStringList safeStringSplit(const QString& s, char sepChar=';', char metaChar='\\' ); +QString safeStringJoin(const QStringList& sl, char sepChar=';', char metaChar='\\' ); + +#endif diff --git a/src/defmac.h b/src/defmac.h new file mode 100644 index 0000000..0e824a2 --- /dev/null +++ b/src/defmac.h @@ -0,0 +1,79 @@ +/* clang-format off */ +/***************************************************************************** + + SPDX-FileCopyrightText: Copyright © 2010 Pavel Karelin (hkarel), + SPDX-License-Identifier: MIT + --- + + This header is defined macros of general purpose. + +*****************************************************************************/ + + +#ifndef DEFMAC_H +#define DEFMAC_H + +#pragma once + +#define DISABLE_DEFAULT_CONSTRUCT( ClassName ) \ + ClassName () = delete; \ + ClassName ( ClassName && ) = delete; \ + ClassName ( const ClassName & ) = delete; + +#define DISABLE_DEFAULT_COPY( ClassName ) \ + ClassName ( ClassName && ) = delete; \ + ClassName ( const ClassName & ) = delete; \ + ClassName & operator = ( ClassName && ) = delete; \ + ClassName & operator = ( const ClassName & ) = delete; + +#define DISABLE_DEFAULT_FUNC( ClassName ) \ + ClassName () = delete; \ + ClassName ( ClassName && ) = delete; \ + ClassName ( const ClassName & ) = delete; \ + ClassName & operator = ( ClassName && ) = delete; \ + ClassName & operator = ( const ClassName & ) = delete; + +#ifndef NDEBUG +#define QCONNECT_ASSERT(COND_) assert(COND_) +#else +#define QCONNECT_ASSERT(COND_) COND_ +#endif + +/** + The chk_connect macro is used to check result returned by the function + QObject::connect() in debug mode, it looks like on assert() function. + However, in the release mode, unlike assert() function, test expression + is not removed. +*/ + +#define chk_connect(SOURCE_, SIGNAL_, DEST_, SLOT_) \ + QCONNECT_ASSERT(QObject::connect(SOURCE_, SIGNAL_, DEST_, SLOT_)); + +#define chk_connect_unique(SOURCE_, SIGNAL_, DEST_, SLOT_, CONNECT_TYPE_) \ + QCONNECT_ASSERT(QObject::connect(SOURCE_, SIGNAL_, DEST_, SLOT_, CONNECT_TYPE_ | Qt::UniqueConnection)); + + +#define chk_connect_custom(SOURCE_, SIGNAL_, DEST_, SLOT_, CONNECT_TYPE_) \ + QCONNECT_ASSERT(QObject::connect(SOURCE_, SIGNAL_, DEST_, SLOT_, CONNECT_TYPE_)); + +#define chk_connect_a(SOURCE_, SIGNAL_, DEST_, SLOT_) \ + QCONNECT_ASSERT(QObject::connect(SOURCE_, SIGNAL_, DEST_, SLOT_, \ + Qt::ConnectionType(Qt::AutoConnection | Qt::UniqueConnection))); + +#define chk_connect_d(SOURCE_, SIGNAL_, DEST_, SLOT_) \ + QCONNECT_ASSERT(QObject::connect(SOURCE_, SIGNAL_, DEST_, SLOT_, \ + Qt::ConnectionType(Qt::DirectConnection | Qt::UniqueConnection))); + +#define chk_connect_q(SOURCE_, SIGNAL_, DEST_, SLOT_) \ + QCONNECT_ASSERT(QObject::connect(SOURCE_, SIGNAL_, DEST_, SLOT_, \ + Qt::ConnectionType(Qt::QueuedConnection | Qt::UniqueConnection))); + +#define chk_connect_bq(SOURCE_, SIGNAL_, DEST_, SLOT_) \ + QCONNECT_ASSERT(QObject::connect(SOURCE_, SIGNAL_, DEST_, SLOT_, \ + Qt::ConnectionType(Qt::BlockingQueuedConnection | Qt::UniqueConnection))); + +#if defined(__MINGW32__) || defined(__MINGW64__) +#define MINGW +#endif + +#endif /* DEFMAC_H */ diff --git a/src/diff.cpp b/src/diff.cpp new file mode 100644 index 0000000..388a245 --- /dev/null +++ b/src/diff.cpp @@ -0,0 +1,1602 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "diff.h" + +#include "gnudiff_diff.h" +#include "merger.h" +#include "options.h" +#include "progress.h" + +#include +#include + +#include +#include + +#include +#include + +constexpr bool g_bIgnoreWhiteSpace = true; + +QSharedPointer Diff3Line::m_pDiffBufferInfo = nullptr; + +int LineData::width(int tabSize) const +{ + QString pLine = getLine(); + int w = 0; + int j = 0; + for(int i = 0; i < size(); ++i) + { + if(pLine[i] == '\t') + { + for(j %= tabSize; j < tabSize; ++j) + ++w; + j = 0; + } + else + { + ++w; + ++j; + } + } + return w; +} + +/* + Implement support for g_bIgnoreWhiteSpace +*/ +bool LineData::equal(const LineData& l1, const LineData& l2) +{ + if(l1.getLine() == nullptr || l2.getLine() == nullptr) return false; + + if(g_bIgnoreWhiteSpace) + { + // Ignore white space diff + const QString line1 = l1.getLine(), line2 = l2.getLine(); + QString::const_iterator p1 = line1.begin(); + QString::const_iterator p1End = line1.end(); + QString::const_iterator p2 = line2.begin(); + QString::const_iterator p2End = line2.end(); + + for(; p1 != p1End && p2 != p2End; p1++, p2++) + { + while(isspace(p1->unicode()) && p1 != p1End) ++p1; + while(isspace(p2->unicode()) && p2 != p2End) ++p2; + + if(*p1 != *p2) + return false; + } + + return (p1 == p1End && p2 == p2End); + } + else + { + const QString line1 = l1.getLine(), line2 = l2.getLine(); + return (l1.size() == l2.size() && QString::compare(line1, line2) == 0); + } +} + +// First step +void Diff3LineList::calcDiff3LineListUsingAB(const DiffList* pDiffListAB) +{ + // First make d3ll for AB (from pDiffListAB) + + DiffList::const_iterator i = pDiffListAB->begin(); + LineRef::LineType lineA = 0; + LineRef::LineType lineB = 0; + Diff d; + + qCInfo(kdiffMain) << "Enter: calcDiff3LineListUsingAB" ; + for(;;) + { + if(d.numberOfEquals() == 0 && d.diff1() == 0 && d.diff2() == 0) + { + if(i != pDiffListAB->end()) + { + d = *i; + ++i; + } + else + break; + } + + Diff3Line d3l; + if(d.numberOfEquals() > 0) + { + d3l.bAEqB = true; + d3l.setLineA(lineA); + d3l.setLineB(lineB); + d.adjustNumberOfEquals(-1); + ++lineA; + ++lineB; + } + else if(d.diff1() > 0 && d.diff2() > 0) + { + d3l.setLineA(lineA); + d3l.setLineB(lineB); + d.adjustDiff1(-1); + d.adjustDiff2(-1); + ++lineA; + ++lineB; + } + else if(d.diff1() > 0) + { + d3l.setLineA(lineA); + d.adjustDiff1(-1); + ++lineA; + } + else if(d.diff2() > 0) + { + d3l.setLineB(lineB); + d.adjustDiff2(-1); + ++lineB; + } + + Q_ASSERT(d.numberOfEquals() >= 0); + + qCDebug(kdiffCore) << "lineA = " << d3l.getLineA() << ", lineB = " << d3l.getLineB() ; + push_back(d3l); + } + qCInfo(kdiffMain) << "Leave: calcDiff3LineListUsingAB" ; +} + +// Second step +void Diff3LineList::calcDiff3LineListUsingAC(const DiffList* pDiffListAC) +{ + //////////////// + // Now insert data from C using pDiffListAC + + DiffList::const_iterator i = pDiffListAC->begin(); + Diff3LineList::iterator i3 = begin(); + LineRef::LineType lineA = 0; + LineRef::LineType lineC = 0; + Diff d; + + for(;;) + { + if(d.numberOfEquals() == 0 && d.diff1() == 0 && d.diff2() == 0) + { + if(i != pDiffListAC->end()) + { + d = *i; + ++i; + } + else + break; + } + + Diff3Line d3l; + if(d.numberOfEquals() > 0) + { + // Find the corresponding lineA + while(i3->getLineA() != lineA) + ++i3; + + i3->setLineC(lineC); + i3->bAEqC = true; + i3->bBEqC = i3->isEqualAB(); + + d.adjustNumberOfEquals(-1); + ++lineA; + ++lineC; + ++i3; + } + else if(d.diff1() > 0 && d.diff2() > 0) + { + d3l.setLineC(lineC); + insert(i3, d3l); + d.adjustDiff1(-1); + d.adjustDiff2(-1); + ++lineA; + ++lineC; + } + else if(d.diff1() > 0) + { + d.adjustDiff1(-1); + ++lineA; + } + else if(d.diff2() > 0) + { + d3l.setLineC(lineC); + insert(i3, d3l); + d.adjustDiff2(-1); + ++lineC; + } + } +} + +// Third step +void Diff3LineList::calcDiff3LineListUsingBC(const DiffList* pDiffListBC) +{ + //////////////// + // Now improve the position of data from C using pDiffListBC + // If a line from C equals a line from A then it is in the + // same Diff3Line already. + // If a line from C equals a line from B but not A, this + // information will be used here. + + DiffList::const_iterator i = pDiffListBC->begin(); + Diff3LineList::iterator i3b = begin(); + Diff3LineList::iterator i3c = begin(); + LineRef::LineType lineB = 0; + LineRef::LineType lineC = 0; + Diff d; + + for(;;) + { + if(d.numberOfEquals() == 0 && d.diff1() == 0 && d.diff2() == 0) + { + if(i != pDiffListBC->end()) + { + d = *i; + ++i; + } + else + break; + } + + Diff3Line d3l; + if(d.numberOfEquals() > 0) + { + // Find the corresponding lineB and lineC + while(i3b != end() && i3b->getLineB() != lineB) + ++i3b; + + while(i3c != end() && i3c->getLineC() != lineC) + ++i3c; + + Q_ASSERT(i3b != end()); + Q_ASSERT(i3c != end()); + + if(i3b == i3c) + { + Q_ASSERT(i3b->getLineC() == lineC); + i3b->bBEqC = true; + } + else + { + // Is it possible to move this line up? + // Test if no other B's are used between i3c and i3b + + // First test which is before: i3c or i3b ? + Diff3LineList::iterator i3c1 = i3c; + Diff3LineList::iterator i3b1 = i3b; + while(i3c1 != i3b && i3b1 != i3c) + { + Q_ASSERT(i3b1 != end() || i3c1 != end()); + if(i3c1 != end()) ++i3c1; + if(i3b1 != end()) ++i3b1; + } + + if(i3c1 == i3b && !i3b->isEqualAB()) // i3c before i3b + { + Diff3LineList::iterator i3 = i3c; + int nofDisturbingLines = 0; + while(i3 != i3b && i3 != end()) + { + if(i3->getLineB().isValid()) + ++nofDisturbingLines; + ++i3; + } + + if(nofDisturbingLines > 0) //&& nofDisturbingLines < d.nofEquals*d.nofEquals+4 ) + { + Diff3LineList::iterator i3_last_equal_A = end(); + + i3 = i3c; + while(i3 != i3b) + { + if(i3->isEqualAB()) + { + i3_last_equal_A = i3; + } + ++i3; + } + + /* If i3_last_equal_A isn't still set to d3ll.end(), then + * we've found a line in A that is equal to one in B + * somewhere between i3c and i3b + */ + bool before_or_on_equal_line_in_A = (i3_last_equal_A != end()); + + // Move the disturbing lines up, out of sight. + i3 = i3c; + while(i3 != i3b) + { + if(i3->getLineB().isValid() || + (before_or_on_equal_line_in_A && i3->getLineA().isValid())) + { + d3l.setLineB(i3->getLineB()); + i3->setLineB(LineRef::invalid); + + // Move A along if it matched B + if(before_or_on_equal_line_in_A) + { + d3l.setLineA(i3->getLineA()); + d3l.bAEqB = i3->isEqualAB(); + i3->setLineA(LineRef::invalid); + i3->bAEqC = false; + } + + i3->bAEqB = false; + i3->bBEqC = false; + insert(i3c, d3l); + } + + if(i3 == i3_last_equal_A) + { + before_or_on_equal_line_in_A = false; + } + + ++i3; + } + nofDisturbingLines = 0; + } + + if(nofDisturbingLines == 0) + { + // Yes, the line from B can be moved. + i3b->setLineB(LineRef::invalid); // This might leave an empty line: removed later. + i3b->bAEqB = false; + i3b->bBEqC = false; + i3c->setLineB(lineB); + i3c->bBEqC = true; + i3c->bAEqB = i3c->isEqualAC(); + } + } + else if(i3b1 == i3c && !i3c->isEqualAC()) + { + Diff3LineList::iterator i3 = i3b; + int nofDisturbingLines = 0; + while(i3 != i3c && i3 != end()) + { + if(i3->getLineC().isValid()) + ++nofDisturbingLines; + ++i3; + } + + if(nofDisturbingLines > 0) //&& nofDisturbingLines < d.nofEquals*d.nofEquals+4 ) + { + Diff3LineList::iterator i3_last_equal_A = end(); + + i3 = i3b; + while(i3 != i3c) + { + if(i3->isEqualAC()) + { + i3_last_equal_A = i3; + } + ++i3; + } + + /* If i3_last_equal_A isn't still set to d3ll.end(), then + * we've found a line in A that is equal to one in C + * somewhere between i3b and i3c + */ + bool before_or_on_equal_line_in_A = (i3_last_equal_A != end()); + + // Move the disturbing lines up. + i3 = i3b; + while(i3 != i3c) + { + if(i3->getLineC().isValid() || + (before_or_on_equal_line_in_A && i3->getLineA().isValid())) + { + d3l.setLineC(i3->getLineC()); + i3->setLineC(LineRef::invalid); + + // Move A along if it matched C + if(before_or_on_equal_line_in_A) + { + d3l.setLineA(i3->getLineA()); + d3l.bAEqC = i3->isEqualAC(); + i3->setLineA(LineRef::invalid); + i3->bAEqB = false; + } + + i3->bAEqC = false; + i3->bBEqC = false; + insert(i3b, d3l); + } + + if(i3 == i3_last_equal_A) + { + before_or_on_equal_line_in_A = false; + } + + ++i3; + } + nofDisturbingLines = 0; + } + + if(nofDisturbingLines == 0) + { + // Yes, the line from C can be moved. + i3c->setLineC(LineRef::invalid); // This might leave an empty line: removed later. + i3c->bAEqC = false; + i3c->bBEqC = false; + i3b->setLineC(lineC); + i3b->bBEqC = true; + i3b->bAEqC = i3b->isEqualAB(); + } + } + } + + d.adjustNumberOfEquals(-1); + ++lineB; + ++lineC; + ++i3b; + ++i3c; + } + else if(d.diff1() > 0) + { + Diff3LineList::iterator i3 = i3b; + while(i3->getLineB() != lineB) + ++i3; + if(i3 != i3b && !i3->isEqualAB()) + { + // Take B from this line and move it up as far as possible + d3l.setLineB(lineB); + insert(i3b, d3l); + i3->setLineB(LineRef::invalid); + } + else + { + i3b = i3; + } + d.adjustDiff1(-1); + ++lineB; + ++i3b; + + if(d.diff2() > 0) + { + d.adjustDiff2(-1); + ++lineC; + } + } + else if(d.diff2() > 0) + { + d.adjustDiff2(-1); + ++lineC; + } + } + /* + Diff3LineList::iterator it = d3ll.begin(); + int li=0; + for( ; it!=d3ll.end(); ++it, ++li ) + { + printf( "%4d %4d %4d %4d A%c=B A%c=C B%c=C\n", + li, it->getLineA(), it->getLineB(), it->getLineC(), + it->isEqualAB() ? '=' : '!', it->isEqualAC() ? '=' : '!', it->isEqualBC() ? '=' : '!' ); + } + printf("\n");*/ +} + +// Test if the move would pass a barrier. Return true if not. +bool ManualDiffHelpList::isValidMove(int line1, int line2, e_SrcSelector winIdx1, e_SrcSelector winIdx2) const +{ + if(line1 >= 0 && line2 >= 0) + { + ManualDiffHelpList::const_iterator i; + for(i = begin(); i != end(); ++i) + { + const ManualDiffHelpEntry& mdhe = *i; + + if(!mdhe.isValidMove(line1, line2, winIdx1, winIdx2)) return false; + } + } + return true; // no barrier passed. +} + +void ManualDiffHelpList::insertEntry(e_SrcSelector winIdx, LineRef firstLine, LineRef lastLine) +{ + // The manual diff help list must be sorted and compact. + // "Compact" means that upper items can't be empty if lower items contain data. + + // First insert the new item without regarding compactness. + // If the new item overlaps with previous items then the previous items will be removed. + + ManualDiffHelpEntry mdhe; + mdhe.firstLine(winIdx) = firstLine; + mdhe.lastLine(winIdx) = lastLine; + + ManualDiffHelpList::iterator i; + for(i = begin(); i != end(); ++i) + { + LineRef& l1 = i->firstLine(winIdx); + LineRef& l2 = i->lastLine(winIdx); + if(l1.isValid() && l2.isValid()) + { + if((firstLine <= l1 && lastLine >= l1) || (firstLine <= l2 && lastLine >= l2)) + { + // overlap + l1.invalidate(); + l2.invalidate(); + } + if(firstLine < l1 && lastLine < l1) + { + // insert before this position + insert(i, mdhe); + break; + } + } + } + if(i == end()) + { + insert(i, mdhe); + } + + // Now make the list compact + for(e_SrcSelector wIdx = e_SrcSelector::A; wIdx != e_SrcSelector::Invalid; wIdx = nextSelector(wIdx)) + { + ManualDiffHelpList::iterator iEmpty = begin(); + for(i = begin(); i != end(); ++i) + { + if(iEmpty->firstLine(wIdx).isValid()) + { + ++iEmpty; + continue; + } + if(i->firstLine(wIdx).isValid()) // Current item is not empty -> move it to the empty place + { + std::swap(iEmpty->firstLine(wIdx), i->firstLine(wIdx)); + std::swap(iEmpty->lastLine(wIdx), i->lastLine(wIdx)); + ++iEmpty; + } + } + } + remove(ManualDiffHelpEntry()); // Remove all completely empty items. +} + +bool ManualDiffHelpEntry::isValidMove(int line1, int line2, e_SrcSelector winIdx1, e_SrcSelector winIdx2) const +{ + // Barrier + int l1 = winIdx1 == e_SrcSelector::A ? lineA1 : winIdx1 == e_SrcSelector::B ? lineB1 : lineC1; + int l2 = winIdx2 == e_SrcSelector::A ? lineA1 : winIdx2 == e_SrcSelector::B ? lineB1 : lineC1; + + if(l1 >= 0 && l2 >= 0) + { + if((line1 >= l1 && line2 < l2) || (line1 < l1 && line2 >= l2)) + return false; + l1 = winIdx1 == e_SrcSelector::A ? lineA2 : winIdx1 == e_SrcSelector::B ? lineB2 : lineC2; + l2 = winIdx2 == e_SrcSelector::A ? lineA2 : winIdx2 == e_SrcSelector::B ? lineB2 : lineC2; + ++l1; + ++l2; + if((line1 >= l1 && line2 < l2) || (line1 < l1 && line2 >= l2)) + return false; + } + + return true; +} + +int ManualDiffHelpEntry::calcManualDiffFirstDiff3LineIdx(const Diff3LineVector& d3lv) +{ + int i; + for(i = 0; i < d3lv.size(); ++i) + { + const Diff3Line& d3l = *d3lv[i]; + if((lineA1.isValid() && lineA1 == d3l.getLineA()) || + (lineB1.isValid() && lineB1 == d3l.getLineB()) || + (lineC1.isValid() && lineC1 == d3l.getLineC())) + return i; + } + return -1; +} + +void DiffList::runDiff(const QVector* p1, const qint32 index1, LineRef size1, const QVector* p2, const qint32 index2, LineRef size2, + const QSharedPointer &pOptions) +{ + ProgressProxy pp; + static GnuDiff gnuDiff; // All values are initialized with zeros. + + pp.setCurrent(0); + + clear(); + if(p1 == nullptr || (*p1)[index1].getBuffer() == nullptr || p2 == nullptr || (*p2)[index2].getBuffer() == nullptr || size1 == 0 || size2 == 0) + { + if(p1 != nullptr && p2 != nullptr && (*p1)[index1].getBuffer() == nullptr && (*p2)[index2].getBuffer() == nullptr && size1 == size2) + push_back(Diff(size1, 0, 0)); + else + { + push_back(Diff(0, size1, size2)); + } + } + else + { + assert(size1 < p1->size() && size2 < p2->size()); + + GnuDiff::comparison comparisonInput; + memset(&comparisonInput, 0, sizeof(comparisonInput)); + comparisonInput.parent = nullptr; + comparisonInput.file[0].buffer = (*p1)[index1].getBuffer()->unicode() + (*p1)[index1].getOffset(); //ptr to buffer + comparisonInput.file[0].buffered = ((*p1)[index1 + size1 - 1].getOffset() + (*p1)[index1 + size1 - 1].size() - (*p1)[index1].getOffset()); // size of buffer + comparisonInput.file[1].buffer = (*p2)[index2].getBuffer()->unicode() + (*p2)[index2].getOffset(); //ptr to buffer + comparisonInput.file[1].buffered = ((*p2)[index2 + size2 - 1].getOffset() + (*p2)[index2 + size2 - 1].size() - (*p2)[index2].getOffset()); // size of buffer + + gnuDiff.ignore_white_space = GnuDiff::IGNORE_ALL_SPACE; // I think nobody needs anything else ... + gnuDiff.bIgnoreWhiteSpace = true; + gnuDiff.bIgnoreNumbers = pOptions->m_bIgnoreNumbers; + gnuDiff.minimal = pOptions->m_bTryHard; + gnuDiff.ignore_case = false; + GnuDiff::change* script = gnuDiff.diff_2_files(&comparisonInput); + + LineRef equalLinesAtStart = (LineRef)comparisonInput.file[0].prefix_lines; + LineRef currentLine1 = 0; + LineRef currentLine2 = 0; + GnuDiff::change* p = nullptr; + for(GnuDiff::change* e = script; e; e = p) + { + Diff d((LineCount)(e->line0 - currentLine1), e->deleted, e->inserted); + Q_ASSERT(d.numberOfEquals() == e->line1 - currentLine2); + + currentLine1 += (LineRef)(d.numberOfEquals() + d.diff1()); + currentLine2 += (LineRef)(d.numberOfEquals() + d.diff2()); + push_back(d); + + p = e->link; + free(e); + } + + if(empty()) + { + qint32 numofEquals = std::min(size1, size2); + Diff d(numofEquals, size1 - numofEquals, size2 - numofEquals); + + push_back(d); + } + else + { + front().adjustNumberOfEquals(equalLinesAtStart); + currentLine1 += equalLinesAtStart; + currentLine2 += equalLinesAtStart; + + LineCount nofEquals = std::min(size1 - currentLine1, size2 - currentLine2); + if(nofEquals == 0) + { + back().adjustDiff1(size1 - currentLine1); + back().adjustDiff2(size2 - currentLine2); + } + else + { + Diff d(nofEquals, size1 - currentLine1 - nofEquals, size2 - currentLine2 - nofEquals); + push_back(d); + } + } + } + + // Verify difflist + { + LineRef::LineType l1 = 0; + LineRef::LineType l2 = 0; + DiffList::iterator i; + for(i = begin(); i != end(); ++i) + { + l1 += i->numberOfEquals() + i->diff1(); + l2 += i->numberOfEquals() + i->diff2(); + } + + Q_ASSERT(l1 == size1 && l2 == size2); + } + + pp.setCurrent(1); +} + +void ManualDiffHelpList::runDiff(const QVector* p1, LineRef size1, const QVector* p2, LineRef size2, DiffList& diffList, + e_SrcSelector winIdx1, e_SrcSelector winIdx2, + const QSharedPointer &pOptions) +{ + diffList.clear(); + DiffList diffList2; + + int l1begin = 0; + int l2begin = 0; + ManualDiffHelpList::const_iterator i; + for(i = begin(); i != end(); ++i) + { + const ManualDiffHelpEntry& mdhe = *i; + + LineRef l1end = mdhe.getLine1(winIdx1); + LineRef l2end = mdhe.getLine1(winIdx2); + + if(l1end.isValid() && l2end.isValid()) + { + diffList2.runDiff(p1, l1begin, l1end - l1begin, p2, l2begin, l2end - l2begin, pOptions); + diffList.splice(diffList.end(), diffList2); + l1begin = l1end; + l2begin = l2end; + + l1end = mdhe.getLine2(winIdx1); + l2end = mdhe.getLine2(winIdx2); + + if(l1end.isValid() && l2end.isValid()) + { + ++l1end; // point to line after last selected line + ++l2end; + diffList2.runDiff(p1, l1begin, l1end - l1begin, p2, l2begin, l2end - l2begin, pOptions); + diffList.splice(diffList.end(), diffList2); + l1begin = l1end; + l2begin = l2end; + } + } + } + diffList2.runDiff(p1, l1begin, size1 - l1begin, p2, l2begin, size2 - l2begin, pOptions); + diffList.splice(diffList.end(), diffList2); +} + +void Diff3LineList::correctManualDiffAlignment(ManualDiffHelpList* pManualDiffHelpList) +{ + if(pManualDiffHelpList->empty()) + return; + + // If a line appears unaligned in comparison to the manual alignment, correct this. + + ManualDiffHelpList::iterator iMDHL; + for(iMDHL = pManualDiffHelpList->begin(); iMDHL != pManualDiffHelpList->end(); ++iMDHL) + { + Diff3LineList::iterator i3 = begin(); + e_SrcSelector missingWinIdx = e_SrcSelector::None; + int alignedSum = (!iMDHL->getLine1(e_SrcSelector::A).isValid() ? 0 : 1) + (!iMDHL->getLine1(e_SrcSelector::B).isValid() ? 0 : 1) + (!iMDHL->getLine1(e_SrcSelector::C).isValid() ? 0 : 1); + if(alignedSum == 2) + { + // If only A & B are aligned then let C rather be aligned with A + // If only A & C are aligned then let B rather be aligned with A + // If only B & C are aligned then let A rather be aligned with B + missingWinIdx = !iMDHL->getLine1(e_SrcSelector::A).isValid() ? e_SrcSelector::A : (!iMDHL->getLine1(e_SrcSelector::B).isValid() ? e_SrcSelector::B : e_SrcSelector::C); + } + else if(alignedSum <= 1) + { + return; + } + + // At the first aligned line, move up the two other lines into new d3ls until the second input is aligned + // Then move up the third input until all three lines are aligned. + e_SrcSelector wi = e_SrcSelector::None; + for(; i3 != end(); ++i3) + { + for(wi = e_SrcSelector::A; wi != e_SrcSelector::Invalid; wi=nextSelector(wi)) + { + if(i3->getLineInFile(wi).isValid() && iMDHL->firstLine(wi) == i3->getLineInFile(wi)) + break; + } + if(wi != e_SrcSelector::Invalid) + break; + } + + if(wi >= e_SrcSelector::A && wi <= e_SrcSelector::Max) + { + // Found manual alignment for one source + Diff3LineList::iterator iDest = i3; + + // Move lines up until the next firstLine is found. Omit wi from move and search. + e_SrcSelector wi2 = e_SrcSelector::None; + for(; i3 != end(); ++i3) + { + for(wi2 = e_SrcSelector::A; wi2 != e_SrcSelector::Invalid; wi2 = nextSelector(wi2)) + { + if(wi != wi2 && i3->getLineInFile(wi2).isValid() && iMDHL->firstLine(wi2) == i3->getLineInFile(wi2)) + break; + } + if(wi2 == e_SrcSelector::Invalid) + { // Not yet found + // Move both others up + Diff3Line d3l; + // Move both up + if(wi == e_SrcSelector::A) // Move B and C up + { + d3l.bBEqC = i3->isEqualBC(); + d3l.setLineB(i3->getLineB()); + d3l.setLineC(i3->getLineC()); + i3->setLineB(LineRef::invalid); + i3->setLineC(LineRef::invalid); + } + if(wi == e_SrcSelector::B) // Move A and C up + { + d3l.bAEqC = i3->isEqualAC(); + d3l.setLineA(i3->getLineA()); + d3l.setLineC(i3->getLineC()); + i3->setLineA(LineRef::invalid); + i3->setLineC(LineRef::invalid); + } + if(wi == e_SrcSelector::C) // Move A and B up + { + d3l.bAEqB = i3->isEqualAB(); + d3l.setLineA(i3->getLineA()); + d3l.setLineB(i3->getLineB()); + i3->setLineA(LineRef::invalid); + i3->setLineB(LineRef::invalid); + } + i3->bAEqB = false; + i3->bAEqC = false; + i3->bBEqC = false; + insert(iDest, d3l); + } + else + { + // align the found line with the line we already have here + if(i3 != iDest) + { + if(wi2 == e_SrcSelector::A) + { + iDest->setLineA(i3->getLineA()); + i3->setLineA(LineRef::invalid); + i3->bAEqB = false; + i3->bAEqC = false; + } + else if(wi2 == e_SrcSelector::B) + { + iDest->setLineB(i3->getLineB()); + i3->setLineB(LineRef::invalid); + i3->bAEqB = false; + i3->bBEqC = false; + } + else if(wi2 == e_SrcSelector::C) + { + iDest->setLineC(i3->getLineC()); + i3->setLineC(LineRef::invalid); + i3->bBEqC = false; + i3->bAEqC = false; + } + } + + if(missingWinIdx != e_SrcSelector::None) + { + for(; i3 != end(); ++i3) + { + e_SrcSelector wi3 = missingWinIdx; + if(i3->getLineInFile(wi3).isValid()) + { + // not found, move the line before iDest + Diff3Line d3l; + if(wi3 == e_SrcSelector::A) + { + if(i3->isEqualAB()) // Stop moving lines up if one equal is found. + break; + d3l.setLineA(i3->getLineA()); + i3->setLineA(LineRef::invalid); + i3->bAEqB = false; + i3->bAEqC = false; + } + if(wi3 == e_SrcSelector::B) + { + if(i3->isEqualAB()) + break; + d3l.setLineB(i3->getLineB()); + i3->setLineB(LineRef::invalid); + i3->bAEqB = false; + i3->bBEqC = false; + } + if(wi3 == e_SrcSelector::C) + { + if(i3->isEqualAC()) + break; + d3l.setLineC(i3->getLineC()); + i3->setLineC(LineRef::invalid); + i3->bAEqC = false; + i3->bBEqC = false; + } + insert(iDest, d3l); + } + } // for(), searching for wi3 + } + break; + } + } // for(), searching for wi2 + } // if, wi found + } // for (iMDHL) +} + +// Fourth step +void Diff3LineList::calcDiff3LineListTrim( + const QVector* pldA, const QVector* pldB, const QVector* pldC, ManualDiffHelpList* pManualDiffHelpList) +{ + const Diff3Line d3l_empty = Diff3Line();//gcc 6.3 is over zealous about insisisting on explict initialization of a const. + remove(d3l_empty); + + Diff3LineList::iterator i3 = begin(); + Diff3LineList::iterator i3A = begin(); + Diff3LineList::iterator i3B = begin(); + Diff3LineList::iterator i3C = begin(); + + int line = 0; // diff3line counters + int lineA = 0; // + int lineB = 0; + int lineC = 0; + + ManualDiffHelpList::iterator iMDHL = pManualDiffHelpList->begin(); + // The iterator i3 and the variable line look ahead. + // The iterators i3A, i3B, i3C and corresponding lineA, lineB and lineC stop at empty lines, if found. + // If possible, then the texts from the look ahead will be moved back to the empty places. + + for(; i3 != end(); ++i3, ++line) + { + if(iMDHL != pManualDiffHelpList->end()) + { + if((i3->getLineA().isValid() && i3->getLineA() == iMDHL->getLine1(e_SrcSelector::A)) || + (i3->getLineB().isValid() && i3->getLineB() == iMDHL->getLine1(e_SrcSelector::B)) || + (i3->getLineC().isValid() && i3->getLineC() == iMDHL->getLine1(e_SrcSelector::C))) + { + i3A = i3; + i3B = i3; + i3C = i3; + lineA = line; + lineB = line; + lineC = line; + ++iMDHL; + } + } + + if(line > lineA && i3->getLineA().isValid() && i3A->getLineB().isValid() && i3A->isEqualBC() && + LineData::equal((*pldA)[i3->getLineA()], (*pldB)[i3A->getLineB()]) && + pManualDiffHelpList->isValidMove(i3->getLineA(), i3A->getLineB(), e_SrcSelector::A, e_SrcSelector::B) && + pManualDiffHelpList->isValidMove(i3->getLineA(), i3A->getLineC(), e_SrcSelector::A, e_SrcSelector::C)) + { + // Empty space for A. A matches B and C in the empty line. Move it up. + i3A->setLineA(i3->getLineA()); + i3A->bAEqB = true; + i3A->bAEqC = true; + + i3->setLineA(LineRef::invalid); + i3->bAEqB = false; + i3->bAEqC = false; + ++i3A; + ++lineA; + } + + if(line > lineB && i3->getLineB().isValid() && i3B->getLineA().isValid() && i3B->isEqualAC() && + LineData::equal((*pldB)[i3->getLineB()], (*pldA)[i3B->getLineA()]) && + pManualDiffHelpList->isValidMove(i3->getLineB(), i3B->getLineA(), e_SrcSelector::B, e_SrcSelector::A) && + pManualDiffHelpList->isValidMove(i3->getLineB(), i3B->getLineC(), e_SrcSelector::B, e_SrcSelector::C)) + { + // Empty space for B. B matches A and C in the empty line. Move it up. + i3B->setLineB(i3->getLineB()); + i3B->bAEqB = true; + i3B->bBEqC = true; + i3->setLineB(LineRef::invalid); + i3->bAEqB = false; + i3->bBEqC = false; + ++i3B; + ++lineB; + } + + if(line > lineC && i3->getLineC().isValid() && i3C->getLineA().isValid() && i3C->isEqualAB() && + LineData::equal((*pldC)[i3->getLineC()], (*pldA)[i3C->getLineA()]) && + pManualDiffHelpList->isValidMove(i3->getLineC(), i3C->getLineA(), e_SrcSelector::C, e_SrcSelector::A) && + pManualDiffHelpList->isValidMove(i3->getLineC(), i3C->getLineB(), e_SrcSelector::C, e_SrcSelector::B)) + { + // Empty space for C. C matches A and B in the empty line. Move it up. + i3C->setLineC(i3->getLineC()); + i3C->bAEqC = true; + i3C->bBEqC = true; + i3->setLineC(LineRef::invalid); + i3->bAEqC = false; + i3->bBEqC = false; + ++i3C; + ++lineC; + } + + if(line > lineA && i3->getLineA().isValid() && !i3->isEqualAB() && !i3->isEqualAC() && + pManualDiffHelpList->isValidMove(i3->getLineA(), i3A->getLineB(), e_SrcSelector::A, e_SrcSelector::B) && + pManualDiffHelpList->isValidMove(i3->getLineA(), i3A->getLineC(), e_SrcSelector::A, e_SrcSelector::C)) + { + // Empty space for A. A doesn't match B or C. Move it up. + i3A->setLineA(i3->getLineA()); + i3->setLineA(LineRef::invalid); + + if(i3A->getLineB().isValid() && LineData::equal((*pldA)[i3A->getLineA()], (*pldB)[i3A->getLineB()])) + { + i3A->bAEqB = true; + } + if((i3A->isEqualAB() && i3A->isEqualBC()) || + (i3A->getLineC().isValid() && LineData::equal((*pldA)[i3A->getLineA()], (*pldC)[i3A->getLineC()]))) + { + i3A->bAEqC = true; + } + + ++i3A; + ++lineA; + } + + if(line > lineB && i3->getLineB().isValid() && !i3->isEqualAB() && !i3->isEqualBC() && + pManualDiffHelpList->isValidMove(i3->getLineB(), i3B->getLineA(), e_SrcSelector::B, e_SrcSelector::A) && + pManualDiffHelpList->isValidMove(i3->getLineB(), i3B->getLineC(), e_SrcSelector::B, e_SrcSelector::C)) + { + // Empty space for B. B matches neither A nor C. Move B up. + i3B->setLineB(i3->getLineB()); + i3->setLineB(LineRef::invalid); + + if(i3B->getLineA().isValid() && LineData::equal((*pldA)[i3B->getLineA()], (*pldB)[i3B->getLineB()])) + { + i3B->bAEqB = true; + } + if((i3B->isEqualAB() && i3B->isEqualAC()) || + (i3B->getLineC().isValid() && LineData::equal((*pldB)[i3B->getLineB()], (*pldC)[i3B->getLineC()]))) + { + i3B->bBEqC = true; + } + + ++i3B; + ++lineB; + } + + if(line > lineC && i3->getLineC().isValid() && !i3->isEqualAC() && !i3->isEqualBC() && + pManualDiffHelpList->isValidMove(i3->getLineC(), i3C->getLineA(), e_SrcSelector::C, e_SrcSelector::A) && + pManualDiffHelpList->isValidMove(i3->getLineC(), i3C->getLineB(), e_SrcSelector::C, e_SrcSelector::B)) + { + // Empty space for C. C matches neither A nor B. Move C up. + i3C->setLineC(i3->getLineC()); + i3->setLineC(LineRef::invalid); + + if(i3C->getLineA().isValid() && LineData::equal((*pldA)[i3C->getLineA()], (*pldC)[i3C->getLineC()])) + { + i3C->bAEqC = true; + } + if((i3C->isEqualAC() && i3C->isEqualAB()) || + (i3C->getLineB().isValid() && LineData::equal((*pldB)[i3C->getLineB()], (*pldC)[i3C->getLineC()]))) + { + i3C->bBEqC = true; + } + + ++i3C; + ++lineC; + } + + if(line > lineA && line > lineB && i3->getLineA().isValid() && i3->isEqualAB() && !i3->isEqualAC()) + { + // Empty space for A and B. A matches B, but not C. Move A & B up. + Diff3LineList::iterator i = lineA > lineB ? i3A : i3B; + int l = lineA > lineB ? lineA : lineB; + + if(pManualDiffHelpList->isValidMove(i->getLineC(), i3->getLineA(), e_SrcSelector::C, e_SrcSelector::A) && + pManualDiffHelpList->isValidMove(i->getLineC(), i3->getLineB(), e_SrcSelector::C, e_SrcSelector::B)) + { + i->setLineA(i3->getLineA()); + i->setLineB(i3->getLineB()); + i->bAEqB = true; + + if(i->getLineC().isValid() && LineData::equal((*pldA)[i->getLineA()], (*pldC)[i->getLineC()])) + { + i->bAEqC = true; + i->bBEqC = true; + } + + i3->setLineA(LineRef::invalid); + i3->setLineB(LineRef::invalid); + i3->bAEqB = false; + i3A = i; + i3B = i; + ++i3A; + ++i3B; + lineA = l + 1; + lineB = l + 1; + } + } + else if(line > lineA && line > lineC && i3->getLineA().isValid() && i3->isEqualAC() && !i3->isEqualAB()) + { + // Empty space for A and C. A matches C, but not B. Move A & C up. + Diff3LineList::iterator i = lineA > lineC ? i3A : i3C; + int l = lineA > lineC ? lineA : lineC; + + if(pManualDiffHelpList->isValidMove(i->getLineB(), i3->getLineA(), e_SrcSelector::B, e_SrcSelector::A) && + pManualDiffHelpList->isValidMove(i->getLineB(), i3->getLineC(), e_SrcSelector::B, e_SrcSelector::C)) + { + i->setLineA(i3->getLineA()); + i->setLineC(i3->getLineC()); + i->bAEqC = true; + + if(i->getLineB().isValid() && LineData::equal((*pldA)[i->getLineA()], (*pldB)[i->getLineB()])) + { + i->bAEqB = true; + i->bBEqC = true; + } + + i3->setLineA(LineRef::invalid); + i3->setLineC(LineRef::invalid); + i3->bAEqC = false; + i3A = i; + i3C = i; + ++i3A; + ++i3C; + lineA = l + 1; + lineC = l + 1; + } + } + else if(line > lineB && line > lineC && i3->getLineB().isValid() && i3->isEqualBC() && !i3->isEqualAC()) + { + // Empty space for B and C. B matches C, but not A. Move B & C up. + Diff3LineList::iterator i = lineB > lineC ? i3B : i3C; + int l = lineB > lineC ? lineB : lineC; + if(pManualDiffHelpList->isValidMove(i->getLineA(), i3->getLineB(), e_SrcSelector::A, e_SrcSelector::B) && + pManualDiffHelpList->isValidMove(i->getLineA(), i3->getLineC(), e_SrcSelector::A, e_SrcSelector::C)) + { + i->setLineB(i3->getLineB()); + i->setLineC(i3->getLineC()); + i->bBEqC = true; + + if(i->getLineA().isValid() && LineData::equal((*pldA)[i->getLineA()], (*pldB)[i->getLineB()])) + { + i->bAEqB = true; + i->bAEqC = true; + } + + i3->setLineB(LineRef::invalid); + i3->setLineC(LineRef::invalid); + i3->bBEqC = false; + i3B = i; + i3C = i; + ++i3B; + ++i3C; + lineB = l + 1; + lineC = l + 1; + } + } + + if(i3->getLineA().isValid()) + { + lineA = line + 1; + i3A = i3; + ++i3A; + } + if(i3->getLineB().isValid()) + { + lineB = line + 1; + i3B = i3; + ++i3B; + } + if(i3->getLineC().isValid()) + { + lineC = line + 1; + i3C = i3; + ++i3C; + } + } + + remove(d3l_empty); + + /* + + Diff3LineList::iterator it = d3ll.begin(); + int li=0; + for( ; it!=d3ll.end(); ++it, ++li ) + { + printf( "%4d %4d %4d %4d A%c=B A%c=C B%c=C\n", + li, it->getLineA(), it->getLineB(), it->getLineC(), + it->isEqualAB() ? '=' : '!', it->isEqualAC() ? '=' : '!', it->isEqualBC() ? '=' : '!' ); + + } +*/ +} + +void DiffBufferInfo::init(Diff3LineList* pD3ll, const Diff3LineVector* pD3lv, + const QVector* pldA, LineCount sizeA, const QVector* pldB, LineCount sizeB, const QVector* pldC, LineCount sizeC) +{ + m_pDiff3LineList = pD3ll; + m_pDiff3LineVector = pD3lv; + mLineDataA = pldA; + mLineDataB = pldB; + mLineDataC = pldC; + m_sizeA = sizeA; + m_sizeB = sizeB; + m_sizeC = sizeC; +} + +void Diff3LineList::calcWhiteDiff3Lines( + const QVector* pldA, const QVector* pldB, const QVector* pldC, const bool bIgnoreComments) +{ + Diff3LineList::iterator i3; + + for(i3 = begin(); i3 != end(); ++i3) + { + i3->bIsPureCommentA = (i3->getLineA().isValid() && pldA != nullptr && (*pldA)[i3->getLineA()].isPureComment()); + i3->bIsPureCommentB = (i3->getLineB().isValid() && pldB != nullptr && (*pldB)[i3->getLineB()].isPureComment()); + i3->bIsPureCommentC = (i3->getLineC().isValid() && pldC != nullptr && (*pldC)[i3->getLineC()].isPureComment()); + + i3->bWhiteLineA = (!i3->getLineA().isValid() || pldA == nullptr || (*pldA)[i3->getLineA()].whiteLine() || (bIgnoreComments && (*pldA)[i3->getLineA()].isPureComment())); + i3->bWhiteLineB = (!i3->getLineB().isValid() || pldB == nullptr || (*pldB)[i3->getLineB()].whiteLine() || (bIgnoreComments && (*pldB)[i3->getLineB()].isPureComment())); + i3->bWhiteLineC = (!i3->getLineC().isValid() || pldC == nullptr || (*pldC)[i3->getLineC()].whiteLine() || (bIgnoreComments && (*pldC)[i3->getLineC()].isPureComment())); + } +} + +// My own diff-invention: +void calcDiff(const QString& line1, const QString& line2, DiffList& diffList, int match, int maxSearchRange) +{ + diffList.clear(); + + const QChar* p1end = line1.constData() + line1.size(); + const QChar* p2end = line2.constData() + line2.size(); + + QString::const_iterator p1=line1.begin(), p2=line2.begin(); + + /* + This loop should never reach the exit condition specified here. However it must have a hard wired + stopping point to prevent runaway allocation if something unexpected happens. + diffList is therefor hard capped at aprox 50 MB in size. + */ + for(; diffList.size() * sizeof(Diff) + sizeof(DiffList) < (50 << 20);) + { + int nofEquals = 0; + while(p1 != line1.end() && p2 != line2.end() && *p1 == *p2) + { + ++p1; + ++p2; + ++nofEquals; + } + + bool bBestValid = false; + int bestI1 = 0; + int bestI2 = 0; + int i1 = 0; + int i2 = 0; + + for(i1 = 0;; ++i1) + { + if(&p1[i1] == p1end || (bBestValid && i1 >= bestI1 + bestI2)) + { + break; + } + for(i2 = 0; i2 < maxSearchRange; ++i2) + { + if(&p2[i2] == p2end || (bBestValid && i1 + i2 >= bestI1 + bestI2)) + { + break; + } + else if(p2[i2] == p1[i1] && + (match == 1 || abs(i1 - i2) < 3 || (&p2[i2 + 1] == p2end && &p1[i1 + 1] == p1end) || + (&p2[i2 + 1] != p2end && &p1[i1 + 1] != p1end && p2[i2 + 1] == p1[i1 + 1]))) + { + if(i1 + i2 < bestI1 + bestI2 || !bBestValid) + { + bestI1 = i1; + bestI2 = i2; + bBestValid = true; + break; + } + } + } + } + + // The match was found using the strict search. Go back if there are non-strict + // matches. + while(bestI1 >= 1 && bestI2 >= 1 && p1[bestI1 - 1] == p2[bestI2 - 1]) + { + --bestI1; + --bestI2; + } + + bool bEndReached = false; + if(bBestValid) + { + // continue somehow + Diff d(nofEquals, bestI1, bestI2); + Q_ASSERT(nofEquals + bestI1 + bestI2 != 0); + diffList.push_back(d); + + p1 += bestI1; + p2 += bestI2; + } + else + { + // Nothing else to match. + Diff d(nofEquals, line1.end() - p1, line2.end() - p2); + diffList.push_back(d); + + bEndReached = true; //break; + } + + // Sometimes the algorithm that chooses the first match unfortunately chooses + // a match where later actually equal parts don't match anymore. + // A different match could be achieved, if we start at the end. + // Do it, if it would be a better match. + int nofUnmatched = 0; + QString::const_iterator pu1 = p1 - 1; + QString::const_iterator pu2 = p2 - 1; + + while(pu1 >= line1.begin() && pu2 >= line2.begin() && *pu1 == *pu2) + { + ++nofUnmatched; + --pu1; + --pu2; + } + + Diff d = diffList.back(); + if(nofUnmatched > 0) + { + // We want to go backwards the nofUnmatched elements and redo + // the matching + d = diffList.back(); + Diff origBack = d; + diffList.pop_back(); + + while(nofUnmatched > 0) + { + if(d.diff1() > 0 && d.diff2() > 0) + { + d.adjustDiff1(-1); + d.adjustDiff2(-1); + --nofUnmatched; + } + else if(d.numberOfEquals() > 0) + { + d.adjustNumberOfEquals(-1); + --nofUnmatched; + } + + if(d.numberOfEquals() == 0 && (d.diff1() == 0 || d.diff2() == 0) && nofUnmatched > 0) + { + if(diffList.empty()) + break; + d.adjustNumberOfEquals(diffList.back().numberOfEquals()); + d.adjustDiff1(diffList.back().diff1()); + d.adjustDiff2(diffList.back().diff2()); + diffList.pop_back(); + bEndReached = false; + } + } + + if(bEndReached) + diffList.push_back(origBack); + else + { + + p1 = pu1 + 1 + nofUnmatched; + p2 = pu2 + 1 + nofUnmatched; + diffList.push_back(d); + } + } + if(bEndReached) + break; + } + + Q_ASSERT(diffList.size() * sizeof(Diff) + sizeof(DiffList) <= (50 << 20)); + + // Verify difflist + { + qint32 l1 = 0; + qint32 l2 = 0; + + for(const Diff& theDiff: diffList) + { + l1 += (theDiff.numberOfEquals() + theDiff.diff1()); + l2 += (theDiff.numberOfEquals() + theDiff.diff2()); + } + + Q_ASSERT(l1 == line1.size() && l2 == line2.size()); + } +} + +bool Diff3Line::fineDiff(bool inBTextsTotalEqual, const e_SrcSelector selector, const QVector* v1, const QVector* v2, const IgnoreFlags eIgnoreFlags) +{ + LineRef k1 = 0; + LineRef k2 = 0; + int maxSearchLength = 500; + bool bTextsTotalEqual = inBTextsTotalEqual; + bool bIgnoreComments = eIgnoreFlags & IgnoreFlag::ignoreComments; + bool bIgnoreWhiteSpace = eIgnoreFlags & IgnoreFlag::ignoreWhiteSpace; + + Q_ASSERT(selector == e_SrcSelector::A || selector == e_SrcSelector::B || selector == e_SrcSelector::C); + + if(selector == e_SrcSelector::A) + { + k1 = getLineA(); + k2 = getLineB(); + } + else if(selector == e_SrcSelector::B) + { + k1 = getLineB(); + k2 = getLineC(); + } + else if(selector == e_SrcSelector::C) + { + k1 = getLineC(); + k2 = getLineA(); + } + + qDebug(kdiffCore) << "k1 = " << k1 << ", k2 = " << k2; + if((!k1.isValid() && k2.isValid()) || (k1.isValid() && !k2.isValid())) bTextsTotalEqual = false; + if(k1.isValid() && k2.isValid()) + { + if((*v1)[k1].size() != (*v2)[k2].size() || QString::compare((*v1)[k1].getLine(), (*v2)[k2].getLine()) != 0) + { + bTextsTotalEqual = false; + DiffList* pDiffList = new DiffList; + calcDiff((*v1)[k1].getLine(), (*v2)[k2].getLine(), *pDiffList, 2, maxSearchLength); + + // Optimize the diff list. + DiffList::iterator dli; + bool bUsefulFineDiff = false; + for(dli = pDiffList->begin(); dli != pDiffList->end(); ++dli) + { + if(dli->numberOfEquals() >= 4) + { + bUsefulFineDiff = true; + break; + } + } + + for(dli = pDiffList->begin(); dli != pDiffList->end(); ++dli) + { + if(dli->numberOfEquals() < 4 && (dli->diff1() > 0 || dli->diff2() > 0) && !(bUsefulFineDiff && dli == pDiffList->begin())) + { + dli->adjustDiff1(dli->numberOfEquals()); + dli->adjustDiff2(dli->numberOfEquals()); + dli->setNumberOfEquals(0); + } + } + + setFineDiff(selector, pDiffList); + } + /* + Override default euality for white lines and comments. + */ + if(((bIgnoreComments && (*v1)[k1].isSkipable()) || (bIgnoreWhiteSpace && (*v1)[k1].whiteLine())) && ((bIgnoreComments && (*v2)[k2].isSkipable()) || (bIgnoreWhiteSpace && (*v2)[k2].whiteLine()))) + { + if(selector == e_SrcSelector::A) + { + bAEqB = true; + } + else if(selector == e_SrcSelector::B) + { + bBEqC = true; + } + else if(selector == e_SrcSelector::C) + { + bAEqC = true; + } + } + } + + return bTextsTotalEqual; +} + +void Diff3Line::getLineInfo(const e_SrcSelector winIdx, const bool isTriple, LineRef& lineIdx, + DiffList*& pFineDiff1, DiffList*& pFineDiff2, // return values + ChangeFlags& changed, ChangeFlags& changed2) const +{ + changed = NoChange; + changed2 = NoChange; + bool bAEqualB = this->isEqualAB() || (bWhiteLineA && bWhiteLineB); + bool bAEqualC = this->isEqualAC() || (bWhiteLineA && bWhiteLineC); + bool bBEqualC = this->isEqualBC() || (bWhiteLineB && bWhiteLineC); + + Q_ASSERT(winIdx >= e_SrcSelector::A && winIdx <= e_SrcSelector::C); + if(winIdx == e_SrcSelector::A) + { + lineIdx = getLineA(); + pFineDiff1 = pFineAB; + pFineDiff2 = pFineCA; + + changed = ((!getLineB().isValid()) != (!lineIdx.isValid()) ? AChanged : NoChange) | + ((!getLineC().isValid()) != (!lineIdx.isValid()) && isTriple ? BChanged : NoChange); + changed2 = (bAEqualB ? NoChange : AChanged) | (bAEqualC || !isTriple ? NoChange : BChanged); + } + else if(winIdx == e_SrcSelector::B) + { + lineIdx = getLineB(); + pFineDiff1 = pFineBC; + pFineDiff2 = pFineAB; + changed = ((!getLineC().isValid()) != (!lineIdx.isValid()) && isTriple ? AChanged : NoChange) | + ((!getLineA().isValid()) != (!lineIdx.isValid()) ? BChanged : NoChange); + changed2 = (bBEqualC || !isTriple ? NoChange : AChanged) | (bAEqualB ? NoChange : BChanged); + } + else if(winIdx == e_SrcSelector::C) + { + lineIdx = getLineC(); + pFineDiff1 = pFineCA; + pFineDiff2 = pFineBC; + changed = ((!getLineA().isValid()) != (!lineIdx.isValid()) ? AChanged : NoChange) | + ((!getLineB().isValid()) != (!lineIdx.isValid()) ? BChanged : NoChange); + changed2 = (bAEqualC ? NoChange : AChanged) | (bBEqualC ? NoChange : BChanged); + } +} + +bool Diff3LineList::fineDiff(const e_SrcSelector selector, const QVector* v1, const QVector* v2, const IgnoreFlags eIgnoreFlags) +{ + // Finetuning: Diff each line with deltas + ProgressProxy pp; + Diff3LineList::iterator i; + bool bTextsTotalEqual = true; + int listSize = size(); + pp.setMaxNofSteps(listSize); + int listIdx = 0; + for(i = begin(); i != end(); ++i) + { + bTextsTotalEqual = i->fineDiff(bTextsTotalEqual, selector, v1, v2, eIgnoreFlags); + ++listIdx; + pp.step(); + } + return bTextsTotalEqual; +} + +// Convert the list to a vector of pointers +void Diff3LineList::calcDiff3LineVector(Diff3LineVector& d3lv) +{ + d3lv.resize(size()); + Diff3LineList::iterator i; + int j = 0; + for(i = begin(); i != end(); ++i, ++j) + { + d3lv[j] = &(*i); + } + Q_ASSERT(j == d3lv.size()); +} + +// Just make sure that all input lines are in the output too, exactly once. +void Diff3LineList::debugLineCheck(const LineCount size, const e_SrcSelector srcSelector) const +{ + Diff3LineList::const_iterator it = begin(); + int i = 0; + + for(it = begin(); it != end(); ++it) + { + LineRef line; + + Q_ASSERT(srcSelector == e_SrcSelector::A || srcSelector == e_SrcSelector::B || srcSelector == e_SrcSelector::C); + if(srcSelector == e_SrcSelector::A) + line = it->getLineA(); + else if(srcSelector == e_SrcSelector::B) + line = it->getLineB(); + else if(srcSelector == e_SrcSelector::C) + line = it->getLineC(); + + if(line.isValid()) + { + if(line != i) + { + KMessageBox::error(nullptr, i18n( + "Data loss error:\n" + "If it is reproducible please contact the author.\n"), + i18n("Severe Internal Error")); + + qCCritical(kdiffMain) << i18n("Severe Internal Error.") << " line != i for srcSelector=" << (int)srcSelector << "\n"; + ::exit(-1); + } + ++i; + } + } + + if(size != i) + { + KMessageBox::error(nullptr, i18n( + "Data loss error:\n" + "If it is reproducible please contact the author.\n"), + i18n("Severe Internal Error")); + + qCCritical(kdiffMain) << i18n("Severe Internal Error.: ") << size << " != " << i << "\n"; + ::exit(-1); + } +} + +void Diff3LineList::findHistoryRange(const QRegExp& historyStart, bool bThreeFiles, + Diff3LineList::const_iterator& iBegin, Diff3LineList::const_iterator& iEnd, int& idxBegin, int& idxEnd) const +{ + QString historyLead; + // Search for start of history + for(iBegin = begin(), idxBegin = 0; iBegin != end(); ++iBegin, ++idxBegin) + { + if(historyStart.exactMatch(iBegin->getString(e_SrcSelector::A)) && + historyStart.exactMatch(iBegin->getString(e_SrcSelector::B)) && + (!bThreeFiles || historyStart.exactMatch(iBegin->getString(e_SrcSelector::C)))) + { + historyLead = Utils::calcHistoryLead(iBegin->getString(e_SrcSelector::A)); + break; + } + } + // Search for end of history + for(iEnd = iBegin, idxEnd = idxBegin; iEnd != end(); ++iEnd, ++idxEnd) + { + QString sA = iEnd->getString(e_SrcSelector::A); + QString sB = iEnd->getString(e_SrcSelector::B); + QString sC = iEnd->getString(e_SrcSelector::C); + if(!((sA.isEmpty() || historyLead == Utils::calcHistoryLead(sA)) && + (sB.isEmpty() || historyLead == Utils::calcHistoryLead(sB)) && + (!bThreeFiles || sC.isEmpty() || historyLead == Utils::calcHistoryLead(sC)))) + { + break; // End of the history + } + } +} diff --git a/src/diff.h b/src/diff.h new file mode 100644 index 0000000..1e71747 --- /dev/null +++ b/src/diff.h @@ -0,0 +1,578 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef DIFF_H +#define DIFF_H + +#include "common.h" +#include "fileaccess.h" +#include "LineRef.h" +#include "SourceData.h" +#include "Logging.h" + +#include +#include + +class Options; + +//e_SrcSelector must be sequential with no gaps between Min and Max. +enum class e_SrcSelector +{ + Min = -1, + Invalid=-1, + None=0, + A = 1, + B = 2, + C = 3, + Max=C +}; + +inline e_SrcSelector nextSelector(e_SrcSelector selector) +{ + switch(selector) + { + case e_SrcSelector::None: + return e_SrcSelector::A; + case e_SrcSelector::A: + return e_SrcSelector::B; + case e_SrcSelector::B: + return e_SrcSelector::C; + default: + return e_SrcSelector::Invalid; + } + + return e_SrcSelector::Invalid; +} + +enum class e_MergeDetails +{ + eDefault, + eNoChange, + eBChanged, + eCChanged, + eBCChanged, // conflict + eBCChangedAndEqual, // possible conflict + eBDeleted, + eCDeleted, + eBCDeleted, // possible conflict + + eBChanged_CDeleted, // conflict + eCChanged_BDeleted, // conflict + eBAdded, + eCAdded, + eBCAdded, // conflict + eBCAddedAndEqual // possible conflict +}; + +enum ChangeFlag +{ + NoChange = 0, + AChanged = 0x1, + BChanged = 0x2, + Both = AChanged | BChanged +}; + +Q_DECLARE_FLAGS(ChangeFlags, ChangeFlag); +Q_DECLARE_OPERATORS_FOR_FLAGS(ChangeFlags); + +// Each range with matching elements is followed by a range with differences on either side. +// Then again range of matching elements should follow. +class Diff +{ + private: + LineCount nofEquals = 0; + + qint64 mDiff1 = 0; + qint64 mDiff2 = 0; + public: + Diff() = default;//We use defualt initialization force compiler to generate a default constructor + Diff(LineCount eq, const qint64 inDiff1, const qint64 inDiff2) + { + nofEquals = eq; + mDiff1 = inDiff1; + mDiff2 = inDiff2; + } + + Q_REQUIRED_RESULT inline qint32 numberOfEquals() const { return nofEquals; }; + + Q_REQUIRED_RESULT inline qint64 diff1() const { return mDiff1; }; + Q_REQUIRED_RESULT inline qint64 diff2() const { return mDiff2; }; + + inline void setNumberOfEquals(const qint32 inNumOfEquals) { nofEquals = inNumOfEquals; } + + inline void adjustNumberOfEquals(const qint64 delta) { nofEquals += delta; } + inline void adjustDiff1(const qint64 delta) { mDiff1 += delta; } + inline void adjustDiff2(const qint64 delta) { mDiff2 += delta; } +}; + +class DiffList : public std::list +{ + public: + void runDiff(const QVector* p1, const qint32 index1, LineRef size1, const QVector* p2, const qint32 index2, LineRef size2, const QSharedPointer& pOptions); +}; + +class LineData +{ + private: + QSharedPointer mBuffer; + //QString pLine; + QtNumberType mFirstNonWhiteChar = 0; + qint64 mOffset = 0; + QtNumberType mSize = 0; + bool bContainsPureComment = false; + bool bSkipable = false;//TODO: Move me + + public: + explicit LineData() = default; // needed for Qt internal reasons should not be used. + inline LineData(const QSharedPointer &buffer, const qint64 inOffset, QtNumberType inSize = 0, QtNumberType inFirstNonWhiteChar=0, bool inIsSkipable=false,const bool inIsPureComment = false) + { + mBuffer = buffer; + mOffset = inOffset; + mSize = inSize; + bContainsPureComment = inIsPureComment; + bSkipable = inIsSkipable; + mFirstNonWhiteChar = inFirstNonWhiteChar; + } + Q_REQUIRED_RESULT inline int size() const { return mSize; } + Q_REQUIRED_RESULT inline qint32 getFirstNonWhiteChar() const { return mFirstNonWhiteChar; } + + /* + QString::fromRawData allows us to create a light weight QString backed by the buffer memmory. + */ + Q_REQUIRED_RESULT inline const QString getLine() const { return QString::fromRawData(mBuffer->data() + mOffset, mSize); } + Q_REQUIRED_RESULT inline const QSharedPointer& getBuffer() const { return mBuffer; } + + Q_REQUIRED_RESULT inline qint64 getOffset() const { return mOffset; } + Q_REQUIRED_RESULT int width(int tabSize) const; // Calcs width considering tabs. + //int occurrences; + Q_REQUIRED_RESULT inline bool whiteLine() const { return mFirstNonWhiteChar == 0; } + + Q_REQUIRED_RESULT inline bool isPureComment() const { return bContainsPureComment; } + inline void setPureComment(const bool bPureComment) { bContainsPureComment = bPureComment; } + + Q_REQUIRED_RESULT inline bool isSkipable() const { return bSkipable; } + inline void setSkipable(const bool inSkipable) { bSkipable = inSkipable; } + + Q_REQUIRED_RESULT static bool equal(const LineData& l1, const LineData& l2); +}; + +class ManualDiffHelpList; // A list of corresponding ranges + +class Diff3LineList; +class Diff3LineVector; + +class DiffBufferInfo +{ + private: + const QVector* mLineDataA; + const QVector* mLineDataB; + const QVector* mLineDataC; + + LineCount m_sizeA; + LineCount m_sizeB; + LineCount m_sizeC; + const Diff3LineList* m_pDiff3LineList; + const Diff3LineVector* m_pDiff3LineVector; +public: + void init(Diff3LineList* d3ll, const Diff3LineVector* d3lv, + const QVector* pldA, LineCount sizeA, const QVector* pldB, LineCount sizeB, const QVector* pldC, LineCount sizeC); + + inline const QVector* getLineData(e_SrcSelector srcIndex) const + { + switch(srcIndex) + { + case e_SrcSelector::A: + return mLineDataA; + case e_SrcSelector::B: + return mLineDataB; + case e_SrcSelector::C: + return mLineDataC; + default: + return nullptr; + } + } +}; + +enum class IgnoreFlag +{ + none = 0, + ignoreWhiteSpace, + ignoreComments +}; + +Q_DECLARE_FLAGS(IgnoreFlags, IgnoreFlag); +Q_DECLARE_OPERATORS_FOR_FLAGS(IgnoreFlags); + +class Diff3Line +{ + private: + friend class Diff3LineList; + LineRef lineA; + LineRef lineB; + LineRef lineC; + + bool bAEqC = false; // These are true if equal or only white-space changes exist. + bool bBEqC = false; + bool bAEqB = false; + + bool bWhiteLineA = false; + bool bWhiteLineB = false; + bool bWhiteLineC = false; + + bool bIsPureCommentA = false; + bool bIsPureCommentB = false; + bool bIsPureCommentC = false; + + DiffList* pFineAB = nullptr; // These are NULL only if completely equal or if either source doesn't exist. + DiffList* pFineBC = nullptr; + DiffList* pFineCA = nullptr; + + + qint32 mLinesNeededForDisplay = 1; // Due to wordwrap + qint32 mSumLinesNeededForDisplay = 0; // For fast conversion to m_diff3WrapLineVector + + public: + static QSharedPointer m_pDiffBufferInfo; // For convenience + + ~Diff3Line() + { + delete pFineAB; + delete pFineBC; + delete pFineCA; + + pFineAB = nullptr; + pFineBC = nullptr; + pFineCA = nullptr; + } + + Q_REQUIRED_RESULT LineRef getLineA() const { return lineA; } + Q_REQUIRED_RESULT LineRef getLineB() const { return lineB; } + Q_REQUIRED_RESULT LineRef getLineC() const { return lineC; } + + inline void setLineA(const LineRef& line) { lineA = line; } + inline void setLineB(const LineRef& line) { lineB = line; } + inline void setLineC(const LineRef& line) { lineC = line; } + + Q_REQUIRED_RESULT inline bool isEqualAB() const { return bAEqB; } + Q_REQUIRED_RESULT inline bool isEqualAC() const { return bAEqC; } + Q_REQUIRED_RESULT inline bool isEqualBC() const { return bBEqC; } + + Q_REQUIRED_RESULT inline bool isWhiteLine(e_SrcSelector src) const + { + Q_ASSERT(src == e_SrcSelector::A || src == e_SrcSelector::B || src == e_SrcSelector::C); + + switch(src) + { + case e_SrcSelector::A: + return bWhiteLineA; + case e_SrcSelector::B: + return bWhiteLineB; + case e_SrcSelector::C: + return bWhiteLineC; + default: + //should never get here + Q_ASSERT(false); + return false; + } + } + + bool operator==(const Diff3Line& d3l) const + { + return lineA == d3l.lineA && lineB == d3l.lineB && lineC == d3l.lineC && bAEqB == d3l.bAEqB && bAEqC == d3l.bAEqC && bBEqC == d3l.bBEqC; + } + + Q_REQUIRED_RESULT const LineData* getLineData(e_SrcSelector src) const + { + Q_ASSERT(m_pDiffBufferInfo != nullptr); + //Use at() here not [] to avoid using really weird syntax + if(src == e_SrcSelector::A && lineA.isValid()) return &m_pDiffBufferInfo->getLineData(src)->at(lineA); + if(src == e_SrcSelector::B && lineB.isValid()) return &m_pDiffBufferInfo->getLineData(src)->at(lineB); + if(src == e_SrcSelector::C && lineC.isValid()) return &m_pDiffBufferInfo->getLineData(src)->at(lineC); + + return nullptr; + } + Q_REQUIRED_RESULT const QString getString(const e_SrcSelector src) const + { + const LineData* pld = getLineData(src); + if(pld) + return pld->getLine(); + else + return QString(); + } + Q_REQUIRED_RESULT LineRef getLineInFile(e_SrcSelector src) const + { + if(src == e_SrcSelector::A) return lineA; + if(src == e_SrcSelector::B) return lineB; + if(src == e_SrcSelector::C) return lineC; + return LineRef(); + } + + Q_REQUIRED_RESULT inline qint32 sumLinesNeededForDisplay() const { return mSumLinesNeededForDisplay; } + + Q_REQUIRED_RESULT inline qint32 linesNeededForDisplay() const { return mLinesNeededForDisplay; } + + void setLinesNeeded(const qint32 lines) { mLinesNeededForDisplay = lines; } + Q_REQUIRED_RESULT bool fineDiff(bool bTextsTotalEqual, const e_SrcSelector selector, const QVector* v1, const QVector* v2, const IgnoreFlags eIgnoreFlags); + void mergeOneLine(e_MergeDetails& mergeDetails, bool& bConflict, bool& bLineRemoved, e_SrcSelector& src, bool bTwoInputs) const; + + void getLineInfo(const e_SrcSelector winIdx, const bool isTriple, LineRef& lineIdx, + DiffList*& pFineDiff1, DiffList*& pFineDiff2, // return values + ChangeFlags& changed, ChangeFlags& changed2) const; + private: + void setFineDiff(const e_SrcSelector selector, DiffList* pDiffList) + { + Q_ASSERT(selector == e_SrcSelector::A || selector == e_SrcSelector::B || selector == e_SrcSelector::C); + if(selector == e_SrcSelector::A) + { + delete pFineAB; + pFineAB = pDiffList; + } + else if(selector == e_SrcSelector::B) + { + delete pFineBC; + pFineBC = pDiffList; + } + else if(selector == e_SrcSelector::C) + { + delete pFineCA; + pFineCA = pDiffList; + } + } +}; + +class Diff3LineList : public std::list +{ + public: + void findHistoryRange(const QRegExp& historyStart, bool bThreeFiles, + Diff3LineList::const_iterator& iBegin, Diff3LineList::const_iterator& iEnd, int& idxBegin, int& idxEnd) const; + bool fineDiff(const e_SrcSelector selector, const QVector* v1, const QVector* v2, const IgnoreFlags eIgnoreFlags); + void calcDiff3LineVector(Diff3LineVector& d3lv); + void calcWhiteDiff3Lines(const QVector* pldA, const QVector* pldB, const QVector* pldC, const bool bIgnoreComments); + + void calcDiff3LineListUsingAB(const DiffList* pDiffListAB); + void calcDiff3LineListUsingAC(const DiffList* pDiffListAC); + void calcDiff3LineListUsingBC(const DiffList* pDiffListBC); + + void correctManualDiffAlignment(ManualDiffHelpList* pManualDiffHelpList); + + void calcDiff3LineListTrim(const QVector* pldA, const QVector* pldB, const QVector* pldC, ManualDiffHelpList* pManualDiffHelpList); + + + LineCount recalcWordWrap(bool resetDisplayCount) + { + LineCount sumOfLines = 0; + + for(Diff3Line& d3l: *this) + { + if(resetDisplayCount) + d3l.mLinesNeededForDisplay = 1; + + d3l.mSumLinesNeededForDisplay = sumOfLines; + sumOfLines += d3l.linesNeededForDisplay(); + } + + return sumOfLines; + } + + //TODO: Add safety guards to prevent list from getting too large. Same problem as with QLinkedList. + qint32 size() const + { + if(std::list::size() > (size_t)TYPE_MAX(qint32))//explicit cast to silence gcc + { + qCDebug(kdiffMain) << "Diff3Line: List too large. size=" << std::list::size(); + Q_ASSERT(false); //Unsupported size + return 0; + } + return (qint32)std::list::size(); + } //safe for small files same limit as exited with QLinkedList. This should ultimatly be removed. + + void debugLineCheck(const LineCount size, const e_SrcSelector srcSelector) const; + + qint32 numberOfLines(bool bWordWrap) const + { + if(bWordWrap) + { + qint32 lines; + + lines = 0; + Diff3LineList::const_iterator i; + for(i = begin(); i != end(); ++i) + { + lines += i->linesNeededForDisplay(); + } + + return lines; + } + else + { + return size(); + } + } +}; + +class Diff3LineVector : public QVector +{ +}; + +struct Diff3WrapLine +{ + Diff3Line* pD3L = nullptr; + int diff3LineIndex = 0; + int wrapLineOffset = 0; + int wrapLineLength = 0; +}; + +typedef QVector Diff3WrapLineVector; + +class TotalDiffStatus +{ + public: + inline void reset() + { + bBinaryAEqC = false; + bBinaryBEqC = false; + bBinaryAEqB = false; + bTextAEqC = false; + bTextBEqC = false; + bTextAEqB = false; + nofUnsolvedConflicts = 0; + nofSolvedConflicts = 0; + nofWhitespaceConflicts = 0; + } + + inline int getUnsolvedConflicts() const { return nofUnsolvedConflicts; } + inline void setUnsolvedConflicts(const int unsolved) { nofUnsolvedConflicts = unsolved; } + + inline int getSolvedConflicts() const { return nofSolvedConflicts; } + inline void setSolvedConflicts(const int solved) { nofSolvedConflicts = solved; } + + inline int getWhitespaceConflicts() const { return nofWhitespaceConflicts; } + inline void setWhitespaceConflicts(const int wintespace) { nofWhitespaceConflicts = wintespace; } + + inline int getNonWhitespaceConflicts() const { return getUnsolvedConflicts() + getSolvedConflicts() - getWhitespaceConflicts(); } + + bool isBinaryEqualAC() const { return bBinaryAEqC; } + bool isBinaryEqualBC() const { return bBinaryBEqC; } + bool isBinaryEqualAB() const { return bBinaryAEqB; } + + void setBinaryEqualAC(const bool equal) { bBinaryAEqC = equal; } + void setBinaryEqualBC(const bool equal) { bBinaryBEqC = equal; } + void setBinaryEqualAB(const bool equal) { bBinaryAEqB = equal; } + + + bool isTextEqualAC() const { return bTextAEqC; } + bool isTextEqualBC() const { return bTextBEqC; } + bool isTextEqualAB() const { return bTextAEqB; } + + + void setTextEqualAC(const bool equal) { bTextAEqC = equal; } + void setTextEqualBC(const bool equal) { bTextBEqC = equal; } + void setTextEqualAB(const bool equal) { bTextAEqB = equal; } + + private: + bool bBinaryAEqC = false; + bool bBinaryBEqC = false; + bool bBinaryAEqB = false; + + bool bTextAEqC = false; + bool bTextBEqC = false; + bool bTextAEqB = false; + int nofUnsolvedConflicts = 0; + int nofSolvedConflicts = 0; + int nofWhitespaceConflicts = 0; +}; + +// Three corresponding ranges. (Minimum size of a valid range is one line.) +class ManualDiffHelpEntry +{ + private: + LineRef lineA1; + LineRef lineA2; + LineRef lineB1; + LineRef lineB2; + LineRef lineC1; + LineRef lineC2; + + public: + LineRef& firstLine(e_SrcSelector winIdx) + { + return winIdx == e_SrcSelector::A ? lineA1 : (winIdx == e_SrcSelector::B ? lineB1 : lineC1); + } + LineRef& lastLine(e_SrcSelector winIdx) + { + return winIdx == e_SrcSelector::A ? lineA2 : (winIdx == e_SrcSelector::B ? lineB2 : lineC2); + } + bool isLineInRange(LineRef line, e_SrcSelector winIdx) + { + return line.isValid() && line >= firstLine(winIdx) && line <= lastLine(winIdx); + } + bool operator==(const ManualDiffHelpEntry& r) const + { + return lineA1 == r.lineA1 && lineB1 == r.lineB1 && lineC1 == r.lineC1 && + lineA2 == r.lineA2 && lineB2 == r.lineB2 && lineC2 == r.lineC2; + } + + int calcManualDiffFirstDiff3LineIdx(const Diff3LineVector& d3lv); + + void getRangeForUI(const e_SrcSelector winIdx, LineRef *rangeLine1, LineRef *rangeLine2) const { + if(winIdx == e_SrcSelector::A) { + *rangeLine1 = lineA1; + *rangeLine2 = lineA2; + } + if(winIdx == e_SrcSelector::B) { + *rangeLine1 = lineB1; + *rangeLine2 = lineB2; + } + if(winIdx == e_SrcSelector::C) { + *rangeLine1 = lineC1; + *rangeLine2 = lineC2; + } + } + + inline const LineRef& getLine1(const e_SrcSelector winIdx) const { return winIdx == e_SrcSelector::A ? lineA1 : winIdx == e_SrcSelector::B ? lineB1 : lineC1;} + inline const LineRef& getLine2(const e_SrcSelector winIdx) const { return winIdx == e_SrcSelector::A ? lineA2 : winIdx == e_SrcSelector::B ? lineB2 : lineC2;} + bool isValidMove(int line1, int line2, e_SrcSelector winIdx1, e_SrcSelector winIdx2) const; +}; + +// A list of corresponding ranges +class ManualDiffHelpList: public std::list +{ + public: + Q_REQUIRED_RESULT bool isValidMove(int line1, int line2, e_SrcSelector winIdx1, e_SrcSelector winIdx2) const; + void insertEntry(e_SrcSelector winIdx, LineRef firstLine, LineRef lastLine); + + void runDiff(const QVector* p1, LineRef size1, const QVector* p2, LineRef size2, DiffList& diffList, + e_SrcSelector winIdx1, e_SrcSelector winIdx2, + const QSharedPointer &pOptions); +}; + +void calcDiff(const QString &line1, const QString &line2, DiffList& diffList, int match, int maxSearchRange); + +/** Returns the number of equivalent spaces at position outPos. +*/ +inline int tabber(int outPos, int tabSize) +{ + return tabSize - (outPos % tabSize); +} + +/** Returns a line number where the linerange [line, line+nofLines] can + be displayed best. If it fits into the currently visible range then + the returned value is the current firstLine. +*/ +int getBestFirstLine(int line, int nofLines, int firstLine, int visibleLines); + +enum e_CoordType +{ + eFileCoords, + eD3LLineCoords, + eWrapCoords +}; + +QString calcHistorySortKey(const QString& keyOrder, QRegExp& matchedRegExpr, const QStringList& parenthesesGroupList); +bool findParenthesesGroups(const QString& s, QStringList& sl); +#endif diff --git a/src/difftextwindow.cpp b/src/difftextwindow.cpp new file mode 100644 index 0000000..6a73f08 --- /dev/null +++ b/src/difftextwindow.cpp @@ -0,0 +1,2137 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#include "difftextwindow.h" + +#include "FileNameLineEdit.h" +#include "RLPainter.h" +#include "SourceData.h" // for SourceData +#include "Utils.h" // for Utils +#include "common.h" // for getAtomic, max3, min3 +#include "defmac.h" +#include "kdiff3.h" +#include "merger.h" +#include "options.h" +#include "progress.h" +#include "selection.h" + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QScrollBar* DiffTextWindow::mVScrollBar = nullptr; +QList DiffTextWindow::s_runnables; //Used in startRunables and recalWordWrap + +class RecalcWordWrapRunnable : public QRunnable +{ + private: + static QAtomicInt s_runnableCount; + DiffTextWindow* m_pDTW; + int m_visibleTextWidth; + int m_cacheIdx; + + public: + static QAtomicInt s_maxNofRunnables; + RecalcWordWrapRunnable(DiffTextWindow* p, int visibleTextWidth, int cacheIdx) + : m_pDTW(p), m_visibleTextWidth(visibleTextWidth), m_cacheIdx(cacheIdx) + { + setAutoDelete(true); + s_runnableCount.fetchAndAddOrdered(1); + } + void run() override + { + m_pDTW->recalcWordWrapHelper(0, m_visibleTextWidth, m_cacheIdx); + int newValue = s_runnableCount.fetchAndAddOrdered(-1) - 1; + g_pProgressDialog->setCurrent(s_maxNofRunnables - getAtomic(s_runnableCount)); + if(newValue == 0) + { + Q_EMIT m_pDTW->finishRecalcWordWrap(m_visibleTextWidth); + } + } +}; + +QAtomicInt RecalcWordWrapRunnable::s_runnableCount = 0; +QAtomicInt RecalcWordWrapRunnable::s_maxNofRunnables = 0; + +class WrapLineCacheData +{ + public: + WrapLineCacheData() = default; + WrapLineCacheData(int d3LineIdx, int textStart, int textLength) + : m_d3LineIdx(d3LineIdx), m_textStart(textStart), m_textLength(textLength) {} + qint32 d3LineIdx() const { return m_d3LineIdx; } + qint32 textStart() const { return m_textStart; } + qint32 textLength() const { return m_textLength; } + + private: + qint32 m_d3LineIdx = 0; + qint32 m_textStart = 0; + qint32 m_textLength = 0; +}; + +class DiffTextWindowData +{ + public: + explicit DiffTextWindowData(DiffTextWindow* p) + { + m_pDiffTextWindow = p; +#if defined(Q_OS_WIN) + m_eLineEndStyle = eLineEndStyleDos; +#else + m_eLineEndStyle = eLineEndStyleUnix; +#endif + } + + QString getString(int d3lIdx); + QString getLineString(int line); + + void writeLine( + RLPainter& p, const LineData* pld, + const DiffList* pLineDiff1, const DiffList* pLineDiff2, const LineRef& line, + const ChangeFlags whatChanged, const ChangeFlags whatChanged2, const LineRef& srcLineIdx, + int wrapLineOffset, int wrapLineLength, bool bWrapLine, const QRect& invalidRect); + + void draw(RLPainter& p, const QRect& invalidRect, int beginLine, int endLine); + + void myUpdate(int afterMilliSecs); + + int leftInfoWidth() const { return 4 + m_lineNumberWidth; } // Number of information columns on left side + int convertLineOnScreenToLineInSource(int lineOnScreen, e_CoordType coordType, bool bFirstLine); + + void prepareTextLayout(QTextLayout& textLayout, int visibleTextWidth = -1); + + bool isThreeWay() const { return KDiff3App::isTripleDiff(); }; + const QString& getFileName() { return m_filename; } + + const Diff3LineVector* getDiff3LineVector() { return m_pDiff3LineVector; } + + const QSharedPointer& getOptions() { return m_pOptions; } + + private: + //TODO: Remove friend classes after creating accessors. Please don't add new classes here + friend DiffTextWindow; + DiffTextWindow* m_pDiffTextWindow; + QTextCodec* m_pTextCodec = nullptr; + e_LineEndStyle m_eLineEndStyle; + + const QVector* m_pLineData = nullptr; + int m_size = 0; + QString m_filename; + bool m_bWordWrap = false; + int m_delayedDrawTimer = 0; + + const Diff3LineVector* m_pDiff3LineVector = nullptr; + Diff3WrapLineVector m_diff3WrapLineVector; + const ManualDiffHelpList* m_pManualDiffHelpList = nullptr; + QList> m_wrapLineCacheList; + + QSharedPointer m_pOptions; + QColor m_cThis; + QColor m_cDiff1; + QColor m_cDiff2; + QColor m_cDiffBoth; + + int m_fastSelectorLine1 = 0; + int m_fastSelectorNofLines = 0; + + e_SrcSelector m_winIdx = e_SrcSelector::None; + int m_firstLine = 0; + int m_oldFirstLine = -1; + int m_horizScrollOffset = 0; + int m_lineNumberWidth = 0; + QAtomicInt m_maxTextWidth = -1; + + Selection m_selection; + + int m_scrollDeltaX = 0; + int m_scrollDeltaY = 0; + + bool m_bMyUpdate = false; + + bool m_bSelectionInProgress = false; + QPoint m_lastKnownMousePos; + + QSharedPointer sourceData; +}; + +void DiffTextWindow::setSourceData(const QSharedPointer& inData) { d->sourceData = inData; } +bool DiffTextWindow::isThreeWay() const { return d->isThreeWay(); }; +const QString& DiffTextWindow::getFileName() const { return d->getFileName(); } + +e_SrcSelector DiffTextWindow::getWindowIndex() const { return d->m_winIdx; }; + +const QString DiffTextWindow::getEncodingDisplayString() const { return d->m_pTextCodec != nullptr ? QLatin1String(d->m_pTextCodec->name()) : QString(); } +e_LineEndStyle DiffTextWindow::getLineEndStyle() const { return d->m_eLineEndStyle; } + +const Diff3LineVector* DiffTextWindow::getDiff3LineVector() const { return d->getDiff3LineVector(); } + +qint32 DiffTextWindow::getLineNumberWidth() const { return (int)floor(log10((double)std::max(d->m_size, 1))) + 1; } + +DiffTextWindow::DiffTextWindow( + DiffTextWindowFrame* pParent, + const QSharedPointer& pOptions, + e_SrcSelector winIdx) + : QWidget(pParent) +{ + setObjectName(QString("DiffTextWindow%1").arg((int)winIdx)); + setAttribute(Qt::WA_OpaquePaintEvent); + setUpdatesEnabled(false); + + d = new DiffTextWindowData(this); + setFocusPolicy(Qt::ClickFocus); + setAcceptDrops(true); + + d->m_pOptions = pOptions; + init(QString(""), nullptr, d->m_eLineEndStyle, nullptr, 0, nullptr, nullptr); + + setMinimumSize(QSize(20, 20)); + + setUpdatesEnabled(true); + d->m_bWordWrap = false; + d->m_winIdx = winIdx; + + setFont(d->getOptions()->m_font); +} + +DiffTextWindow::~DiffTextWindow() +{ + delete d; +} + +void DiffTextWindow::init( + const QString& filename, + QTextCodec* pTextCodec, + e_LineEndStyle eLineEndStyle, + const QVector* pLineData, + int size, + const Diff3LineVector* pDiff3LineVector, + const ManualDiffHelpList* pManualDiffHelpList) +{ + reset(); + + d->m_filename = filename; + d->m_pLineData = pLineData; + d->m_size = size; + d->m_pDiff3LineVector = pDiff3LineVector; + d->m_diff3WrapLineVector.clear(); + d->m_pManualDiffHelpList = pManualDiffHelpList; + + d->m_firstLine = 0; + d->m_oldFirstLine = -1; + d->m_horizScrollOffset = 0; + d->m_scrollDeltaX = 0; + d->m_scrollDeltaY = 0; + d->m_bMyUpdate = false; + d->m_fastSelectorLine1 = 0; + d->m_fastSelectorNofLines = 0; + d->m_lineNumberWidth = 0; + d->m_maxTextWidth = -1; + + d->m_pTextCodec = pTextCodec; + d->m_eLineEndStyle = eLineEndStyle; + + update(); +} + +void DiffTextWindow::setupConnections(const KDiff3App* app) +{ + Q_ASSERT(qobject_cast(parent()) != nullptr); + + chk_connect(this, &DiffTextWindow::firstLineChanged, dynamic_cast(parent()), &DiffTextWindowFrame::setFirstLine); + chk_connect(this, &DiffTextWindow::newSelection, app, &KDiff3App::slotSelectionStart); + chk_connect(this, &DiffTextWindow::selectionEnd, app, &KDiff3App::slotSelectionEnd); + chk_connect(this, &DiffTextWindow::scrollDiffTextWindow, app, &KDiff3App::scrollDiffTextWindow); + chk_connect_q(this, &DiffTextWindow::finishRecalcWordWrap, app, &KDiff3App::slotFinishRecalcWordWrap); + + chk_connect(this, &DiffTextWindow::finishDrop, app, &KDiff3App::slotFinishDrop); + + chk_connect(this, &DiffTextWindow::statusBarMessage, app, &KDiff3App::slotStatusMsg); + + chk_connect(app, &KDiff3App::showWhiteSpaceToggled, this, static_cast(&DiffTextWindow::update)); + chk_connect(app, &KDiff3App::showLineNumbersToggled, this, static_cast(&DiffTextWindow::update)); + chk_connect(app, &KDiff3App::doRefresh, this, &DiffTextWindow::slotRefresh); + chk_connect(app, &KDiff3App::selectAll, this, &DiffTextWindow::slotSelectAll); + chk_connect(app, &KDiff3App::copy, this, &DiffTextWindow::slotCopy); + + connections.push_back(KDiff3App::allowCopy.connect(boost::bind(&DiffTextWindow::canCopy, this))); + connections.push_back(KDiff3App::getSelection.connect(boost::bind(&DiffTextWindow::getSelection, this))); +} + +void DiffTextWindow::reset() +{ + d->m_pLineData = nullptr; + d->m_size = 0; + d->m_pDiff3LineVector = nullptr; + d->m_filename = ""; + d->m_diff3WrapLineVector.clear(); +} + +void DiffTextWindow::slotRefresh() +{ + setFont(d->getOptions()->m_font); + update(); +} + +void DiffTextWindow::slotSelectAll() +{ + LineRef l; + int p = 0; // needed as dummy return values + + if(hasFocus()) + { + setSelection(0, 0, getNofLines(), 0, l, p); + } +} + +void DiffTextWindow::slotCopy() +{ + if(!hasFocus()) + return; + + const QString curSelection = getSelection(); + + if(!curSelection.isEmpty()) + { + QApplication::clipboard()->setText(curSelection, QClipboard::Clipboard); + } +} + +void DiffTextWindow::setPaintingAllowed(bool bAllowPainting) +{ + if(updatesEnabled() != bAllowPainting) + { + setUpdatesEnabled(bAllowPainting); + if(bAllowPainting) + update(); + } +} + +void DiffTextWindow::dragEnterEvent(QDragEnterEvent* dragEnterEvent) +{ + dragEnterEvent->setAccepted(dragEnterEvent->mimeData()->hasUrls() || dragEnterEvent->mimeData()->hasText()); +} + +void DiffTextWindow::dropEvent(QDropEvent* dropEvent) +{ + dropEvent->accept(); + + if(dropEvent->mimeData()->hasUrls()) + { + QList urlList = dropEvent->mimeData()->urls(); + + if(KDiff3App::shouldContinue() && !urlList.isEmpty()) + { + QString filename = Utils::urlToString(urlList.first()); + + d->sourceData->setFilename(filename); + + Q_EMIT finishDrop(); + } + } + else if(dropEvent->mimeData()->hasText()) + { + QString text = dropEvent->mimeData()->text(); + + if(KDiff3App::shouldContinue()) + { + QString error; + + error = d->sourceData->setData(text); + + if(!error.isEmpty()) + { + KMessageBox::error(this, error); + } + + Q_EMIT finishDrop(); + } + } +} + +void DiffTextWindow::printWindow(RLPainter& painter, const QRect& view, const QString& headerText, int line, int linesPerPage, const QColor& fgColor) +{ + QRect clipRect = view; + clipRect.setTop(0); + painter.setClipRect(clipRect); + painter.translate(view.left(), 0); + QFontMetrics fm = painter.fontMetrics(); + //if ( fm.width(headerText) > view.width() ) + { + // A simple wrapline algorithm + int l = 0; + for(int p = 0; p < headerText.length();) + { + QString s = headerText.mid(p); + int i; + for(i = 2; i < s.length(); ++i) + if(Utils::getHorizontalAdvance(fm, s, i) > view.width()) + { + --i; + break; + } + + painter.drawText(0, l * fm.height() + fm.ascent(), s.left(i)); + p += i; + ++l; + } + painter.setPen(fgColor); + painter.drawLine(0, view.top() - 2, view.width(), view.top() - 2); + } + + painter.translate(0, view.top()); + print(painter, view, line, linesPerPage); + painter.resetTransform(); +} + +void DiffTextWindow::setFirstLine(QtNumberType firstLine) +{ + int fontHeight = fontMetrics().lineSpacing(); + + LineRef newFirstLine = std::max(0, firstLine); + + int deltaY = fontHeight * (d->m_firstLine - newFirstLine); + + d->m_firstLine = newFirstLine; + + if(d->m_bSelectionInProgress && d->m_selection.isValidFirstLine()) + { + LineRef line; + int pos; + convertToLinePos(d->m_lastKnownMousePos.x(), d->m_lastKnownMousePos.y(), line, pos); + d->m_selection.end(line, pos); + update(); + } + else + { + scroll(0, deltaY); + } + + Q_EMIT firstLineChanged(d->m_firstLine); +} + +int DiffTextWindow::getFirstLine() +{ + return d->m_firstLine; +} + +void DiffTextWindow::setHorizScrollOffset(int horizScrollOffset) +{ + int fontWidth = Utils::getHorizontalAdvance(fontMetrics(), '0'); + int xOffset = d->leftInfoWidth() * fontWidth; + + int deltaX = d->m_horizScrollOffset - std::max(0, horizScrollOffset); + + d->m_horizScrollOffset = std::max(0, horizScrollOffset); + + if(d->m_bSelectionInProgress && d->m_selection.isValidFirstLine()) + { + LineRef line; + int pos; + convertToLinePos(d->m_lastKnownMousePos.x(), d->m_lastKnownMousePos.y(), line, pos); + d->m_selection.end(line, pos); + } + else + { + QRect r(xOffset, 0, width(), height()); + + if(d->getOptions()->m_bRightToLeftLanguage) + { + deltaX = -deltaX; + r = QRect(width() - xOffset - 2, 0, -(width()), height()).normalized(); + } + + scroll(deltaX, 0, r); + } + + update(); +} + +int DiffTextWindow::getMaxTextWidth() +{ + if(d->m_bWordWrap) + { + return getVisibleTextAreaWidth(); + } + else if(getAtomic(d->m_maxTextWidth) < 0) + { + d->m_maxTextWidth = 0; + QTextLayout textLayout(QString(), font(), this); + for(int i = 0; i < d->m_size; ++i) + { + textLayout.clearLayout(); + textLayout.setText(d->getString(i)); + d->prepareTextLayout(textLayout); + if(textLayout.maximumWidth() > getAtomic(d->m_maxTextWidth)) + d->m_maxTextWidth = qCeil(textLayout.maximumWidth()); + } + } + return getAtomic(d->m_maxTextWidth); +} + +LineCount DiffTextWindow::getNofLines() +{ + return d->m_bWordWrap ? d->m_diff3WrapLineVector.size() : d->getDiff3LineVector()->size(); +} + +int DiffTextWindow::convertLineToDiff3LineIdx(LineRef line) +{ + if(line.isValid() && d->m_bWordWrap && d->m_diff3WrapLineVector.size() > 0) + return d->m_diff3WrapLineVector[std::min((LineRef::LineType)line, d->m_diff3WrapLineVector.size() - 1)].diff3LineIndex; + else + return line; +} + +LineRef DiffTextWindow::convertDiff3LineIdxToLine(int d3lIdx) +{ + if(d->m_bWordWrap && d->getDiff3LineVector() != nullptr && d->getDiff3LineVector()->size() > 0) + return (*d->getDiff3LineVector())[std::min(d3lIdx, d->getDiff3LineVector()->size() - 1)]->sumLinesNeededForDisplay(); + else + return d3lIdx; +} + +/** Returns a line number where the linerange [line, line+nofLines] can + be displayed best. If it fits into the currently visible range then + the returned value is the current firstLine. +*/ +int getBestFirstLine(int line, int nofLines, int firstLine, int visibleLines) +{ + int newFirstLine = firstLine; + if(line < firstLine || line + nofLines + 2 > firstLine + visibleLines) + { + if(nofLines > visibleLines || nofLines <= (2 * visibleLines / 3 - 1)) + newFirstLine = line - visibleLines / 3; + else + newFirstLine = line - (visibleLines - nofLines); + } + + return newFirstLine; +} + +void DiffTextWindow::setFastSelectorRange(int line1, int nofLines) +{ + d->m_fastSelectorLine1 = line1; + d->m_fastSelectorNofLines = nofLines; + if(isVisible()) + { + int newFirstLine = getBestFirstLine( + convertDiff3LineIdxToLine(d->m_fastSelectorLine1), + convertDiff3LineIdxToLine(d->m_fastSelectorLine1 + d->m_fastSelectorNofLines) - convertDiff3LineIdxToLine(d->m_fastSelectorLine1), + d->m_firstLine, + getNofVisibleLines()); + if(newFirstLine != d->m_firstLine) + { + scrollVertically(newFirstLine - d->m_firstLine); + } + + update(); + } +} +/* + Takes the line number estimated from mouse position and converts it to the actual line in + the file. Then sets the status message accordingly. + + emits lineClicked signal. +*/ +void DiffTextWindow::showStatusLine(const LineRef lineFromPos) +{ + int d3lIdx = convertLineToDiff3LineIdx(lineFromPos); + + if(d->getDiff3LineVector() != nullptr && d3lIdx >= 0 && d3lIdx < (int)d->getDiff3LineVector()->size()) + { + const Diff3Line* pD3l = (*d->getDiff3LineVector())[d3lIdx]; + if(pD3l != nullptr) + { + LineRef actualLine = pD3l->getLineInFile(d->m_winIdx); + + QString message; + if(actualLine.isValid()) + message = i18n("File %1: Line %2", d->m_filename, actualLine + 1); + else + message = i18n("File %1: Line not available", d->m_filename); + Q_EMIT statusBarMessage(message); + + Q_EMIT lineClicked(d->m_winIdx, actualLine); + } + } +} + +void DiffTextWindow::scrollVertically(QtNumberType deltaY) +{ + mVScrollBar->setValue(mVScrollBar->value() + deltaY); +} + +void DiffTextWindow::focusInEvent(QFocusEvent* e) +{ + Q_EMIT gotFocus(); + QWidget::focusInEvent(e); +} + +void DiffTextWindow::mousePressEvent(QMouseEvent* e) +{ + if(e->button() == Qt::LeftButton) + { + LineRef line; + int pos; + convertToLinePos(e->x(), e->y(), line, pos); + + int fontWidth = Utils::getHorizontalAdvance(fontMetrics(), '0'); + int xOffset = d->leftInfoWidth() * fontWidth; + + if((!d->getOptions()->m_bRightToLeftLanguage && e->x() < xOffset) || (d->getOptions()->m_bRightToLeftLanguage && e->x() > width() - xOffset)) + { + Q_EMIT setFastSelectorLine(convertLineToDiff3LineIdx(line)); + d->m_selection.reset(); // Disable current d->m_selection + } + else + { // Selection + resetSelection(); + d->m_selection.start(line, pos); + d->m_selection.end(line, pos); + d->m_bSelectionInProgress = true; + d->m_lastKnownMousePos = e->pos(); + + showStatusLine(line); + } + } +} + +void DiffTextWindow::mouseDoubleClickEvent(QMouseEvent* e) +{ + d->m_bSelectionInProgress = false; + d->m_lastKnownMousePos = e->pos(); + if(e->button() == Qt::LeftButton) + { + LineRef line; + int pos; + convertToLinePos(e->x(), e->y(), line, pos); + + // Get the string data of the current line + QString s; + if(d->m_bWordWrap) + { + if(!line.isValid() || line >= (int)d->m_diff3WrapLineVector.size()) + return; + const Diff3WrapLine& d3wl = d->m_diff3WrapLineVector[line]; + s = d->getString(d3wl.diff3LineIndex).mid(d3wl.wrapLineOffset, d3wl.wrapLineLength); + } + else + { + if(!line.isValid() || line >= (int)d->getDiff3LineVector()->size()) + return; + s = d->getString(line); + } + + if(!s.isEmpty()) + { + int pos1, pos2; + Utils::calcTokenPos(s, pos, pos1, pos2); + + resetSelection(); + d->m_selection.start(line, pos1); + d->m_selection.end(line, pos2); + update(); + // Q_EMIT d->m_selectionEnd() happens in the mouseReleaseEvent. + showStatusLine(line); + } + } +} + +void DiffTextWindow::mouseReleaseEvent(QMouseEvent* e) +{ + d->m_bSelectionInProgress = false; + d->m_lastKnownMousePos = e->pos(); + //if ( e->button() == LeftButton ) + { + if(d->m_delayedDrawTimer) + killTimer(d->m_delayedDrawTimer); + d->m_delayedDrawTimer = 0; + if(d->m_selection.isValidFirstLine()) + { + Q_EMIT selectionEnd(); + } + } + d->m_scrollDeltaX = 0; + d->m_scrollDeltaY = 0; +} + +void DiffTextWindow::mouseMoveEvent(QMouseEvent* e) +{//Handles selection highlighting. + LineRef line; + int pos; + convertToLinePos(e->x(), e->y(), line, pos); + d->m_lastKnownMousePos = e->pos(); + + if(d->m_selection.isValidFirstLine()) + { + d->m_selection.end(line, pos); + + showStatusLine(line); + + // Scroll because mouse moved out of the window + const QFontMetrics& fm = fontMetrics(); + int fontWidth = Utils::getHorizontalAdvance(fm, '0'); + int deltaX = 0; + int deltaY = 0; + if(!d->getOptions()->m_bRightToLeftLanguage) + { + if(e->x() < d->leftInfoWidth() * fontWidth) deltaX = -1 - abs(e->x() - d->leftInfoWidth() * fontWidth) / fontWidth; + if(e->x() > width()) deltaX = +1 + abs(e->x() - width()) / fontWidth; + } + else + { + if(e->x() > width() - 1 - d->leftInfoWidth() * fontWidth) deltaX = +1 + abs(e->x() - (width() - 1 - d->leftInfoWidth() * fontWidth)) / fontWidth; + if(e->x() < fontWidth) deltaX = -1 - abs(e->x() - fontWidth) / fontWidth; + } + if(e->y() < 0) deltaY = -1 - (int)std::pow(e->y(), 2) / (int)std::pow(fm.lineSpacing(), 2); + if(e->y() > height()) deltaY = 1 + (int)std::pow(e->y() - height(), 2) / (int)std::pow(fm.lineSpacing(), 2); + if((deltaX != 0 && d->m_scrollDeltaX != deltaX) || (deltaY != 0 && d->m_scrollDeltaY != deltaY)) + { + d->m_scrollDeltaX = deltaX; + d->m_scrollDeltaY = deltaY; + Q_EMIT scrollDiffTextWindow(deltaX, deltaY); + if(d->m_delayedDrawTimer) + killTimer(d->m_delayedDrawTimer); + d->m_delayedDrawTimer = startTimer(50); + } + else + { + d->m_scrollDeltaX = deltaX; + d->m_scrollDeltaY = deltaY; + d->myUpdate(0); + } + } +} + +void DiffTextWindow::wheelEvent(QWheelEvent* pWheelEvent) +{ + QPoint delta = pWheelEvent->angleDelta(); + + //Block diagonal scrolling easily generated unintentionally with track pads. + if(delta.y() != 0 && abs(delta.y()) > abs(delta.x()) && mVScrollBar != nullptr) + { + pWheelEvent->accept(); + QCoreApplication::postEvent(mVScrollBar, new QWheelEvent(*pWheelEvent)); + } +} + +void DiffTextWindowData::myUpdate(int afterMilliSecs) +{ + if(m_delayedDrawTimer) + m_pDiffTextWindow->killTimer(m_delayedDrawTimer); + m_bMyUpdate = true; + m_delayedDrawTimer = m_pDiffTextWindow->startTimer(afterMilliSecs); +} + +void DiffTextWindow::timerEvent(QTimerEvent*) +{ + killTimer(d->m_delayedDrawTimer); + d->m_delayedDrawTimer = 0; + + if(d->m_bMyUpdate) + { + int fontHeight = fontMetrics().lineSpacing(); + + if(d->m_selection.getOldLastLine().isValid()) + { + int lastLine; + int firstLine; + if(d->m_selection.getOldFirstLine().isValid()) + { + firstLine = min3(d->m_selection.getOldFirstLine(), d->m_selection.getLastLine(), d->m_selection.getOldLastLine()); + lastLine = max3(d->m_selection.getOldFirstLine(), d->m_selection.getLastLine(), d->m_selection.getOldLastLine()); + } + else + { + firstLine = std::min(d->m_selection.getLastLine(), d->m_selection.getOldLastLine()); + lastLine = std::max(d->m_selection.getLastLine(), d->m_selection.getOldLastLine()); + } + int y1 = (firstLine - d->m_firstLine) * fontHeight; + int y2 = std::min(height(), (lastLine - d->m_firstLine + 1) * fontHeight); + + if(y1 < height() && y2 > 0) + { + QRect invalidRect = QRect(0, y1 - 1, width(), y2 - y1 + fontHeight); // Some characters in exotic exceed the regular bottom. + update(invalidRect); + } + } + + d->m_bMyUpdate = false; + } + + if(d->m_scrollDeltaX != 0 || d->m_scrollDeltaY != 0) + { + d->m_selection.end(d->m_selection.getLastLine() + d->m_scrollDeltaY, d->m_selection.getLastPos() + d->m_scrollDeltaX); + Q_EMIT scrollDiffTextWindow(d->m_scrollDeltaX, d->m_scrollDeltaY); + killTimer(d->m_delayedDrawTimer); + d->m_delayedDrawTimer = startTimer(50); + } +} + +void DiffTextWindow::resetSelection() +{ + d->m_selection.reset(); + update(); +} + +void DiffTextWindow::convertToLinePos(int x, int y, LineRef& line, int& pos) +{ + const QFontMetrics& fm = fontMetrics(); + int fontHeight = fm.lineSpacing(); + + int yOffset = -d->m_firstLine * fontHeight; + + line = (y - yOffset) / fontHeight; + if(line.isValid() && (!d->getOptions()->wordWrapOn() || line < d->m_diff3WrapLineVector.count())) + { + QString s = d->getLineString(line); + QTextLayout textLayout(s, font(), this); + d->prepareTextLayout(textLayout); + pos = textLayout.lineAt(0).xToCursor(x - textLayout.position().x()); + } + else + pos = -1; +} + +class FormatRangeHelper +{ + private: + QFont m_font; + QPen m_pen; + QColor m_background; + int m_currentPos; + + QVector m_formatRanges; + + public: + inline operator QVector() { return m_formatRanges; } + FormatRangeHelper() + { + m_pen = QColor(Qt::black); + m_background = QColor(Qt::white); + m_currentPos = 0; + } + void setFont(const QFont& f) + { + m_font = f; + } + void setPen(const QPen& pen) + { + m_pen = pen; + } + void setBackground(const QColor& background) + { + m_background = background; + } + + void next() + { + if(m_formatRanges.isEmpty() || m_formatRanges.back().format.foreground().color() != m_pen.color() || m_formatRanges.back().format.background().color() != m_background) + { + QTextLayout::FormatRange fr; + fr.length = 1; + fr.start = m_currentPos; + fr.format.setForeground(m_pen.color()); + fr.format.setBackground(m_background); + m_formatRanges.append(fr); + } + else + { + ++m_formatRanges.back().length; + } + ++m_currentPos; + } +}; + +void DiffTextWindowData::prepareTextLayout(QTextLayout& textLayout, int visibleTextWidth) +{ + QTextOption textOption; +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) + textOption.setTabStop(QFontMetricsF(m_pDiffTextWindow->font()).width(' ') * m_pOptions->m_tabSize); +#elif QT_VERSION < QT_VERSION_CHECK(5, 12, 0) + textOption.setTabStopDistance(QFontMetricsF(font()).width(' ') * m_pOptions->m_tabSize); +#else + textOption.setTabStopDistance(QFontMetricsF(m_pDiffTextWindow->font()).horizontalAdvance(' ') * m_pOptions->m_tabSize); +#endif + + if(m_pOptions->m_bShowWhiteSpaceCharacters) + textOption.setFlags(QTextOption::ShowTabsAndSpaces); + if(m_pOptions->m_bRightToLeftLanguage) + textOption.setAlignment(Qt::AlignRight); // only relevant for multi line text layout + if(visibleTextWidth >= 0) + textOption.setWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere); + + textLayout.setTextOption(textOption); + + if(m_pOptions->m_bShowWhiteSpaceCharacters) + { + // This additional format is only necessary for the tab arrow + QVector formats; + QTextLayout::FormatRange formatRange; + formatRange.start = 0; + formatRange.length = textLayout.text().length(); + formatRange.format.setFont(m_pDiffTextWindow->font()); + formats.append(formatRange); + textLayout.setFormats(formats); + } + textLayout.beginLayout(); + + int leading = m_pDiffTextWindow->fontMetrics().leading(); + int height = 0; + + int fontWidth = Utils::getHorizontalAdvance(m_pDiffTextWindow->fontMetrics(), '0'); + int xOffset = leftInfoWidth() * fontWidth - m_horizScrollOffset; + int textWidth = visibleTextWidth; + if(textWidth < 0) + textWidth = m_pDiffTextWindow->width() - xOffset; + + int indentation = 0; + while(true) + { + QTextLine line = textLayout.createLine(); + if(!line.isValid()) + break; + + height += leading; + //if ( !bFirstLine ) + // indentation = m_pDiffTextWindow->fontMetrics().width(' ') * m_pOptions->m_tabSize; + if(visibleTextWidth >= 0) + { + line.setLineWidth(visibleTextWidth - indentation); + line.setPosition(QPointF(indentation, height)); + height += qCeil(line.height()); + //bFirstLine = false; + } + else // only one line + { + line.setPosition(QPointF(indentation, height)); + break; + } + } + + textLayout.endLayout(); + if(m_pOptions->m_bRightToLeftLanguage) + textLayout.setPosition(QPointF(textWidth - textLayout.maximumWidth(), 0)); + else + textLayout.setPosition(QPointF(xOffset, 0)); +} + +/* + Don't try to use invalid rect to block drawing of lines based on there apparent horizontal dementions. + This does not always work for very long lines being scrolled horizontally. (Causes blanking of diff text area) +*/ +void DiffTextWindowData::writeLine( + RLPainter& p, + const LineData* pld, + const DiffList* pLineDiff1, + const DiffList* pLineDiff2, + const LineRef& line, + const ChangeFlags whatChanged, + const ChangeFlags whatChanged2, + const LineRef& srcLineIdx, + int wrapLineOffset, + int wrapLineLength, + bool bWrapLine, + const QRect& invalidRect) +{ + QFont normalFont = p.font(); + + const QFontMetrics& fm = p.fontMetrics(); + int fontHeight = fm.lineSpacing(); + int fontAscent = fm.ascent(); + int fontWidth = Utils::getHorizontalAdvance(fm, '0'); + + int xOffset = 0; + int yOffset = (line - m_firstLine) * fontHeight; + + int fastSelectorLine1 = m_pDiffTextWindow->convertDiff3LineIdxToLine(m_fastSelectorLine1); + int fastSelectorLine2 = m_pDiffTextWindow->convertDiff3LineIdxToLine(m_fastSelectorLine1 + m_fastSelectorNofLines) - 1; + + bool bFastSelectionRange = (line >= fastSelectorLine1 && line <= fastSelectorLine2); + QColor bgColor = m_pOptions->m_bgColor; + QColor diffBgColor = m_pOptions->m_diffBgColor; + + if(bFastSelectionRange) + { + bgColor = m_pOptions->m_currentRangeBgColor; + diffBgColor = m_pOptions->m_currentRangeDiffBgColor; + } + + if(yOffset + fontHeight < invalidRect.top() || invalidRect.bottom() < yOffset - fontHeight) + return; + + ChangeFlags changed = whatChanged; + if(pLineDiff1 != nullptr) changed |= AChanged; + if(pLineDiff2 != nullptr) changed |= BChanged; + + QColor penColor = m_pOptions->m_fgColor; + p.setPen(penColor); + if(changed == BChanged) + { + penColor = m_cDiff2; + } + else if(changed == AChanged) + { + penColor = m_cDiff1; + } + else if(changed == Both) + { + penColor = m_cDiffBoth; + } + + if(pld != nullptr) + { + // First calculate the "changed" information for each character. + int i = 0; + QString lineString = pld->getLine(); + if(!lineString.isEmpty()) + { + switch(lineString[lineString.length() - 1].unicode()) + { + case '\n': + lineString[lineString.length() - 1] = 0x00B6; + break; // "Pilcrow", "paragraph mark" + case '\r': + lineString[lineString.length() - 1] = 0x00A4; + break; // Currency sign ;0x2761 "curved stem paragraph sign ornament" + //case '\0b' : lineString[lineString.length()-1] = 0x2756; break; // some other nice looking character + } + } + QVector charChanged(pld->size()); + Merger merger(pLineDiff1, pLineDiff2); + while(!merger.isEndReached() && i < pld->size()) + { + if(i < pld->size()) + { + charChanged[i] = merger.whatChanged(); + ++i; + } + merger.next(); + } + + int outPos = 0; + + int lineLength = m_bWordWrap ? wrapLineOffset + wrapLineLength : lineString.length(); + + FormatRangeHelper frh; + + for(i = wrapLineOffset; i < lineLength; ++i) + { + penColor = m_pOptions->m_fgColor; + ChangeFlags cchanged = charChanged[i] | whatChanged; + + if(cchanged == BChanged) + { + penColor = m_cDiff2; + } + else if(cchanged == AChanged) + { + penColor = m_cDiff1; + } + else if(cchanged == Both) + { + penColor = m_cDiffBoth; + } + + if(penColor != m_pOptions->m_fgColor && whatChanged2 == NoChange && !m_pOptions->m_bShowWhiteSpace) + { + // The user doesn't want to see highlighted white space. + penColor = m_pOptions->m_fgColor; + } + + frh.setBackground(bgColor); + if(!m_selection.within(line, outPos)) + { + if(penColor != m_pOptions->m_fgColor) + { + frh.setBackground(diffBgColor); + // Setting italic font here doesn't work: Changing the font only when drawing is too late + } + + frh.setPen(penColor); + frh.next(); + frh.setFont(normalFont); + } + else + { + frh.setBackground(m_pDiffTextWindow->palette().highlight().color()); + frh.setPen(m_pDiffTextWindow->palette().highlightedText().color()); + frh.next(); + + m_selection.bSelectionContainsData = true; + } + + ++outPos; + } // end for + + QTextLayout textLayout(lineString.mid(wrapLineOffset, lineLength - wrapLineOffset), m_pDiffTextWindow->font(), m_pDiffTextWindow); + prepareTextLayout(textLayout); + textLayout.draw(&p, QPoint(0, yOffset), frh /*, const QRectF & clip = QRectF() */); + } + + p.fillRect(0, yOffset, leftInfoWidth() * fontWidth, fontHeight, m_pOptions->m_bgColor); + + xOffset = (m_lineNumberWidth + 2) * fontWidth; + int xLeft = m_lineNumberWidth * fontWidth; + p.setPen(m_pOptions->m_fgColor); + if(pld != nullptr) + { + if(m_pOptions->m_bShowLineNumbers && !bWrapLine) + { + QString num = QString::number(srcLineIdx + 1); + Q_ASSERT(!num.isEmpty()); + p.drawText(0, yOffset + fontAscent, num); + } + if(!bWrapLine || wrapLineLength > 0) + { + Qt::PenStyle wrapLinePenStyle = Qt::DotLine; + + p.setPen(QPen(m_pOptions->m_fgColor, 0, bWrapLine ? wrapLinePenStyle : Qt::SolidLine)); + p.drawLine(xOffset + 1, yOffset, xOffset + 1, yOffset + fontHeight - 1); + p.setPen(QPen(m_pOptions->m_fgColor, 0, Qt::SolidLine)); + } + } + if(penColor != m_pOptions->m_fgColor && whatChanged2 == NoChange) + { + if(m_pOptions->m_bShowWhiteSpace) + { + p.setBrushOrigin(0, 0); + p.fillRect(xLeft, yOffset, fontWidth * 2 - 1, fontHeight, QBrush(penColor, Qt::Dense5Pattern)); + } + } + else + { + p.fillRect(xLeft, yOffset, fontWidth * 2 - 1, fontHeight, penColor == m_pOptions->m_fgColor ? bgColor : penColor); + } + + if(bFastSelectionRange) + { + p.fillRect(xOffset + fontWidth - 1, yOffset, 3, fontHeight, m_pOptions->m_fgColor); + } + + // Check if line needs a manual diff help mark + ManualDiffHelpList::const_iterator ci; + for(ci = m_pManualDiffHelpList->begin(); ci != m_pManualDiffHelpList->end(); ++ci) + { + const ManualDiffHelpEntry& mdhe = *ci; + LineRef rangeLine1; + LineRef rangeLine2; + + mdhe.getRangeForUI(m_winIdx, &rangeLine1, &rangeLine2); + if(rangeLine1.isValid() && rangeLine2.isValid() && srcLineIdx >= rangeLine1 && srcLineIdx <= rangeLine2) + { + p.fillRect(xOffset - fontWidth, yOffset, fontWidth - 1, fontHeight, m_pOptions->m_manualHelpRangeColor); + break; + } + } +} + +void DiffTextWindow::paintEvent(QPaintEvent* e) +{ + QRect invalidRect = e->rect(); + if(invalidRect.isEmpty()) + return; + + if(d->getDiff3LineVector() == nullptr || (d->m_diff3WrapLineVector.empty() && d->m_bWordWrap)) + { + QPainter p(this); + p.fillRect(invalidRect, d->getOptions()->m_bgColor); + return; + } + + bool bOldSelectionContainsData = d->m_selection.bSelectionContainsData; + d->m_selection.bSelectionContainsData = false; + + int endLine = std::min(d->m_firstLine + getNofVisibleLines() + 2, getNofLines()); + + RLPainter p(this, d->getOptions()->m_bRightToLeftLanguage, width(), Utils::getHorizontalAdvance(fontMetrics(), '0')); + + p.setFont(font()); + p.QPainter::fillRect(invalidRect, d->getOptions()->m_bgColor); + + d->draw(p, invalidRect, d->m_firstLine, endLine); + p.end(); + + d->m_oldFirstLine = d->m_firstLine; + d->m_selection.clearOldSelection(); + + if(!bOldSelectionContainsData && d->m_selection.selectionContainsData()) + Q_EMIT newSelection(); +} + +void DiffTextWindow::print(RLPainter& p, const QRect&, int firstLine, int nofLinesPerPage) +{ + if(d->getDiff3LineVector() == nullptr || !updatesEnabled() || + (d->m_diff3WrapLineVector.empty() && d->m_bWordWrap)) + return; + resetSelection(); + int oldFirstLine = d->m_firstLine; + d->m_firstLine = firstLine; + QRect invalidRect = QRect(0, 0, 1000000000, 1000000000); + QColor bgColor = d->getOptions()->m_bgColor; + d->getOptions()->m_bgColor = Qt::white; + d->draw(p, invalidRect, firstLine, std::min(firstLine + nofLinesPerPage, getNofLines())); + d->getOptions()->m_bgColor = bgColor; + d->m_firstLine = oldFirstLine; +} + +void DiffTextWindowData::draw(RLPainter& p, const QRect& invalidRect, int beginLine, int endLine) +{ + if(m_pLineData == nullptr || m_pLineData->isEmpty()) return; + m_lineNumberWidth = m_pOptions->m_bShowLineNumbers ? (int)log10((double)std::max(m_size, 1)) + 1 : 0; + + if(m_winIdx == e_SrcSelector::A) + { + m_cThis = m_pOptions->m_colorA; + m_cDiff1 = m_pOptions->m_colorB; + m_cDiff2 = m_pOptions->m_colorC; + } + if(m_winIdx == e_SrcSelector::B) + { + m_cThis = m_pOptions->m_colorB; + m_cDiff1 = m_pOptions->m_colorC; + m_cDiff2 = m_pOptions->m_colorA; + } + if(m_winIdx == e_SrcSelector::C) + { + m_cThis = m_pOptions->m_colorC; + m_cDiff1 = m_pOptions->m_colorA; + m_cDiff2 = m_pOptions->m_colorB; + } + m_cDiffBoth = m_pOptions->m_colorForConflict; // Conflict color + + p.setPen(m_cThis); + + for(int line = beginLine; line < endLine; ++line) + { + int wrapLineOffset = 0; + int wrapLineLength = 0; + const Diff3Line* d3l = nullptr; + bool bWrapLine = false; + if(m_bWordWrap) + { + Diff3WrapLine& d3wl = m_diff3WrapLineVector[line]; + wrapLineOffset = d3wl.wrapLineOffset; + wrapLineLength = d3wl.wrapLineLength; + d3l = d3wl.pD3L; + bWrapLine = line > 0 && m_diff3WrapLineVector[line - 1].pD3L == d3l; + } + else + { + d3l = (*m_pDiff3LineVector)[line]; + } + DiffList* pFineDiff1; + DiffList* pFineDiff2; + ChangeFlags changed = NoChange; + ChangeFlags changed2 = NoChange; + + LineRef srcLineIdx; + d3l->getLineInfo(m_winIdx, KDiff3App::isTripleDiff(), srcLineIdx, pFineDiff1, pFineDiff2, changed, changed2); + + writeLine( + p, // QPainter + !srcLineIdx.isValid() ? nullptr : &(*m_pLineData)[srcLineIdx], // Text in this line + pFineDiff1, + pFineDiff2, + line, // Line on the screen + changed, + changed2, + srcLineIdx, + wrapLineOffset, + wrapLineLength, + bWrapLine, + invalidRect); + } +} + +QString DiffTextWindowData::getString(int d3lIdx) +{ + Q_ASSERT(!(m_pLineData != nullptr && m_pLineData->isEmpty() && m_size != 0)); + + if(m_pLineData == nullptr || m_pLineData->isEmpty() || d3lIdx < 0 || d3lIdx >= m_pDiff3LineVector->size()) + return QString(); + + const Diff3Line* d3l = (*m_pDiff3LineVector)[d3lIdx]; + DiffList* pFineDiff1; + DiffList* pFineDiff2; + ChangeFlags changed = NoChange; + ChangeFlags changed2 = NoChange; + LineRef lineIdx; + + d3l->getLineInfo(m_winIdx, KDiff3App::isTripleDiff(), lineIdx, pFineDiff1, pFineDiff2, changed, changed2); + + if(!lineIdx.isValid()) + return QString(); + + return (*m_pLineData)[lineIdx].getLine(); +} + +QString DiffTextWindowData::getLineString(int line) +{ + if(m_bWordWrap) + { + if(line < m_diff3WrapLineVector.count()) + { + int d3LIdx = m_pDiffTextWindow->convertLineToDiff3LineIdx(line); + return getString(d3LIdx).mid(m_diff3WrapLineVector[line].wrapLineOffset, m_diff3WrapLineVector[line].wrapLineLength); + } + else + return QString(); + } + else + { + return getString(line); + } +} + +void DiffTextWindow::resizeEvent(QResizeEvent* e) +{ + QSize s = e->size(); + QFontMetrics fm = fontMetrics(); + int visibleLines = s.height() / fm.lineSpacing() - 2; + int visibleColumns = s.width() / Utils::getHorizontalAdvance(fm, '0') - d->leftInfoWidth(); + if(e->size().height() != e->oldSize().height()) + Q_EMIT resizeHeightChangedSignal(visibleLines); + if(e->size().width() != e->oldSize().width()) + Q_EMIT resizeWidthChangedSignal(visibleColumns); + QWidget::resizeEvent(e); +} + +int DiffTextWindow::getNofVisibleLines() +{ + QFontMetrics fm = fontMetrics(); + int fmh = fm.lineSpacing(); + int h = height(); + return h / fmh - 1; +} + +int DiffTextWindow::getVisibleTextAreaWidth() +{ + QFontMetrics fm = fontMetrics(); + return width() - d->leftInfoWidth() * Utils::getHorizontalAdvance(fm, '0'); +} + +QString DiffTextWindow::getSelection() +{ + if(d->m_pLineData == nullptr) + return QString(); + + QString selectionString; + + int line = 0; + int lineIdx = 0; + + int it; + int vectorSize = d->m_bWordWrap ? d->m_diff3WrapLineVector.size() : d->getDiff3LineVector()->size(); + for(it = 0; it < vectorSize; ++it) + { + const Diff3Line* d3l = d->m_bWordWrap ? d->m_diff3WrapLineVector[it].pD3L : (*d->getDiff3LineVector())[it]; + + Q_ASSERT(d->m_winIdx >= e_SrcSelector::A && d->m_winIdx <= e_SrcSelector::C); + + if(d->m_winIdx == e_SrcSelector::A) + { + lineIdx = d3l->getLineA(); + } + else if(d->m_winIdx == e_SrcSelector::B) + { + lineIdx = d3l->getLineB(); + } + else if(d->m_winIdx == e_SrcSelector::C) + { + lineIdx = d3l->getLineC(); + } + + if(lineIdx != -1) + { + int size = (*d->m_pLineData)[lineIdx].size(); + QString lineString = (*d->m_pLineData)[lineIdx].getLine(); + + if(d->m_bWordWrap) + { + size = d->m_diff3WrapLineVector[it].wrapLineLength; + lineString = lineString.mid(d->m_diff3WrapLineVector[it].wrapLineOffset, size); + } + + for(int i = 0; i < size; ++i) + { + if(d->m_selection.within(line, i)) + { + selectionString += lineString[i]; + } + } + + if(d->m_selection.within(line, size) && + !(d->m_bWordWrap && it + 1 < vectorSize && d3l == d->m_diff3WrapLineVector[it + 1].pD3L)) + { +#if defined(Q_OS_WIN) + selectionString += '\r'; +#endif + selectionString += '\n'; + } + } + + ++line; + } + + return selectionString; +} + +bool DiffTextWindow::findString(const QString& s, LineRef& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive) +{ + int it = d3vLine; + int endIt = bDirDown ? d->getDiff3LineVector()->size() : -1; + int step = bDirDown ? 1 : -1; + int startPos = posInLine; + + for(; it != endIt; it += step) + { + QString line = d->getString(it); + if(!line.isEmpty()) + { + int pos = line.indexOf(s, startPos, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); + if(pos != -1) + { + d3vLine = it; + posInLine = pos; + return true; + } + + startPos = 0; + } + } + return false; +} + +void DiffTextWindow::convertD3LCoordsToLineCoords(int d3LIdx, int d3LPos, int& line, int& pos) +{ + if(d->m_bWordWrap) + { + int wrapPos = d3LPos; + int wrapLine = convertDiff3LineIdxToLine(d3LIdx); + while(wrapPos > d->m_diff3WrapLineVector[wrapLine].wrapLineLength) + { + wrapPos -= d->m_diff3WrapLineVector[wrapLine].wrapLineLength; + ++wrapLine; + } + pos = wrapPos; + line = wrapLine; + } + else + { + pos = d3LPos; + line = d3LIdx; + } +} + +void DiffTextWindow::convertLineCoordsToD3LCoords(int line, int pos, int& d3LIdx, int& d3LPos) +{ + if(d->m_bWordWrap) + { + d3LPos = pos; + d3LIdx = convertLineToDiff3LineIdx(line); + int wrapLine = convertDiff3LineIdxToLine(d3LIdx); // First wrap line belonging to this d3LIdx + while(wrapLine < line) + { + d3LPos += d->m_diff3WrapLineVector[wrapLine].wrapLineLength; + ++wrapLine; + } + } + else + { + d3LPos = pos; + d3LIdx = line; + } +} + +void DiffTextWindow::setSelection(LineRef firstLine, int startPos, LineRef lastLine, int endPos, LineRef& l, int& p) +{ + d->m_selection.reset(); + if(lastLine >= getNofLines()) + { + lastLine = getNofLines() - 1; + + const Diff3Line* d3l = (*d->getDiff3LineVector())[convertLineToDiff3LineIdx(lastLine)]; + LineRef line; + if(d->m_winIdx == e_SrcSelector::A) line = d3l->getLineA(); + if(d->m_winIdx == e_SrcSelector::B) line = d3l->getLineB(); + if(d->m_winIdx == e_SrcSelector::C) line = d3l->getLineC(); + if(line.isValid()) + endPos = (*d->m_pLineData)[line].width(d->getOptions()->m_tabSize); + } + + if(d->m_bWordWrap && d->getDiff3LineVector() != nullptr) + { + QString s1 = d->getString(firstLine); + int firstWrapLine = convertDiff3LineIdxToLine(firstLine); + int wrapStartPos = startPos; + while(wrapStartPos > d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength) + { + wrapStartPos -= d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength; + s1 = s1.mid(d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength); + ++firstWrapLine; + } + + QString s2 = d->getString(lastLine); + int lastWrapLine = convertDiff3LineIdxToLine(lastLine); + int wrapEndPos = endPos; + while(wrapEndPos > d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength) + { + wrapEndPos -= d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength; + s2 = s2.mid(d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength); + ++lastWrapLine; + } + + d->m_selection.start(firstWrapLine, wrapStartPos); + d->m_selection.end(lastWrapLine, wrapEndPos); + l = firstWrapLine; + p = wrapStartPos; + } + else + { + if(d->getDiff3LineVector() != nullptr) + { + d->m_selection.start(firstLine, startPos); + d->m_selection.end(lastLine, endPos); + l = firstLine; + p = startPos; + } + } + update(); +} + +int DiffTextWindowData::convertLineOnScreenToLineInSource(int lineOnScreen, e_CoordType coordType, bool bFirstLine) +{ + LineRef line; + if(lineOnScreen >= 0) + { + if(coordType == eWrapCoords) return lineOnScreen; + int d3lIdx = m_pDiffTextWindow->convertLineToDiff3LineIdx(lineOnScreen); + if(!bFirstLine && d3lIdx >= m_pDiff3LineVector->size()) + d3lIdx = m_pDiff3LineVector->size() - 1; + if(coordType == eD3LLineCoords) return d3lIdx; + while(!line.isValid() && d3lIdx < m_pDiff3LineVector->size() && d3lIdx >= 0) + { + const Diff3Line* d3l = (*m_pDiff3LineVector)[d3lIdx]; + if(m_winIdx == e_SrcSelector::A) line = d3l->getLineA(); + if(m_winIdx == e_SrcSelector::B) line = d3l->getLineB(); + if(m_winIdx == e_SrcSelector::C) line = d3l->getLineC(); + if(bFirstLine) + ++d3lIdx; + else + --d3lIdx; + } + Q_ASSERT(coordType == eFileCoords); + } + return line; +} + +void DiffTextWindow::getSelectionRange(LineRef* pFirstLine, LineRef* pLastLine, e_CoordType coordType) +{ + if(pFirstLine) + *pFirstLine = d->convertLineOnScreenToLineInSource(d->m_selection.beginLine(), coordType, true); + if(pLastLine) + *pLastLine = d->convertLineOnScreenToLineInSource(d->m_selection.endLine(), coordType, false); +} + +void DiffTextWindow::convertSelectionToD3LCoords() +{ + if(d->getDiff3LineVector() == nullptr || !updatesEnabled() || !isVisible() || d->m_selection.isEmpty()) + { + return; + } + + // convert the d->m_selection to unwrapped coordinates: Later restore to new coords + int firstD3LIdx, firstD3LPos; + QString s = d->getLineString(d->m_selection.beginLine()); + int firstPosInText = d->m_selection.beginPos(); + convertLineCoordsToD3LCoords(d->m_selection.beginLine(), firstPosInText, firstD3LIdx, firstD3LPos); + + int lastD3LIdx, lastD3LPos; + s = d->getLineString(d->m_selection.endLine()); + int lastPosInText = d->m_selection.endPos(); + convertLineCoordsToD3LCoords(d->m_selection.endLine(), lastPosInText, lastD3LIdx, lastD3LPos); + + d->m_selection.start(firstD3LIdx, firstD3LPos); + d->m_selection.end(lastD3LIdx, lastD3LPos); +} + +bool DiffTextWindow::startRunnables() +{ + if(s_runnables.count() == 0) + { + return false; + } + else + { + g_pProgressDialog->setStayHidden(true); + g_pProgressDialog->push(); + g_pProgressDialog->setMaxNofSteps(s_runnables.count()); + RecalcWordWrapRunnable::s_maxNofRunnables = s_runnables.count(); + g_pProgressDialog->setCurrent(0); + + for(int i = 0; i < s_runnables.count(); ++i) + { + QThreadPool::globalInstance()->start(s_runnables[i]); + } + + s_runnables.clear(); + return true; + } +} + +void DiffTextWindow::recalcWordWrap(bool bWordWrap, int wrapLineVectorSize, int visibleTextWidth) +{ + if(d->getDiff3LineVector() == nullptr || !isVisible()) + { + d->m_bWordWrap = bWordWrap; + if(!bWordWrap) d->m_diff3WrapLineVector.resize(0); + return; + } + + d->m_bWordWrap = bWordWrap; + + if(bWordWrap) + { + d->m_lineNumberWidth = d->getOptions()->m_bShowLineNumbers ? (int)log10((double)std::max(d->m_size, 1)) + 1 : 0; + + d->m_diff3WrapLineVector.resize(wrapLineVectorSize); + + if(wrapLineVectorSize == 0) + { + d->m_wrapLineCacheList.clear(); + setUpdatesEnabled(false); + for(int i = 0, j = 0; i < d->getDiff3LineVector()->size(); i += s_linesPerRunnable, ++j) + { + d->m_wrapLineCacheList.append(QVector()); + s_runnables.push_back(new RecalcWordWrapRunnable(this, visibleTextWidth, j)); + } + } + else + { + recalcWordWrapHelper(wrapLineVectorSize, visibleTextWidth, 0); + setUpdatesEnabled(true); + } + } + else + { + if(wrapLineVectorSize == 0 && getAtomic(d->m_maxTextWidth) < 0) + { + d->m_diff3WrapLineVector.resize(0); + d->m_wrapLineCacheList.clear(); + setUpdatesEnabled(false); + for(int i = 0, j = 0; i < d->getDiff3LineVector()->size(); i += s_linesPerRunnable, ++j) + { + s_runnables.push_back(new RecalcWordWrapRunnable(this, visibleTextWidth, j)); + } + } + else + { + setUpdatesEnabled(true); + } + } +} + +void DiffTextWindow::recalcWordWrapHelper(int wrapLineVectorSize, int visibleTextWidth, int cacheListIdx) +{ + if(d->m_bWordWrap) + { + if(g_pProgressDialog->wasCancelled()) + return; + if(visibleTextWidth < 0) + visibleTextWidth = getVisibleTextAreaWidth(); + else + visibleTextWidth -= d->leftInfoWidth() * Utils::getHorizontalAdvance(fontMetrics(), '0'); + int i; + int wrapLineIdx = 0; + int size = d->getDiff3LineVector()->size(); + int firstD3LineIdx = wrapLineVectorSize > 0 ? 0 : cacheListIdx * s_linesPerRunnable; + int endIdx = wrapLineVectorSize > 0 ? size : std::min(firstD3LineIdx + s_linesPerRunnable, size); + QVector& wrapLineCache = d->m_wrapLineCacheList[cacheListIdx]; + int cacheListIdx2 = 0; + QTextLayout textLayout(QString(), font(), this); + for(i = firstD3LineIdx; i < endIdx; ++i) + { + if(g_pProgressDialog->wasCancelled()) + return; + + int linesNeeded = 0; + if(wrapLineVectorSize == 0) + { + QString s = d->getString(i); + textLayout.clearLayout(); + textLayout.setText(s); + d->prepareTextLayout(textLayout, visibleTextWidth); + linesNeeded = textLayout.lineCount(); + for(int l = 0; l < linesNeeded; ++l) + { + QTextLine line = textLayout.lineAt(l); + wrapLineCache.push_back(WrapLineCacheData(i, line.textStart(), line.textLength())); + } + } + else if(wrapLineVectorSize > 0 && cacheListIdx2 < d->m_wrapLineCacheList.count()) + { + WrapLineCacheData* pWrapLineCache = d->m_wrapLineCacheList[cacheListIdx2].data(); + int cacheIdx = 0; + int clc = d->m_wrapLineCacheList.count() - 1; + int cllc = d->m_wrapLineCacheList.last().count(); + int curCount = d->m_wrapLineCacheList[cacheListIdx2].count() - 1; + int l = 0; + while((cacheListIdx2 < clc || (cacheListIdx2 == clc && cacheIdx < cllc)) && pWrapLineCache->d3LineIdx() <= i) + { + if(pWrapLineCache->d3LineIdx() == i) + { + Diff3WrapLine* pDiff3WrapLine = &d->m_diff3WrapLineVector[wrapLineIdx + l]; + pDiff3WrapLine->wrapLineOffset = pWrapLineCache->textStart(); + pDiff3WrapLine->wrapLineLength = pWrapLineCache->textLength(); + ++l; + } + if(cacheIdx < curCount) + { + ++cacheIdx; + ++pWrapLineCache; + } + else + { + ++cacheListIdx2; + if(cacheListIdx2 >= d->m_wrapLineCacheList.count()) + break; + pWrapLineCache = d->m_wrapLineCacheList[cacheListIdx2].data(); + curCount = d->m_wrapLineCacheList[cacheListIdx2].count(); + cacheIdx = 0; + } + } + linesNeeded = l; + } + + Diff3Line& d3l = *(*d->getDiff3LineVector())[i]; + if(d3l.linesNeededForDisplay() < linesNeeded) + { + Q_ASSERT(wrapLineVectorSize == 0); + d3l.setLinesNeeded(linesNeeded); + } + + if(wrapLineVectorSize > 0) + { + int j; + for(j = 0; j < d3l.linesNeededForDisplay(); ++j, ++wrapLineIdx) + { + Diff3WrapLine& d3wl = d->m_diff3WrapLineVector[wrapLineIdx]; + d3wl.diff3LineIndex = i; + d3wl.pD3L = (*d->getDiff3LineVector())[i]; + if(j >= linesNeeded) + { + d3wl.wrapLineOffset = 0; + d3wl.wrapLineLength = 0; + } + } + } + } + + if(wrapLineVectorSize > 0) + { + d->m_firstLine = std::min(d->m_firstLine, wrapLineVectorSize - 1); + d->m_horizScrollOffset = 0; + + Q_EMIT firstLineChanged(d->m_firstLine); + } + } + else // no word wrap, just calc the maximum text width + { + if(g_pProgressDialog->wasCancelled()) + return; + int size = d->getDiff3LineVector()->size(); + int firstD3LineIdx = cacheListIdx * s_linesPerRunnable; + int endIdx = std::min(firstD3LineIdx + s_linesPerRunnable, size); + + int maxTextWidth = getAtomic(d->m_maxTextWidth); // current value + QTextLayout textLayout(QString(), font(), this); + for(int i = firstD3LineIdx; i < endIdx; ++i) + { + if(g_pProgressDialog->wasCancelled()) + return; + textLayout.clearLayout(); + textLayout.setText(d->getString(i)); + d->prepareTextLayout(textLayout); + if(textLayout.maximumWidth() > maxTextWidth) + maxTextWidth = qCeil(textLayout.maximumWidth()); + } + + for(;;) + { + int prevMaxTextWidth = d->m_maxTextWidth.fetchAndStoreOrdered(maxTextWidth); + if(prevMaxTextWidth <= maxTextWidth) + break; + maxTextWidth = prevMaxTextWidth; + } + } + + if(!d->m_selection.isEmpty() && (!d->m_bWordWrap || wrapLineVectorSize > 0)) + { + // Assume unwrapped coordinates + //( Why? ->Conversion to unwrapped coords happened a few lines above in this method. + // Also see KDiff3App::recalcWordWrap() on the role of wrapLineVectorSize) + + // Wrap them now. + + // convert the d->m_selection to unwrapped coordinates. + int firstLine, firstPos; + convertD3LCoordsToLineCoords(d->m_selection.beginLine(), d->m_selection.beginPos(), firstLine, firstPos); + + int lastLine, lastPos; + convertD3LCoordsToLineCoords(d->m_selection.endLine(), d->m_selection.endPos(), lastLine, lastPos); + + d->m_selection.start(firstLine, firstPos); + d->m_selection.end(lastLine, lastPos); + } +} + +class DiffTextWindowFrameData +{ + public: + DiffTextWindowFrameData(DiffTextWindowFrame* frame, const QSharedPointer& pOptions, const e_SrcSelector winIdx) + { + m_winIdx = winIdx; + + m_pOptions = pOptions; + m_pTopLineWidget = new QWidget(frame); + m_pFileSelection = new FileNameLineEdit(m_pTopLineWidget); + m_pBrowseButton = new QPushButton("...", m_pTopLineWidget); + m_pBrowseButton->setFixedWidth(30); + + m_pFileSelection->setAcceptDrops(true); + + m_pLabel = new QLabel("A:", m_pTopLineWidget); + m_pTopLine = new QLabel(m_pTopLineWidget); + } + + const QPushButton* getBrowseButton() const { return m_pBrowseButton; } + const FileNameLineEdit* getFileSelectionField() const { return m_pFileSelection; } + const QWidget* getTopLineWidget() const { return m_pTopLineWidget; } + const QLabel* getLabel() const { return m_pLabel; } + + const QSharedPointer getOptions() { return m_pOptions; } + + private: + friend DiffTextWindowFrame; + DiffTextWindow* m_pDiffTextWindow; + FileNameLineEdit* m_pFileSelection; + QPushButton* m_pBrowseButton; + QSharedPointer m_pOptions; + QLabel* m_pLabel; + QLabel* m_pTopLine; + QLabel* m_pEncoding; + QLabel* m_pLineEndStyle; + QWidget* m_pTopLineWidget; + e_SrcSelector m_winIdx; + + QSharedPointer mSourceData; +}; + +DiffTextWindowFrame::DiffTextWindowFrame(QWidget* pParent, const QSharedPointer& pOptions, e_SrcSelector winIdx, const QSharedPointer& psd) + : QWidget(pParent) +{ + d = new DiffTextWindowFrameData(this, pOptions, winIdx); + d->mSourceData = psd; + setAutoFillBackground(true); + chk_connect(d->getBrowseButton(), &QPushButton::clicked, this, &DiffTextWindowFrame::slotBrowseButtonClicked); + chk_connect(d->getFileSelectionField(), &QLineEdit::returnPressed, this, &DiffTextWindowFrame::slotReturnPressed); + + d->m_pDiffTextWindow = new DiffTextWindow(this, pOptions, winIdx); + d->m_pDiffTextWindow->setSourceData(psd); + QVBoxLayout* pVTopLayout = new QVBoxLayout(const_cast(d->getTopLineWidget())); + pVTopLayout->setContentsMargins(2, 2, 2, 2); + pVTopLayout->setSpacing(0); + QHBoxLayout* pHL = new QHBoxLayout(); + QHBoxLayout* pHL2 = new QHBoxLayout(); + pVTopLayout->addLayout(pHL); + pVTopLayout->addLayout(pHL2); + + // Upper line: + pHL->setContentsMargins(0, 0, 0, 0); + pHL->setSpacing(2); + + pHL->addWidget(const_cast(d->getLabel()), 0); + pHL->addWidget(const_cast(d->getFileSelectionField()), 1); + pHL->addWidget(const_cast(d->getBrowseButton()), 0); + pHL->addWidget(d->m_pTopLine, 0); + + // Lower line + pHL2->setContentsMargins(0, 0, 0, 0); + pHL2->setSpacing(2); + pHL2->addWidget(d->m_pTopLine, 0); + d->m_pEncoding = new EncodingLabel(i18n("Encoding:"), psd, pOptions); + //EncodeLabel::EncodingChanged should be handled asyncroniously. + chk_connect_q((EncodingLabel*)d->m_pEncoding, &EncodingLabel::encodingChanged, this, &DiffTextWindowFrame::slotEncodingChanged); + + d->m_pLineEndStyle = new QLabel(i18n("Line end style:")); + pHL2->addWidget(d->m_pEncoding); + pHL2->addWidget(d->m_pLineEndStyle); + + QVBoxLayout* pVL = new QVBoxLayout(this); + pVL->setContentsMargins(0, 0, 0, 0); + pVL->setSpacing(0); + pVL->addWidget(const_cast(d->getTopLineWidget()), 0); + pVL->addWidget(d->m_pDiffTextWindow, 1); + + d->m_pDiffTextWindow->installEventFilter(this); + d->m_pFileSelection->installEventFilter(this); + d->m_pBrowseButton->installEventFilter(this); + init(); +} + +DiffTextWindowFrame::~DiffTextWindowFrame() +{ + delete d; +} + +void DiffTextWindowFrame::init() +{ + DiffTextWindow* pDTW = d->m_pDiffTextWindow; + if(pDTW) + { + QString s = QDir::toNativeSeparators(pDTW->getFileName()); + d->m_pFileSelection->setText(s); + QString winId = pDTW->getWindowIndex() == e_SrcSelector::A ? (pDTW->isThreeWay() ? i18n("A (Base)") : i18n("A")) : (pDTW->getWindowIndex() == e_SrcSelector::B ? i18n("B") : i18n("C")); + d->m_pLabel->setText(winId + ':'); + d->m_pEncoding->setText(i18n("Encoding: %1", pDTW->getEncodingDisplayString())); + d->m_pLineEndStyle->setText(i18n("Line end style: %1", pDTW->getLineEndStyle() == eLineEndStyleDos ? i18n("DOS") : i18n("Unix"))); + } +} + +void DiffTextWindowFrame::setupConnections(const KDiff3App* app) +{ + chk_connect(this, &DiffTextWindowFrame::fileNameChanged, app, &KDiff3App::slotFileNameChanged); + chk_connect(this, &DiffTextWindowFrame::encodingChanged, app, &KDiff3App::slotEncodingChanged); + d->mSourceData->setupConnections(); +} + +// Search for the first visible line (search loop needed when no line exists for this file.) +LineRef DiffTextWindow::calcTopLineInFile(const LineRef firstLine) +{ + LineRef currentLine; + for(int i = convertLineToDiff3LineIdx(firstLine); i < (int)d->getDiff3LineVector()->size(); ++i) + { + const Diff3Line* d3l = (*d->getDiff3LineVector())[i]; + currentLine = d3l->getLineInFile(d->m_winIdx); + if(currentLine.isValid()) break; + } + return currentLine; +} + +void DiffTextWindowFrame::setFirstLine(QtNumberType firstLine) +{ + DiffTextWindow* pDTW = d->m_pDiffTextWindow; + if(pDTW && pDTW->getDiff3LineVector()) + { + QString s = i18n("Top line"); + int lineNumberWidth = pDTW->getLineNumberWidth(); + + LineRef topVisiableLine = pDTW->calcTopLineInFile(firstLine); + + int w = Utils::getHorizontalAdvance(d->m_pTopLine->fontMetrics(), s + ' ' + QString().fill('0', lineNumberWidth)); + d->m_pTopLine->setMinimumWidth(w); + + if(!topVisiableLine.isValid()) + s = i18n("End"); + else + s += ' ' + QString::number(topVisiableLine + 1); + + d->m_pTopLine->setText(s); + d->m_pTopLine->repaint(); + } +} + +DiffTextWindow* DiffTextWindowFrame::getDiffTextWindow() +{ + return d->m_pDiffTextWindow; +} + +bool DiffTextWindowFrame::eventFilter(QObject* o, QEvent* e) +{ + Q_UNUSED(o); + if(e->type() == QEvent::FocusIn || e->type() == QEvent::FocusOut) + { + QColor c1 = d->getOptions()->m_bgColor; + QColor c2; + if(d->m_winIdx == e_SrcSelector::A) + c2 = d->getOptions()->m_colorA; + else if(d->m_winIdx == e_SrcSelector::B) + c2 = d->getOptions()->m_colorB; + else if(d->m_winIdx == e_SrcSelector::C) + c2 = d->getOptions()->m_colorC; + + QPalette p = d->m_pTopLineWidget->palette(); + if(e->type() == QEvent::FocusOut) + std::swap(c1, c2); + + p.setColor(QPalette::Window, c2); + setPalette(p); + + p.setColor(QPalette::WindowText, c1); + d->m_pLabel->setPalette(p); + d->m_pTopLine->setPalette(p); + d->m_pEncoding->setPalette(p); + d->m_pLineEndStyle->setPalette(p); + } + + return false; +} + +void DiffTextWindowFrame::slotReturnPressed() +{ + DiffTextWindow* pDTW = d->m_pDiffTextWindow; + if(pDTW->getFileName() != d->m_pFileSelection->text()) + { + Q_EMIT fileNameChanged(d->m_pFileSelection->text(), pDTW->getWindowIndex()); + } +} + +void DiffTextWindowFrame::slotBrowseButtonClicked() +{ + QString current = d->m_pFileSelection->text(); + + QUrl newURL = QFileDialog::getOpenFileUrl(this, i18n("Open File"), QUrl::fromUserInput(current, QString(), QUrl::AssumeLocalFile)); + if(!newURL.isEmpty()) + { + DiffTextWindow* pDTW = d->m_pDiffTextWindow; + Q_EMIT fileNameChanged(newURL.url(), pDTW->getWindowIndex()); + } +} + +EncodingLabel::EncodingLabel(const QString& text, const QSharedPointer& pSD, const QSharedPointer& pOptions) + : QLabel(text) +{ + m_pOptions = pOptions; + m_pSourceData = pSD; + m_pContextEncodingMenu = nullptr; + setMouseTracking(true); +} + +void EncodingLabel::mouseMoveEvent(QMouseEvent*) +{ + // When there is no data to display or it came from clipboard, + // we will be use UTF-8 only, + // in that case there is no possibility to change the encoding in the SourceData + // so, we should hide the HandCursor and display usual ArrowCursor + if(m_pSourceData->isFromBuffer() || m_pSourceData->isEmpty()) + setCursor(QCursor(Qt::ArrowCursor)); + else + setCursor(QCursor(Qt::PointingHandCursor)); +} + +void EncodingLabel::mousePressEvent(QMouseEvent*) +{ + if(!(m_pSourceData->isFromBuffer() || m_pSourceData->isEmpty())) + { + delete m_pContextEncodingMenu; + m_pContextEncodingMenu = new QMenu(this); + QMenu* pContextEncodingSubMenu = new QMenu(m_pContextEncodingMenu); + + int currentTextCodecEnum = m_pSourceData->getEncoding()->mibEnum(); // the codec that will be checked in the context menu + const QList mibs = QTextCodec::availableMibs(); + QList codecEnumList; + + // Adding "main" encodings + insertCodec(i18n("Unicode, 8 bit"), QTextCodec::codecForName("UTF-8"), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum); + if(QTextCodec::codecForName("System")) + { + insertCodec(QString(), QTextCodec::codecForName("System"), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum); + } + + // Adding recent encodings + if(m_pOptions != nullptr) + { + const QStringList& recentEncodings = m_pOptions->m_recentEncodings; + for(const QString& s : recentEncodings) + { + insertCodec("", QTextCodec::codecForName(s.toLatin1()), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum); + } + } + // Submenu to add the rest of available encodings + pContextEncodingSubMenu->setTitle(i18n("Other")); + for(int i : mibs) + { + QTextCodec* c = QTextCodec::codecForMib(i); + if(c != nullptr) + insertCodec("", c, codecEnumList, pContextEncodingSubMenu, currentTextCodecEnum); + } + + m_pContextEncodingMenu->addMenu(pContextEncodingSubMenu); + + m_pContextEncodingMenu->exec(QCursor::pos()); + } +} + +void EncodingLabel::insertCodec(const QString& visibleCodecName, QTextCodec* pCodec, QList& codecEnumList, QMenu* pMenu, int currentTextCodecEnum) const +{ + int CodecMIBEnum = pCodec->mibEnum(); + if(pCodec != nullptr && !codecEnumList.contains(CodecMIBEnum)) + { + QAction* pAction = new QAction(pMenu); // menu takes ownership, so deleting the menu deletes the action too. + QByteArray nameArray = pCodec->name(); + QLatin1String codecName = QLatin1String(nameArray); + + pAction->setText(visibleCodecName.isEmpty() ? codecName : visibleCodecName + QLatin1String(" (") + codecName + QLatin1String(")")); + pAction->setData(CodecMIBEnum); + pAction->setCheckable(true); + if(currentTextCodecEnum == CodecMIBEnum) + pAction->setChecked(true); + pMenu->addAction(pAction); + chk_connect(pAction, &QAction::triggered, this, &EncodingLabel::slotSelectEncoding); + codecEnumList.append(CodecMIBEnum); + } +} + +void EncodingLabel::slotSelectEncoding() +{ + QAction* pAction = qobject_cast(sender()); + if(pAction) + { + QTextCodec* pCodec = QTextCodec::codecForMib(pAction->data().toInt()); + if(pCodec != nullptr) + { + QString s(QLatin1String(pCodec->name())); + QStringList& recentEncodings = m_pOptions->m_recentEncodings; + if(!recentEncodings.contains(s) && s != "UTF-8" && s != "System") + { + int itemsToRemove = recentEncodings.size() - m_maxRecentEncodings + 1; + for(int i = 0; i < itemsToRemove; ++i) + { + recentEncodings.removeFirst(); + } + recentEncodings.append(s); + } + } + + Q_EMIT encodingChanged(pCodec); + } +} diff --git a/src/difftextwindow.h b/src/difftextwindow.h new file mode 100644 index 0000000..6caf7b5 --- /dev/null +++ b/src/difftextwindow.h @@ -0,0 +1,218 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#ifndef DIFFTEXTWINDOW_H +#define DIFFTEXTWINDOW_H + +#include "diff.h" + +#include +#include // for QSharedPointer +#include // for QString + +#include + +class QMenu; +class RecalcWordWrapRunnable; +class QScrollBar; +class QStatusBar; +class Options; +class DiffTextWindowData; +class DiffTextWindowFrame; +class EncodingLabel; +class RLPainter; + +class KDiff3App; + +class DiffTextWindow : public QWidget +{ + Q_OBJECT + public: + //Using this as a scoped global + static QScrollBar* mVScrollBar; + + DiffTextWindow(DiffTextWindowFrame* pParent, const QSharedPointer &pOptions, e_SrcSelector winIdx); + ~DiffTextWindow() override; + void init( + const QString& fileName, + QTextCodec* pTextCodec, + e_LineEndStyle eLineEndStyle, + const QVector* pLineData, + int size, + const Diff3LineVector* pDiff3LineVector, + const ManualDiffHelpList* pManualDiffHelpList + ); + + void setupConnections(const KDiff3App *app); + + void reset(); + void convertToLinePos(int x, int y, LineRef& line, int& pos); + + QString getSelection(); + int getFirstLine(); + LineRef calcTopLineInFile(const LineRef firstLine); + + int getMaxTextWidth(); + LineCount getNofLines(); + int getNofVisibleLines(); + int getVisibleTextAreaWidth(); + + int convertLineToDiff3LineIdx(LineRef line); + LineRef convertDiff3LineIdxToLine(int d3lIdx); + + void convertD3LCoordsToLineCoords(int d3LIdx, int d3LPos, int& line, int& pos); + void convertLineCoordsToD3LCoords(int line, int pos, int& d3LIdx, int& d3LPos); + + void convertSelectionToD3LCoords(); + + bool findString(const QString& s, LineRef& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive); + void setSelection(LineRef firstLine, int startPos, LineRef lastLine, int endPos, LineRef& l, int& p); + void getSelectionRange(LineRef* firstLine, LineRef* lastLine, e_CoordType coordType); + + void setPaintingAllowed(bool bAllowPainting); + void recalcWordWrap(bool bWordWrap, int wrapLineVectorSize, int visibleTextWidth); + void recalcWordWrapHelper(int wrapLineVectorSize, int visibleTextWidth, int cacheListIdx); + + void printWindow(RLPainter& painter, const QRect& view, const QString& headerText, int line, int linesPerPage, const QColor& fgColor); + void print(RLPainter& painter, const QRect& r, int firstLine, int nofLinesPerPage); + + static bool startRunnables(); + + bool isThreeWay() const; + const QString& getFileName() const; + + e_SrcSelector getWindowIndex() const; + + const QString getEncodingDisplayString() const; + e_LineEndStyle getLineEndStyle() const; + const Diff3LineVector* getDiff3LineVector() const; + + qint32 getLineNumberWidth() const; + + void setSourceData(const QSharedPointer& inData); + + void scrollVertically(QtNumberType deltaY); + Q_SIGNALS: + void statusBarMessage(const QString& message); + void resizeHeightChangedSignal(int nofVisibleLines); + void resizeWidthChangedSignal(int nofVisibleColumns); + void scrollDiffTextWindow(int deltaX, int deltaY); + void newSelection(); + void selectionEnd(); + void setFastSelectorLine(LineIndex line); + void gotFocus(); + void lineClicked(e_SrcSelector winIdx, LineRef line); + + void finishRecalcWordWrap(int visibleTextWidthForPrinting); + + void finishDrop(); + + void firstLineChanged(QtNumberType firstLine); + public Q_SLOTS: + void setFirstLine(QtNumberType line); + void setHorizScrollOffset(int horizScrollOffset); + void resetSelection(); + void setFastSelectorRange(int line1, int nofLines); + void slotRefresh(); + + void slotSelectAll(); + + void slotCopy(); + + protected: + void mousePressEvent(QMouseEvent*) override; + void mouseReleaseEvent(QMouseEvent*) override; + void mouseMoveEvent(QMouseEvent*) override; + void mouseDoubleClickEvent(QMouseEvent* e) override; + + void wheelEvent(QWheelEvent*) override; + + void paintEvent(QPaintEvent*) override; + void dragEnterEvent(QDragEnterEvent* dragEnterEvent) override; + + void dropEvent(QDropEvent* dropEvent) override; + void focusInEvent(QFocusEvent* e) override; + + void resizeEvent(QResizeEvent*) override; + void timerEvent(QTimerEvent*) override; + + private: + static QList s_runnables; + static constexpr int s_linesPerRunnable = 2000; + + /* + This list exists solely to auto disconnect boost signals. + */ + std::list connections; + + DiffTextWindowData* d; + void showStatusLine(const LineRef lineFromPos); + + bool canCopy() { return hasFocus() && !getSelection().isEmpty(); } +}; + +class DiffTextWindowFrameData; + +class DiffTextWindowFrame : public QWidget +{ + Q_OBJECT + public: + DiffTextWindowFrame(QWidget* pParent, const QSharedPointer &pOptions, e_SrcSelector winIdx, const QSharedPointer &psd); + ~DiffTextWindowFrame() override; + DiffTextWindow* getDiffTextWindow(); + void init(); + + void setupConnections(const KDiff3App *app); + + Q_SIGNALS: + void fileNameChanged(const QString&, e_SrcSelector); + void encodingChanged(QTextCodec*); + + public Q_SLOTS: + void setFirstLine(QtNumberType firstLine); + + protected: + bool eventFilter(QObject*, QEvent*) override; + //void paintEvent(QPaintEvent*); + private Q_SLOTS: + void slotReturnPressed(); + void slotBrowseButtonClicked(); + + void slotEncodingChanged(QTextCodec* c) { Q_EMIT encodingChanged(c); }; //relay signal from encoding label + + private: + DiffTextWindowFrameData* d; +}; + +class EncodingLabel : public QLabel +{ + Q_OBJECT + public: + EncodingLabel(const QString& text, const QSharedPointer &psd, const QSharedPointer &pOptions); + + protected: + void mouseMoveEvent(QMouseEvent* ev) override; + void mousePressEvent(QMouseEvent* ev) override; + + Q_SIGNALS: + void encodingChanged(QTextCodec*); + + private Q_SLOTS: + void slotSelectEncoding(); + + private: + QMenu* m_pContextEncodingMenu; + QSharedPointer m_pSourceData; //SourceData to get access to "isEmpty()" and "isFromBuffer()" functions + static const int m_maxRecentEncodings = 5; + QSharedPointer m_pOptions; + + void insertCodec(const QString& visibleCodecName, QTextCodec* pCodec, QList& CodecEnumList, QMenu* pMenu, int currentTextCodecEnum) const; +}; + +#endif diff --git a/src/directorymergewindow.cpp b/src/directorymergewindow.cpp new file mode 100644 index 0000000..87856f0 --- /dev/null +++ b/src/directorymergewindow.cpp @@ -0,0 +1,3083 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#include "directorymergewindow.h" + +#include "DirectoryInfo.h" +#include "MergeFileInfos.h" +#include "PixMapUtils.h" +#include "Utils.h" +#include "guiutils.h" +#include "kdiff3.h" +#include "options.h" +#include "progress.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +struct DirectoryMergeWindow::t_ItemInfo { + bool bExpanded; + bool bOperationComplete; + QString status; + e_MergeOperation eMergeOperation; +}; + +class StatusInfo : public QDialog +{ + private: + QTextEdit* m_pTextEdit; + + public: + explicit StatusInfo(QWidget* pParent): QDialog(pParent) + { + QVBoxLayout* pVLayout = new QVBoxLayout(this); + m_pTextEdit = new QTextEdit(this); + pVLayout->addWidget(m_pTextEdit); + setObjectName("StatusInfo"); + setWindowFlags(Qt::Dialog); + m_pTextEdit->setWordWrapMode(QTextOption::NoWrap); + m_pTextEdit->setReadOnly(true); + QDialogButtonBox* box = new QDialogButtonBox(QDialogButtonBox::Close, this); + chk_connect(box, &QDialogButtonBox::rejected, this, &QDialog::accept); + pVLayout->addWidget(box); + } + + bool isEmpty() + { + return m_pTextEdit->toPlainText().isEmpty(); + } + + void addText(const QString& s) + { + m_pTextEdit->append(s); + } + + void clear() + { + m_pTextEdit->clear(); + } + + void setVisible(bool bVisible) override + { + if(bVisible) + { + m_pTextEdit->moveCursor(QTextCursor::End); + m_pTextEdit->moveCursor(QTextCursor::StartOfLine); + m_pTextEdit->ensureCursorVisible(); + } + + QDialog::setVisible(bVisible); + if(bVisible) + setWindowState(windowState() | Qt::WindowMaximized); + } +}; + +enum Columns +{ + s_NameCol = 0, + s_ACol = 1, + s_BCol = 2, + s_CCol = 3, + s_OpCol = 4, + s_OpStatusCol = 5, + s_UnsolvedCol = 6, // Number of unsolved conflicts (for 3 input files) + s_SolvedCol = 7, // Number of auto-solvable conflicts (for 3 input files) + s_NonWhiteCol = 8, // Number of nonwhite deltas (for 2 input files) + s_WhiteCol = 9 // Number of white deltas (for 2 input files) +}; + +static Qt::CaseSensitivity s_eCaseSensitivity = Qt::CaseSensitive; + +class DirectoryMergeWindow::DirectoryMergeWindowPrivate : public QAbstractItemModel +{ + friend class DirMergeItem; + + public: + explicit DirectoryMergeWindowPrivate(DirectoryMergeWindow* pDMW) + { + mWindow = pDMW; + m_pStatusInfo = new StatusInfo(mWindow); + m_pStatusInfo->hide(); + } + ~DirectoryMergeWindowPrivate() override + { + delete m_pRoot; + } + + bool init(const QSharedPointer& dirInfo, bool bDirectoryMerge, bool bReload); + + // Implement QAbstractItemModel + QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; + + //Qt::ItemFlags flags ( const QModelIndex & index ) const + QModelIndex parent(const QModelIndex& index) const override + { + MergeFileInfos* pMFI = getMFI(index); + if(pMFI == nullptr || pMFI == m_pRoot || pMFI->parent() == m_pRoot) + return QModelIndex(); + + MergeFileInfos* pParentsParent = pMFI->parent()->parent(); + return createIndex(pParentsParent->children().indexOf(pMFI->parent()), 0, pMFI->parent()); + } + + int rowCount(const QModelIndex& parent = QModelIndex()) const override + { + MergeFileInfos* pParentMFI = getMFI(parent); + if(pParentMFI != nullptr) + return pParentMFI->children().count(); + else + return m_pRoot->children().count(); + } + + int columnCount(const QModelIndex& /*parent*/) const override + { + return 10; + } + + QModelIndex index(int row, int column, const QModelIndex& parent) const override + { + MergeFileInfos* pParentMFI = getMFI(parent); + if(pParentMFI == nullptr && row < m_pRoot->children().count()) + return createIndex(row, column, m_pRoot->children()[row]); + else if(pParentMFI != nullptr && row < pParentMFI->children().count()) + return createIndex(row, column, pParentMFI->children()[row]); + else + return QModelIndex(); + } + + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; + + void sort(int column, Qt::SortOrder order) override; + + void selectItemAndColumn(const QModelIndex& mi, bool bContextMenu); + + void setOpStatus(const QModelIndex& mi, e_OperationStatus eOpStatus) + { + if(MergeFileInfos* pMFI = getMFI(mi)) + { + pMFI->setOpStatus(eOpStatus); + Q_EMIT dataChanged(mi, mi); + } + } + + QModelIndex nextSibling(const QModelIndex& mi); + + // private data and helper methods + MergeFileInfos* getMFI(const QModelIndex& mi) const + { + if(mi.isValid()) + return (MergeFileInfos*)mi.internalPointer(); + else + return nullptr; + } + + bool isThreeWay() const + { + if(rootMFI() == nullptr) return false; + return rootMFI()->isThreeWay(); + } + + MergeFileInfos* rootMFI() const { return m_pRoot; } + + void calcDirStatus(bool bThreeDirs, const QModelIndex& mi, + int& nofFiles, int& nofDirs, int& nofEqualFiles, int& nofManualMerges); + + void mergeContinue(bool bStart, bool bVerbose); + + void prepareListView(ProgressProxy& pp); + void calcSuggestedOperation(const QModelIndex& mi, e_MergeOperation eDefaultMergeOp); + void setAllMergeOperations(e_MergeOperation eDefaultOperation); + + bool canContinue(); + QModelIndex treeIterator(QModelIndex mi, bool bVisitChildren = true, bool bFindInvisible = false); + void prepareMergeStart(const QModelIndex& miBegin, const QModelIndex& miEnd, bool bVerbose); + bool executeMergeOperation(MergeFileInfos& mfi, bool& bSingleFileMerge); + + void scanDirectory(const QString& dirName, t_DirectoryList& dirList); + void scanLocalDirectory(const QString& dirName, t_DirectoryList& dirList); + + void setMergeOperation(const QModelIndex& mi, e_MergeOperation eMergeOp, bool bRecursive = true); + bool isDir(const QModelIndex& mi) const; + QString getFileName(const QModelIndex& mi) const; + + bool copyFLD(const QString& srcName, const QString& destName); + bool deleteFLD(const QString& name, bool bCreateBackup); + bool makeDir(const QString& name, bool bQuiet = false); + bool renameFLD(const QString& srcName, const QString& destName); + bool mergeFLD(const QString& nameA, const QString& nameB, const QString& nameC, + const QString& nameDest, bool& bSingleFileMerge); + + void buildMergeMap(const QSharedPointer& dirInfo); + + private: + class FileKey + { + private: + const FileAccess* m_pFA; + + public: + explicit FileKey(const FileAccess& fa) + : m_pFA(&fa) {} + + quint32 getParents(const FileAccess* pFA, const FileAccess* v[], quint32 maxSize) const + { + quint32 s = 0; + for(s = 0; pFA->parent() != nullptr; pFA = pFA->parent(), ++s) + { + if(s == maxSize) + break; + v[s] = pFA; + } + return s; + } + + // This is essentially the same as + // int r = filePath().compare( fa.filePath() ) + // if ( r<0 ) return true; + // if ( r==0 ) return m_col < fa.m_col; + // return false; + bool operator<(const FileKey& fk) const + { + const FileAccess* v1[100]; + const FileAccess* v2[100]; + quint32 v1Size = getParents(m_pFA, v1, 100); + quint32 v2Size = getParents(fk.m_pFA, v2, 100); + + for(quint32 i = 0; i < v1Size && i < v2Size; ++i) + { + int r = v1[v1Size - i - 1]->fileName().compare(v2[v2Size - i - 1]->fileName(), s_eCaseSensitivity); + if(r < 0) + return true; + else if(r > 0) + return false; + } + + return v1Size < v2Size; + } + }; + + typedef QMap t_fileMergeMap; + + MergeFileInfos* m_pRoot = new MergeFileInfos(); + + t_fileMergeMap m_fileMergeMap; + + public: + DirectoryMergeWindow* mWindow; + QSharedPointer m_pOptions = nullptr; + + bool m_bFollowDirLinks = false; + bool m_bFollowFileLinks = false; + bool m_bSimulatedMergeStarted = false; + bool m_bRealMergeStarted = false; + bool m_bError = false; + bool m_bSyncMode = false; + bool m_bDirectoryMerge = false; // if true, then merge is the default operation, otherwise it's diff. + bool m_bCaseSensitive = true; + bool m_bUnfoldSubdirs = false; + bool m_bSkipDirStatus = false; + bool m_bScanning = false; // true while in init() + + DirectoryMergeInfo* m_pDirectoryMergeInfo = nullptr; + StatusInfo* m_pStatusInfo = nullptr; + + typedef std::list MergeItemList; // linked list + MergeItemList m_mergeItemList; + MergeItemList::iterator m_currentIndexForOperation; + + QModelIndex m_selection1Index; + QModelIndex m_selection2Index; + QModelIndex m_selection3Index; + + QPointer m_pDirStartOperation; + QPointer m_pDirRunOperationForCurrentItem; + QPointer m_pDirCompareCurrent; + QPointer m_pDirMergeCurrent; + QPointer m_pDirRescan; + QPointer m_pDirChooseAEverywhere; + QPointer m_pDirChooseBEverywhere; + QPointer m_pDirChooseCEverywhere; + QPointer m_pDirAutoChoiceEverywhere; + QPointer m_pDirDoNothingEverywhere; + QPointer m_pDirFoldAll; + QPointer m_pDirUnfoldAll; + + KToggleAction* m_pDirShowIdenticalFiles; + KToggleAction* m_pDirShowDifferentFiles; + KToggleAction* m_pDirShowFilesOnlyInA; + KToggleAction* m_pDirShowFilesOnlyInB; + KToggleAction* m_pDirShowFilesOnlyInC; + + KToggleAction* m_pDirSynchronizeDirectories; + KToggleAction* m_pDirChooseNewerFiles; + + QPointer m_pDirCompareExplicit; + QPointer m_pDirMergeExplicit; + + QPointer m_pDirCurrentDoNothing; + QPointer m_pDirCurrentChooseA; + QPointer m_pDirCurrentChooseB; + QPointer m_pDirCurrentChooseC; + QPointer m_pDirCurrentMerge; + QPointer m_pDirCurrentDelete; + + QPointer m_pDirCurrentSyncDoNothing; + QPointer m_pDirCurrentSyncCopyAToB; + QPointer m_pDirCurrentSyncCopyBToA; + QPointer m_pDirCurrentSyncDeleteA; + QPointer m_pDirCurrentSyncDeleteB; + QPointer m_pDirCurrentSyncDeleteAAndB; + QPointer m_pDirCurrentSyncMergeToA; + QPointer m_pDirCurrentSyncMergeToB; + QPointer m_pDirCurrentSyncMergeToAAndB; + + QPointer m_pDirSaveMergeState; + QPointer m_pDirLoadMergeState; +}; + +QVariant DirectoryMergeWindow::DirectoryMergeWindowPrivate::data(const QModelIndex& index, int role) const +{ + MergeFileInfos* pMFI = getMFI(index); + if(pMFI) + { + if(role == Qt::DisplayRole) + { + switch(index.column()) + { + case s_NameCol: + return QFileInfo(pMFI->subPath()).fileName(); + case s_ACol: + return i18n("A"); + case s_BCol: + return i18n("B"); + case s_CCol: + return i18n("C"); + //case s_OpCol: return i18n("Operation"); + //case s_OpStatusCol: return i18n("Status"); + case s_UnsolvedCol: + return pMFI->diffStatus().getUnsolvedConflicts(); + case s_SolvedCol: + return pMFI->diffStatus().getSolvedConflicts(); + case s_NonWhiteCol: + return pMFI->diffStatus().getNonWhitespaceConflicts(); + case s_WhiteCol: + return pMFI->diffStatus().getWhitespaceConflicts(); + //default : return QVariant(); + } + + if(s_OpCol == index.column()) + { + bool bDir = pMFI->hasDir(); + switch(pMFI->getOperation()) + { + case eNoOperation: + return ""; + break; + case eCopyAToB: + return i18n("Copy A to B"); + break; + case eCopyBToA: + return i18n("Copy B to A"); + break; + case eDeleteA: + return i18n("Delete A"); + break; + case eDeleteB: + return i18n("Delete B"); + break; + case eDeleteAB: + return i18n("Delete A & B"); + break; + case eMergeToA: + return i18n("Merge to A"); + break; + case eMergeToB: + return i18n("Merge to B"); + break; + case eMergeToAB: + return i18n("Merge to A & B"); + break; + case eCopyAToDest: + return i18n("A"); + break; + case eCopyBToDest: + return i18n("B"); + break; + case eCopyCToDest: + return i18n("C"); + break; + case eDeleteFromDest: + return i18n("Delete (if exists)"); + break; + case eMergeABCToDest: + case eMergeABToDest: + return bDir ? i18n("Merge") : i18n("Merge (manual)"); + break; + case eConflictingFileTypes: + return i18n("Error: Conflicting File Types"); + break; + case eChangedAndDeleted: + return i18n("Error: Changed and Deleted"); + break; + case eConflictingAges: + return i18n("Error: Dates are equal but files are not."); + break; + default: + Q_ASSERT(true); + break; + } + } + if(s_OpStatusCol == index.column()) + { + switch(pMFI->getOpStatus()) + { + case eOpStatusNone: + return ""; + case eOpStatusDone: + return i18n("Done"); + case eOpStatusError: + return i18n("Error"); + case eOpStatusSkipped: + return i18n("Skipped."); + case eOpStatusNotSaved: + return i18n("Not saved."); + case eOpStatusInProgress: + return i18n("In progress..."); + case eOpStatusToDo: + return i18n("To do."); + } + } + } + else if(role == Qt::DecorationRole) + { + if(s_NameCol == index.column()) + { + return PixMapUtils::getOnePixmap(eAgeEnd, pMFI->hasLink(), pMFI->hasDir()); + } + + if(s_ACol == index.column()) + { + return PixMapUtils::getOnePixmap(pMFI->getAgeA(), pMFI->isLinkA(), pMFI->isDirA()); + } + if(s_BCol == index.column()) + { + return PixMapUtils::getOnePixmap(pMFI->getAgeB(), pMFI->isLinkB(), pMFI->isDirB()); + } + if(s_CCol == index.column()) + { + return PixMapUtils::getOnePixmap(pMFI->getAgeC(), pMFI->isLinkC(), pMFI->isDirC()); + } + } + else if(role == Qt::TextAlignmentRole) + { + if(s_UnsolvedCol == index.column() || s_SolvedCol == index.column() || s_NonWhiteCol == index.column() || s_WhiteCol == index.column()) + return Qt::AlignRight; + } + } + return QVariant(); +} + +QVariant DirectoryMergeWindow::DirectoryMergeWindowPrivate::headerData(int section, Qt::Orientation orientation, int role) const +{ + if(orientation == Qt::Horizontal && section >= 0 && section < columnCount(QModelIndex()) && role == Qt::DisplayRole) + { + switch(section) + { + case s_NameCol: + return i18n("Name"); + case s_ACol: + return i18n("A"); + case s_BCol: + return i18n("B"); + case s_CCol: + return i18n("C"); + case s_OpCol: + return i18n("Operation"); + case s_OpStatusCol: + return i18n("Status"); + case s_UnsolvedCol: + return i18n("Unsolved"); + case s_SolvedCol: + return i18n("Solved"); + case s_NonWhiteCol: + return i18n("Nonwhite"); + case s_WhiteCol: + return i18n("White"); + default: + return QVariant(); + } + } + return QVariant(); +} + +int DirectoryMergeWindow::getIntFromIndex(const QModelIndex& index) const +{ + return index == d->m_selection1Index ? 1 : index == d->m_selection2Index ? 2 : index == d->m_selection3Index ? 3 : 0; +} + +const QSharedPointer& DirectoryMergeWindow::getOptions() const +{ + return d->m_pOptions; +} + +// Previously Q3ListViewItem::paintCell(p,cg,column,width,align); +class DirectoryMergeWindow::DirMergeItemDelegate : public QStyledItemDelegate +{ + private: + DirectoryMergeWindow* m_pDMW; + const QSharedPointer& getOptions() const { return m_pDMW->getOptions(); } + + public: + explicit DirMergeItemDelegate(DirectoryMergeWindow* pParent) + : QStyledItemDelegate(pParent), m_pDMW(pParent) + { + } + void paint(QPainter* thePainter, const QStyleOptionViewItem& option, const QModelIndex& index) const override + { + QtNumberType column = index.column(); + if(column == s_ACol || column == s_BCol || column == s_CCol) + { + QVariant value = index.data(Qt::DecorationRole); + QPixmap icon; + if(value.isValid()) + { + if(value.type() == QVariant::Icon) + { + icon = qvariant_cast(value).pixmap(16, 16); + //icon = qvariant_cast(value); + //decorationRect = QRect(QPoint(0, 0), icon.actualSize(option.decorationSize, iconMode, iconState)); + } + else + { + icon = qvariant_cast(value); + //decorationRect = QRect(QPoint(0, 0), option.decorationSize).intersected(pixmap.rect()); + } + } + + int x = option.rect.left(); + int y = option.rect.top(); + //QPixmap icon = value.value(); //pixmap(column); + if(!icon.isNull()) + { + const auto dpr = thePainter->device()->devicePixelRatioF(); + const int w = qRound(icon.width() / dpr); + const int h = qRound(icon.height() / dpr); + int yOffset = (sizeHint(option, index).height() - h) / 2; + thePainter->drawPixmap(x + 2, y + yOffset, icon); + + int i = m_pDMW->getIntFromIndex(index); + if(i != 0) + { + QColor c(i == 1 ? getOptions()->m_colorA : i == 2 ? getOptions()->m_colorB : getOptions()->m_colorC); + thePainter->setPen(c); // highlight() ); + thePainter->drawRect(x + 2, y + yOffset, w, h); + thePainter->setPen(QPen(c, 0, Qt::DotLine)); + thePainter->drawRect(x + 1, y + yOffset - 1, w + 2, h + 2); + thePainter->setPen(Qt::white); + QString s(QChar('A' + i - 1)); + + thePainter->drawText(x + 2 + (w - Utils::getHorizontalAdvance(thePainter->fontMetrics(), s)) / 2, + y + yOffset + (h + thePainter->fontMetrics().ascent()) / 2 - 1, + s); + } + else + { + thePainter->setPen(m_pDMW->palette().window().color()); + thePainter->drawRect(x + 1, y + yOffset - 1, w + 2, h + 2); + } + return; + } + } + + QStyleOptionViewItem option2 = option; + if(column >= s_UnsolvedCol) + { + option2.displayAlignment = Qt::AlignRight; + } + QStyledItemDelegate::paint(thePainter, option2, index); + } + QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override + { + QSize sz = QStyledItemDelegate::sizeHint(option, index); + return sz.expandedTo(QSize(0, 18)); + } +}; + +DirectoryMergeWindow::DirectoryMergeWindow(QWidget* pParent, const QSharedPointer& pOptions) + : QTreeView(pParent) +{ + d = new DirectoryMergeWindowPrivate(this); + setModel(d); + setItemDelegate(new DirMergeItemDelegate(this)); + chk_connect(this, &DirectoryMergeWindow::doubleClicked, this, &DirectoryMergeWindow::onDoubleClick); + chk_connect(this, &DirectoryMergeWindow::expanded, this, &DirectoryMergeWindow::onExpanded); + + d->m_pOptions = pOptions; + + setSortingEnabled(true); +} + +DirectoryMergeWindow::~DirectoryMergeWindow() +{ + delete d; +} + +void DirectoryMergeWindow::setDirectoryMergeInfo(DirectoryMergeInfo* p) +{ + d->m_pDirectoryMergeInfo = p; +} +bool DirectoryMergeWindow::isDirectoryMergeInProgress() +{ + return d->m_bRealMergeStarted; +} +bool DirectoryMergeWindow::isSyncMode() +{ + return d->m_bSyncMode; +} +bool DirectoryMergeWindow::isScanning() +{ + return d->m_bScanning; +} + +int DirectoryMergeWindow::totalColumnWidth() +{ + int w = 0; + for(int i = 0; i < s_OpStatusCol; ++i) + { + w += columnWidth(i); + } + return w; +} + +void DirectoryMergeWindow::reload() +{ + if(isDirectoryMergeInProgress()) + { + int result = KMessageBox::warningYesNo(this, + i18n("You are currently doing a folder merge. Are you sure, you want to abort the merge and rescan the folder?"), + i18n("Warning"), + KGuiItem(i18n("Rescan")), + KGuiItem(i18n("Continue Merging"))); + if(result != KMessageBox::Yes) + return; + } + + init(gDirInfo, true); + //fix file visibilities after reload or menu will be out of sync with display if changed from defaults. + updateFileVisibilities(); +} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::calcDirStatus(bool bThreeDirs, const QModelIndex& mi, + int& nofFiles, int& nofDirs, int& nofEqualFiles, int& nofManualMerges) +{ + const MergeFileInfos* pMFI = getMFI(mi); + if(pMFI->hasDir()) + { + ++nofDirs; + } + else + { + ++nofFiles; + if(pMFI->isEqualAB() && (!bThreeDirs || pMFI->isEqualAC())) + { + ++nofEqualFiles; + } + else + { + if(pMFI->getOperation() == eMergeABCToDest || pMFI->getOperation() == eMergeABToDest) + ++nofManualMerges; + } + } + for(int childIdx = 0; childIdx < rowCount(mi); ++childIdx) + calcDirStatus(bThreeDirs, index(childIdx, 0, mi), nofFiles, nofDirs, nofEqualFiles, nofManualMerges); +} + +bool DirectoryMergeWindow::init( + const QSharedPointer& dirInfo, + bool bDirectoryMerge, + bool bReload) +{ + return d->init(dirInfo, bDirectoryMerge, bReload); +} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::buildMergeMap(const QSharedPointer& dirInfo) +{ + t_DirectoryList::iterator dirIterator; + + if(dirInfo->dirA().isValid()) + { + for(dirIterator = dirInfo->getDirListA().begin(); dirIterator != dirInfo->getDirListA().end(); ++dirIterator) + { + MergeFileInfos& mfi = m_fileMergeMap[FileKey(*dirIterator)]; + + mfi.setFileInfoA(&(*dirIterator)); + } + } + + if(dirInfo->dirB().isValid()) + { + for(dirIterator = dirInfo->getDirListB().begin(); dirIterator != dirInfo->getDirListB().end(); ++dirIterator) + { + MergeFileInfos& mfi = m_fileMergeMap[FileKey(*dirIterator)]; + + mfi.setFileInfoB(&(*dirIterator)); + } + } + + if(dirInfo->dirC().isValid()) + { + for(dirIterator = dirInfo->getDirListC().begin(); dirIterator != dirInfo->getDirListC().end(); ++dirIterator) + { + MergeFileInfos& mfi = m_fileMergeMap[FileKey(*dirIterator)]; + + mfi.setFileInfoC(&(*dirIterator)); + } + } +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::init( + const QSharedPointer& dirInfo, + bool bDirectoryMerge, + bool bReload) +{ + if(m_pOptions->m_bDmFullAnalysis) + { + QStringList errors; + // A full analysis uses the same resources that a normal text-diff/merge uses. + // So make sure that the user saves his data first. + if(!KDiff3App::shouldContinue()) + return false; + Q_EMIT mWindow->startDiffMerge(errors, "", "", "", "", "", "", "", nullptr); // hide main window + } + + mWindow->show(); + mWindow->setUpdatesEnabled(true); + + std::map expandedDirsMap; + + if(bReload) + { + // Remember expanded items TODO + //QTreeWidgetItemIterator it( this ); + //while ( *it ) + //{ + // DirMergeItem* pDMI = static_cast( *it ); + // t_ItemInfo& ii = expandedDirsMap[ pDMI->m_pMFI->subPath() ]; + // ii.bExpanded = pDMI->isExpanded(); + // ii.bOperationComplete = pDMI->m_pMFI->m_bOperationComplete; + // ii.status = pDMI->text( s_OpStatusCol ); + // ii.eMergeOperation = pDMI->m_pMFI->getOperation(); + // ++it; + //} + } + + ProgressProxy pp; + m_bFollowDirLinks = m_pOptions->m_bDmFollowDirLinks; + m_bFollowFileLinks = m_pOptions->m_bDmFollowFileLinks; + m_bSimulatedMergeStarted = false; + m_bRealMergeStarted = false; + m_bError = false; + m_bDirectoryMerge = bDirectoryMerge; + m_selection1Index = QModelIndex(); + m_selection2Index = QModelIndex(); + m_selection3Index = QModelIndex(); + m_bCaseSensitive = m_pOptions->m_bDmCaseSensitiveFilenameComparison; + m_bUnfoldSubdirs = m_pOptions->m_bDmUnfoldSubdirs; + m_bSkipDirStatus = m_pOptions->m_bDmSkipDirStatus; + + beginResetModel(); + m_pRoot->clear(); + m_mergeItemList.clear(); + endResetModel(); + + m_currentIndexForOperation = m_mergeItemList.end(); + + if(!bReload) + { + m_pDirShowIdenticalFiles->setChecked(true); + m_pDirShowDifferentFiles->setChecked(true); + m_pDirShowFilesOnlyInA->setChecked(true); + m_pDirShowFilesOnlyInB->setChecked(true); + m_pDirShowFilesOnlyInC->setChecked(true); + } + Q_ASSERT(dirInfo != nullptr); + const FileAccess& dirA = dirInfo->dirA(); + const FileAccess& dirB = dirInfo->dirB(); + const FileAccess& dirC = dirInfo->dirC(); + const FileAccess& dirDest = dirInfo->destDir(); + // Check if all input directories exist and are valid. The dest dir is not tested now. + // The test will happen only when we are going to write to it. + if(!dirA.isDir() || !dirB.isDir() || + (dirC.isValid() && !dirC.isDir())) + { + QString text(i18n("Opening of folders failed:")); + text += "\n\n"; + if(!dirA.isDir()) + { + text += i18n("Folder A \"%1\" does not exist or is not a folder.\n", dirA.prettyAbsPath()); + } + + if(!dirB.isDir()) + { + text += i18n("Folder B \"%1\" does not exist or is not a folder.\n", dirB.prettyAbsPath()); + } + + if(dirC.isValid() && !dirC.isDir()) + { + text += i18n("Folder C \"%1\" does not exist or is not a folder.\n", dirC.prettyAbsPath()); + } + + KMessageBox::sorry(mWindow, text, i18n("Folder Opening Error")); + return false; + } + + if(dirC.isValid() && + (dirDest.prettyAbsPath() == dirA.prettyAbsPath() || dirDest.prettyAbsPath() == dirB.prettyAbsPath())) + { + KMessageBox::error(mWindow, + i18n("The destination folder must not be the same as A or B when " + "three folders are merged.\nCheck again before continuing."), + i18n("Parameter Warning")); + return false; + } + + m_bScanning = true; + Q_EMIT mWindow->statusBarMessage(i18n("Scanning folders...")); + + m_bSyncMode = m_pOptions->m_bDmSyncMode && dirInfo->allowSyncMode(); + + m_fileMergeMap.clear(); + s_eCaseSensitivity = m_bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive; + // calc how many directories will be read: + double nofScans = (dirA.isValid() ? 1 : 0) + (dirB.isValid() ? 1 : 0) + (dirC.isValid() ? 1 : 0); + int currentScan = 0; + + //TODO setColumnWidthMode(s_UnsolvedCol, Q3ListView::Manual); + // setColumnWidthMode(s_SolvedCol, Q3ListView::Manual); + // setColumnWidthMode(s_WhiteCol, Q3ListView::Manual); + // setColumnWidthMode(s_NonWhiteCol, Q3ListView::Manual); + mWindow->setColumnHidden(s_CCol, !dirC.isValid()); + mWindow->setColumnHidden(s_WhiteCol, !m_pOptions->m_bDmFullAnalysis); + mWindow->setColumnHidden(s_NonWhiteCol, !m_pOptions->m_bDmFullAnalysis); + mWindow->setColumnHidden(s_UnsolvedCol, !m_pOptions->m_bDmFullAnalysis); + mWindow->setColumnHidden(s_SolvedCol, !(m_pOptions->m_bDmFullAnalysis && dirC.isValid())); + + bool bListDirSuccessA = true; + bool bListDirSuccessB = true; + bool bListDirSuccessC = true; + + if(dirA.isValid()) + { + pp.setInformation(i18n("Reading Folder A")); + pp.setSubRangeTransformation(currentScan / nofScans, (currentScan + 1) / nofScans); + ++currentScan; + + bListDirSuccessA = dirInfo->listDirA(*m_pOptions); + } + + if(dirB.isValid()) + { + pp.setInformation(i18n("Reading Folder B")); + pp.setSubRangeTransformation(currentScan / nofScans, (currentScan + 1) / nofScans); + ++currentScan; + + bListDirSuccessB = dirInfo->listDirB(*m_pOptions); + } + + e_MergeOperation eDefaultMergeOp; + if(dirC.isValid()) + { + pp.setInformation(i18n("Reading Folder C")); + pp.setSubRangeTransformation(currentScan / nofScans, (currentScan + 1) / nofScans); + ++currentScan; + + bListDirSuccessC = dirInfo->listDirC(*m_pOptions); + + eDefaultMergeOp = eMergeABCToDest; + } + else + eDefaultMergeOp = m_bSyncMode ? eMergeToAB : eMergeABToDest; + + buildMergeMap(dirInfo); + + bool bContinue = true; + if(!bListDirSuccessA || !bListDirSuccessB || !bListDirSuccessC) + { + QString s = i18n("Some subfolders were not readable in"); + if(!bListDirSuccessA) s += "\nA: " + dirA.prettyAbsPath(); + if(!bListDirSuccessB) s += "\nB: " + dirB.prettyAbsPath(); + if(!bListDirSuccessC) s += "\nC: " + dirC.prettyAbsPath(); + s += '\n'; + s += i18n("Check the permissions of the subfolders."); + bContinue = KMessageBox::Continue == KMessageBox::warningContinueCancel(mWindow, s); + } + + if(bContinue) + { + prepareListView(pp); + + mWindow->updateFileVisibilities(); + + for(int childIdx = 0; childIdx < rowCount(); ++childIdx) + { + QModelIndex mi = index(childIdx, 0, QModelIndex()); + calcSuggestedOperation(mi, eDefaultMergeOp); + } + } + + mWindow->sortByColumn(0, Qt::AscendingOrder); + + for(int column = 0; column < columnCount(QModelIndex()); ++column) + mWindow->resizeColumnToContents(column); + + // Try to improve the view a little bit. + QWidget* pParent = mWindow->parentWidget(); + QSplitter* pSplitter = static_cast(pParent); + if(pSplitter != nullptr) + { + QList sizes = pSplitter->sizes(); + int total = sizes[0] + sizes[1]; + if(total < 10) + total = 100; + sizes[0] = total * 6 / 10; + sizes[1] = total - sizes[0]; + pSplitter->setSizes(sizes); + } + + m_bScanning = false; + Q_EMIT mWindow->statusBarMessage(i18n("Ready.")); + + if(bContinue && !m_bSkipDirStatus) + { + // Generate a status report + int nofFiles = 0; + int nofDirs = 0; + int nofEqualFiles = 0; + int nofManualMerges = 0; + //TODO + for(int childIdx = 0; childIdx < rowCount(); ++childIdx) + calcDirStatus(dirC.isValid(), index(childIdx, 0, QModelIndex()), + nofFiles, nofDirs, nofEqualFiles, nofManualMerges); + + QString s; + s = i18n("Folder Comparison Status\n\n" + "Number of subfolders: %1\n" + "Number of equal files: %2\n" + "Number of different files: %3", + nofDirs, nofEqualFiles, nofFiles - nofEqualFiles); + + if(dirC.isValid()) + s += '\n' + i18n("Number of manual merges: %1", nofManualMerges); + KMessageBox::information(mWindow, s); + // + //TODO + //if ( topLevelItemCount()>0 ) + //{ + // topLevelItem(0)->setSelected(true); + // setCurrentItem( topLevelItem(0) ); + //} + } + + if(bReload) + { + // Remember expanded items + //TODO + //QTreeWidgetItemIterator it( this ); + //while ( *it ) + //{ + // DirMergeItem* pDMI = static_cast( *it ); + // std::map::iterator i = expandedDirsMap.find( pDMI->m_pMFI->subPath() ); + // if ( i!=expandedDirsMap.end() ) + // { + // t_ItemInfo& ii = i->second; + // pDMI->setExpanded( ii.bExpanded ); + // //pDMI->m_pMFI->setMergeOperation( ii.eMergeOperation, false ); unsafe, might have changed + // pDMI->m_pMFI->m_bOperationComplete = ii.bOperationComplete; + // pDMI->setText( s_OpStatusCol, ii.status ); + // } + // ++it; + //} + } + else if(m_bUnfoldSubdirs) + { + m_pDirUnfoldAll->trigger(); + } + + return true; +} + +inline QString DirectoryMergeWindow::getDirNameA() const +{ + return gDirInfo->dirA().prettyAbsPath(); +} +inline QString DirectoryMergeWindow::getDirNameB() const +{ + return gDirInfo->dirB().prettyAbsPath(); +} +inline QString DirectoryMergeWindow::getDirNameC() const +{ + return gDirInfo->dirC().prettyAbsPath(); +} +inline QString DirectoryMergeWindow::getDirNameDest() const +{ + return gDirInfo->destDir().prettyAbsPath(); +} + +void DirectoryMergeWindow::onExpanded() +{ + resizeColumnToContents(s_NameCol); +} + +void DirectoryMergeWindow::slotChooseAEverywhere() +{ + d->setAllMergeOperations(eCopyAToDest); +} + +void DirectoryMergeWindow::slotChooseBEverywhere() +{ + d->setAllMergeOperations(eCopyBToDest); +} + +void DirectoryMergeWindow::slotChooseCEverywhere() +{ + d->setAllMergeOperations(eCopyCToDest); +} + +void DirectoryMergeWindow::slotAutoChooseEverywhere() +{ + e_MergeOperation eDefaultMergeOp = d->isThreeWay() ? eMergeABCToDest : d->m_bSyncMode ? eMergeToAB : eMergeABToDest; + d->setAllMergeOperations(eDefaultMergeOp); +} + +void DirectoryMergeWindow::slotNoOpEverywhere() +{ + d->setAllMergeOperations(eNoOperation); +} + +void DirectoryMergeWindow::slotFoldAllSubdirs() +{ + collapseAll(); +} + +void DirectoryMergeWindow::slotUnfoldAllSubdirs() +{ + expandAll(); +} + +// Merge current item (merge mode) +void DirectoryMergeWindow::slotCurrentDoNothing() +{ + d->setMergeOperation(currentIndex(), eNoOperation); +} +void DirectoryMergeWindow::slotCurrentChooseA() +{ + d->setMergeOperation(currentIndex(), d->m_bSyncMode ? eCopyAToB : eCopyAToDest); +} +void DirectoryMergeWindow::slotCurrentChooseB() +{ + d->setMergeOperation(currentIndex(), d->m_bSyncMode ? eCopyBToA : eCopyBToDest); +} +void DirectoryMergeWindow::slotCurrentChooseC() +{ + d->setMergeOperation(currentIndex(), eCopyCToDest); +} +void DirectoryMergeWindow::slotCurrentMerge() +{ + bool bThreeDirs = d->isThreeWay(); + d->setMergeOperation(currentIndex(), bThreeDirs ? eMergeABCToDest : eMergeABToDest); +} +void DirectoryMergeWindow::slotCurrentDelete() +{ + d->setMergeOperation(currentIndex(), eDeleteFromDest); +} +// Sync current item +void DirectoryMergeWindow::slotCurrentCopyAToB() +{ + d->setMergeOperation(currentIndex(), eCopyAToB); +} +void DirectoryMergeWindow::slotCurrentCopyBToA() +{ + d->setMergeOperation(currentIndex(), eCopyBToA); +} +void DirectoryMergeWindow::slotCurrentDeleteA() +{ + d->setMergeOperation(currentIndex(), eDeleteA); +} +void DirectoryMergeWindow::slotCurrentDeleteB() +{ + d->setMergeOperation(currentIndex(), eDeleteB); +} +void DirectoryMergeWindow::slotCurrentDeleteAAndB() +{ + d->setMergeOperation(currentIndex(), eDeleteAB); +} +void DirectoryMergeWindow::slotCurrentMergeToA() +{ + d->setMergeOperation(currentIndex(), eMergeToA); +} +void DirectoryMergeWindow::slotCurrentMergeToB() +{ + d->setMergeOperation(currentIndex(), eMergeToB); +} +void DirectoryMergeWindow::slotCurrentMergeToAAndB() +{ + d->setMergeOperation(currentIndex(), eMergeToAB); +} + +void DirectoryMergeWindow::keyPressEvent(QKeyEvent* e) +{ + if((e->QInputEvent::modifiers() & Qt::ControlModifier) != 0) + { + MergeFileInfos* pMFI = d->getMFI(currentIndex()); + if(pMFI == nullptr) + return; + + bool bThreeDirs = pMFI->isThreeWay(); + bool bMergeMode = bThreeDirs || !d->m_bSyncMode; + bool bFTConflict = pMFI->conflictingFileTypes(); + + switch(e->key()) + { + case Qt::Key_1: + if(pMFI->existsInA()) + { + slotCurrentChooseA(); + } + return; + case Qt::Key_2: + if(pMFI->existsInB()) + { + slotCurrentChooseB(); + } + return; + case Qt::Key_Space: + slotCurrentDoNothing(); + return; + } + + if(bMergeMode) + { + switch(e->key()) + { + case Qt::Key_3: + if(pMFI->existsInC()) + { + slotCurrentChooseC(); + } + return; + + case Qt::Key_4: + if(!bFTConflict) + { + slotCurrentMerge(); + } + return; + case Qt::Key_Delete: + slotCurrentDelete(); + return; + default: + break; + } + } + else + { + switch(e->key()) + { + case Qt::Key_4: + if(!bFTConflict) + { + slotCurrentMergeToAAndB(); + } + return; + case Qt::Key_Delete: + if(pMFI->existsInA() && pMFI->existsInB()) + slotCurrentDeleteAAndB(); + else if(pMFI->existsInA()) + slotCurrentDeleteA(); + else if(pMFI->existsInB()) + slotCurrentDeleteB(); + return; + default: + break; + } + } + } + //Override Qt's default behavior for this key. + else if(e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter) + { + onDoubleClick(currentIndex()); + return; + } + + QTreeView::keyPressEvent(e); +} + +void DirectoryMergeWindow::focusInEvent(QFocusEvent*) +{ + Q_EMIT updateAvailabilities(); +} +void DirectoryMergeWindow::focusOutEvent(QFocusEvent*) +{ + Q_EMIT updateAvailabilities(); +} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::setAllMergeOperations(e_MergeOperation eDefaultOperation) +{ + if(KMessageBox::Yes == KMessageBox::warningYesNo(mWindow, + i18n("This affects all merge operations."), + i18n("Changing All Merge Operations"), + KStandardGuiItem::cont(), + KStandardGuiItem::cancel())) + { + for(int i = 0; i < rowCount(); ++i) + { + calcSuggestedOperation(index(i, 0, QModelIndex()), eDefaultOperation); + } + } +} + +QModelIndex DirectoryMergeWindow::DirectoryMergeWindowPrivate::nextSibling(const QModelIndex& mi) +{ + QModelIndex miParent = mi.parent(); + int currentIdx = mi.row(); + if(currentIdx + 1 < mi.model()->rowCount(miParent)) + return mi.model()->index(mi.row() + 1, 0, miParent); // next child of parent + return QModelIndex(); +} + +// Iterate through the complete tree. Start by specifying QListView::firstChild(). +QModelIndex DirectoryMergeWindow::DirectoryMergeWindowPrivate::treeIterator(QModelIndex mi, bool bVisitChildren, bool bFindInvisible) +{ + if(mi.isValid()) + { + do + { + if(bVisitChildren && mi.model()->rowCount(mi) != 0) + mi = mi.model()->index(0, 0, mi); + else + { + QModelIndex miNextSibling = nextSibling(mi); + if(miNextSibling.isValid()) + mi = miNextSibling; + else + { + mi = mi.parent(); + while(mi.isValid()) + { + miNextSibling = nextSibling(mi); + if(miNextSibling.isValid()) + { + mi = miNextSibling; + break; + } + else + { + mi = mi.parent(); + } + } + } + } + } while(mi.isValid() && mWindow->isRowHidden(mi.row(), mi.parent()) && !bFindInvisible); + } + return mi; +} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::prepareListView(ProgressProxy& pp) +{ + QStringList errors; + //TODO clear(); + PixMapUtils::initPixmaps(m_pOptions->m_newestFileColor, m_pOptions->m_oldestFileColor, + m_pOptions->m_midAgeFileColor, m_pOptions->m_missingFileColor); + + mWindow->setRootIsDecorated(true); + + int nrOfFiles = m_fileMergeMap.size(); + int currentIdx = 1; + QElapsedTimer t; + t.start(); + pp.setMaxNofSteps(nrOfFiles); + + for(MergeFileInfos &mfi: m_fileMergeMap) + { + const QString& fileName = mfi.subPath(); + + pp.setInformation( + i18n("Processing %1 / %2\n%3", currentIdx, nrOfFiles, fileName), currentIdx, false); + if(pp.wasCancelled()) break; + ++currentIdx; + + // The comparisons and calculations for each file take place here. + if(!mfi.compareFilesAndCalcAges(errors, m_pOptions, mWindow) && errors.size() >= 30) + break; + + // Get dirname from fileName: Search for "/" from end: + int pos = fileName.lastIndexOf('/'); + QString dirPart; + QString filePart; + if(pos == -1) + { + // Top dir + filePart = fileName; + } + else + { + dirPart = fileName.left(pos); + filePart = fileName.mid(pos + 1); + } + + if(dirPart.isEmpty()) // Top level + { + m_pRoot->addChild(&mfi); //new DirMergeItem( this, filePart, &mfi ); + mfi.setParent(m_pRoot); + } + else + { + const FileAccess* pFA = mfi.getFileInfoA() ? mfi.getFileInfoA() : mfi.getFileInfoB() ? mfi.getFileInfoB() : mfi.getFileInfoC(); + MergeFileInfos& dirMfi = pFA->parent() ? m_fileMergeMap[FileKey(*pFA->parent())] : *m_pRoot; // parent + + dirMfi.addChild(&mfi); //new DirMergeItem( dirMfi.m_pDMI, filePart, &mfi ); + mfi.setParent(&dirMfi); + // // Equality for parent dirs is set in updateFileVisibilities() + } + + mfi.updateAge(); + } + + if(errors.size() > 0) + { + if(errors.size() < 15) + { + KMessageBox::errorList(mWindow, i18n("Some files could not be processed."), errors); + } + else if(errors.size() < 30) + { + KMessageBox::error(mWindow, i18n("Some files could not be processed.")); + } + else + KMessageBox::error(mWindow, i18n("Aborting due to too many errors.")); + } + + beginResetModel(); + endResetModel(); +} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::calcSuggestedOperation(const QModelIndex& mi, e_MergeOperation eDefaultMergeOp) +{ + const MergeFileInfos* pMFI = getMFI(mi); + if(pMFI == nullptr) + return; + + bool bCheckC = pMFI->isThreeWay(); + bool bCopyNewer = m_pOptions->m_bDmCopyNewer; + bool bOtherDest = !((gDirInfo->destDir().absoluteFilePath() == gDirInfo->dirA().absoluteFilePath()) || + (gDirInfo->destDir().absoluteFilePath() == gDirInfo->dirB().absoluteFilePath()) || + (bCheckC && gDirInfo->destDir().absoluteFilePath() == gDirInfo->dirC().absoluteFilePath())); + + //Crash and burn in debug mode these states are never valid. + //The checks are duplicated here so they show in the assert text. + Q_ASSERT(!(eDefaultMergeOp == eMergeABCToDest && !bCheckC)); + Q_ASSERT(!(eDefaultMergeOp == eMergeToAB && bCheckC)); + + //Check for two bugged states that are recoverable. This should never happen! + if(Q_UNLIKELY(eDefaultMergeOp == eMergeABCToDest && !bCheckC)) + { + qCWarning(kdiffMain) << "Invalid State detected in DirectoryMergeWindow::DirectoryMergeWindowPrivate::calcSuggestedOperation"; + eDefaultMergeOp = eMergeABToDest; + } + if(Q_UNLIKELY(eDefaultMergeOp == eMergeToAB && bCheckC)) + { + qCWarning(kdiffMain) << "Invalid State detected in DirectoryMergeWindow::DirectoryMergeWindowPrivate::calcSuggestedOperation"; + eDefaultMergeOp = eMergeABCToDest; + } + + if(eDefaultMergeOp == eMergeToA || eDefaultMergeOp == eMergeToB || + eDefaultMergeOp == eMergeABCToDest || eDefaultMergeOp == eMergeABToDest || eDefaultMergeOp == eMergeToAB) + { + if(!bCheckC) + { + if(pMFI->isEqualAB()) + { + setMergeOperation(mi, bOtherDest ? eCopyBToDest : eNoOperation); + } + else if(pMFI->existsInA() && pMFI->existsInB()) + { + if(!bCopyNewer || pMFI->isDirA()) + setMergeOperation(mi, eDefaultMergeOp); + else if(bCopyNewer && pMFI->conflictingAges()) + { + setMergeOperation(mi, eConflictingAges); + } + else + { + if(pMFI->getAgeA() == eNew) + setMergeOperation(mi, eDefaultMergeOp == eMergeToAB ? eCopyAToB : eCopyAToDest); + else + setMergeOperation(mi, eDefaultMergeOp == eMergeToAB ? eCopyBToA : eCopyBToDest); + } + } + else if(!pMFI->existsInA() && pMFI->existsInB()) + { + if(eDefaultMergeOp == eMergeABToDest) + setMergeOperation(mi, eCopyBToDest); + else if(eDefaultMergeOp == eMergeToB) + setMergeOperation(mi, eNoOperation); + else + setMergeOperation(mi, eCopyBToA); + } + else if(pMFI->existsInA() && !pMFI->existsInB()) + { + if(eDefaultMergeOp == eMergeABToDest) + setMergeOperation(mi, eCopyAToDest); + else if(eDefaultMergeOp == eMergeToA) + setMergeOperation(mi, eNoOperation); + else + setMergeOperation(mi, eCopyAToB); + } + else //if ( !pMFI->existsInA() && !pMFI->existsInB() ) + { + setMergeOperation(mi, eNoOperation); + } + } + else + { + if(pMFI->isEqualAB() && pMFI->isEqualAC()) + { + setMergeOperation(mi, bOtherDest ? eCopyCToDest : eNoOperation); + } + else if(pMFI->existsInA() && pMFI->existsInB() && pMFI->existsInC()) + { + if(pMFI->isEqualAB() || pMFI->isEqualBC()) + setMergeOperation(mi, eCopyCToDest); + else if(pMFI->isEqualAC()) + setMergeOperation(mi, eCopyBToDest); + else + setMergeOperation(mi, eMergeABCToDest); + } + else if(pMFI->existsInA() && pMFI->existsInB() && !pMFI->existsInC()) + { + if(pMFI->isEqualAB()) + setMergeOperation(mi, eDeleteFromDest); + else + setMergeOperation(mi, eChangedAndDeleted); + } + else if(pMFI->existsInA() && !pMFI->existsInB() && pMFI->existsInC()) + { + if(pMFI->isEqualAC()) + setMergeOperation(mi, eDeleteFromDest); + else + setMergeOperation(mi, eChangedAndDeleted); + } + else if(!pMFI->existsInA() && pMFI->existsInB() && pMFI->existsInC()) + { + if(pMFI->isEqualBC()) + setMergeOperation(mi, eCopyCToDest); + else + setMergeOperation(mi, eMergeABCToDest); + } + else if(!pMFI->existsInA() && !pMFI->existsInB() && pMFI->existsInC()) + { + setMergeOperation(mi, eCopyCToDest); + } + else if(!pMFI->existsInA() && pMFI->existsInB() && !pMFI->existsInC()) + { + setMergeOperation(mi, eCopyBToDest); + } + else if(pMFI->existsInA() && !pMFI->existsInB() && !pMFI->existsInC()) + { + setMergeOperation(mi, eDeleteFromDest); + } + else //if ( !pMFI->existsInA() && !pMFI->existsInB() && !pMFI->existsInC() ) + { + setMergeOperation(mi, eNoOperation); + } + } + + // Now check if file/dir-types fit. + if(pMFI->conflictingFileTypes()) + { + setMergeOperation(mi, eConflictingFileTypes); + } + } + else + { + e_MergeOperation eMO = eDefaultMergeOp; + switch(eDefaultMergeOp) + { + case eConflictingFileTypes: + case eChangedAndDeleted: + case eConflictingAges: + case eDeleteA: + case eDeleteB: + case eDeleteAB: + case eDeleteFromDest: + case eNoOperation: + break; + case eCopyAToB: + if(!pMFI->existsInA()) + { + eMO = eDeleteB; + } + break; + case eCopyBToA: + if(!pMFI->existsInB()) + { + eMO = eDeleteA; + } + break; + case eCopyAToDest: + if(!pMFI->existsInA()) + { + eMO = eDeleteFromDest; + } + break; + case eCopyBToDest: + if(!pMFI->existsInB()) + { + eMO = eDeleteFromDest; + } + break; + case eCopyCToDest: + if(!pMFI->existsInC()) + { + eMO = eDeleteFromDest; + } + break; + + case eMergeToA: + case eMergeToB: + case eMergeToAB: + case eMergeABCToDest: + case eMergeABToDest: + break; + default: + Q_ASSERT(true); + break; + } + setMergeOperation(mi, eMO); + } +} + +void DirectoryMergeWindow::onDoubleClick(const QModelIndex& mi) +{ + if(!mi.isValid()) + return; + + d->m_bSimulatedMergeStarted = false; + if(d->m_bDirectoryMerge) + mergeCurrentFile(); + else + compareCurrentFile(); +} + +void DirectoryMergeWindow::currentChanged(const QModelIndex& current, const QModelIndex& previous) +{ + QTreeView::currentChanged(current, previous); + MergeFileInfos* pMFI = d->getMFI(current); + if(pMFI == nullptr) + return; + + d->m_pDirectoryMergeInfo->setInfo(gDirInfo->dirA(), gDirInfo->dirB(), gDirInfo->dirC(), gDirInfo->destDir(), *pMFI); +} + +void DirectoryMergeWindow::mousePressEvent(QMouseEvent* e) +{ + QTreeView::mousePressEvent(e); + QModelIndex mi = indexAt(e->pos()); + int c = mi.column(); + QPoint p = e->globalPos(); + MergeFileInfos* pMFI = d->getMFI(mi); + if(pMFI == nullptr) + return; + + if(c == s_OpCol) + { + bool bThreeDirs = d->isThreeWay(); + + QMenu m(this); + if(bThreeDirs) + { + m.addAction(d->m_pDirCurrentDoNothing); + int count = 0; + if(pMFI->existsInA()) + { + m.addAction(d->m_pDirCurrentChooseA); + ++count; + } + if(pMFI->existsInB()) + { + m.addAction(d->m_pDirCurrentChooseB); + ++count; + } + if(pMFI->existsInC()) + { + m.addAction(d->m_pDirCurrentChooseC); + ++count; + } + if(!pMFI->conflictingFileTypes() && count > 1) m.addAction(d->m_pDirCurrentMerge); + m.addAction(d->m_pDirCurrentDelete); + } + else if(d->m_bSyncMode) + { + m.addAction(d->m_pDirCurrentSyncDoNothing); + if(pMFI->existsInA()) m.addAction(d->m_pDirCurrentSyncCopyAToB); + if(pMFI->existsInB()) m.addAction(d->m_pDirCurrentSyncCopyBToA); + if(pMFI->existsInA()) m.addAction(d->m_pDirCurrentSyncDeleteA); + if(pMFI->existsInB()) m.addAction(d->m_pDirCurrentSyncDeleteB); + if(pMFI->existsInA() && pMFI->existsInB()) + { + m.addAction(d->m_pDirCurrentSyncDeleteAAndB); + if(!pMFI->conflictingFileTypes()) + { + m.addAction(d->m_pDirCurrentSyncMergeToA); + m.addAction(d->m_pDirCurrentSyncMergeToB); + m.addAction(d->m_pDirCurrentSyncMergeToAAndB); + } + } + } + else + { + m.addAction(d->m_pDirCurrentDoNothing); + if(pMFI->existsInA()) + { + m.addAction(d->m_pDirCurrentChooseA); + } + if(pMFI->existsInB()) + { + m.addAction(d->m_pDirCurrentChooseB); + } + if(!pMFI->conflictingFileTypes() && pMFI->existsInA() && pMFI->existsInB()) m.addAction(d->m_pDirCurrentMerge); + m.addAction(d->m_pDirCurrentDelete); + } + + m.exec(p); + } + else if(c == s_ACol || c == s_BCol || c == s_CCol) + { + QString itemPath; + if(c == s_ACol && pMFI->existsInA()) + { + itemPath = pMFI->fullNameA(); + } + else if(c == s_BCol && pMFI->existsInB()) + { + itemPath = pMFI->fullNameB(); + } + else if(c == s_CCol && pMFI->existsInC()) + { + itemPath = pMFI->fullNameC(); + } + + if(!itemPath.isEmpty()) + { + d->selectItemAndColumn(mi, e->button() == Qt::RightButton); + } + } +} + +#ifndef QT_NO_CONTEXTMENU +void DirectoryMergeWindow::contextMenuEvent(QContextMenuEvent* e) +{ + QModelIndex mi = indexAt(e->pos()); + int c = mi.column(); + + MergeFileInfos* pMFI = d->getMFI(mi); + if(pMFI == nullptr) + return; + if(c == s_ACol || c == s_BCol || c == s_CCol) + { + QString itemPath; + if(c == s_ACol && pMFI->existsInA()) + { + itemPath = pMFI->fullNameA(); + } + else if(c == s_BCol && pMFI->existsInB()) + { + itemPath = pMFI->fullNameB(); + } + else if(c == s_CCol && pMFI->existsInC()) + { + itemPath = pMFI->fullNameC(); + } + + if(!itemPath.isEmpty()) + { + d->selectItemAndColumn(mi, true); + QMenu m(this); + m.addAction(d->m_pDirCompareExplicit); + m.addAction(d->m_pDirMergeExplicit); + + m.popup(e->globalPos()); + } + } +} +#endif + +QString DirectoryMergeWindow::DirectoryMergeWindowPrivate::getFileName(const QModelIndex& mi) const +{ + MergeFileInfos* pMFI = getMFI(mi); + if(pMFI != nullptr) + { + return mi.column() == s_ACol ? pMFI->getFileInfoA()->absoluteFilePath() : mi.column() == s_BCol ? pMFI->getFileInfoB()->absoluteFilePath() : mi.column() == s_CCol ? pMFI->getFileInfoC()->absoluteFilePath() : QString(""); + } + return QString(); +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::isDir(const QModelIndex& mi) const +{ + MergeFileInfos* pMFI = getMFI(mi); + if(pMFI != nullptr) + { + return mi.column() == s_ACol ? pMFI->isDirA() : mi.column() == s_BCol ? pMFI->isDirB() : pMFI->isDirC(); + } + return false; +} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::selectItemAndColumn(const QModelIndex& mi, bool bContextMenu) +{ + if(bContextMenu && (mi == m_selection1Index || mi == m_selection2Index || mi == m_selection3Index)) + return; + + QModelIndex old1 = m_selection1Index; + QModelIndex old2 = m_selection2Index; + QModelIndex old3 = m_selection3Index; + + bool bReset = false; + + if(m_selection1Index.isValid()) + { + if(isDir(m_selection1Index) != isDir(mi)) + bReset = true; + } + + if(bReset || m_selection3Index.isValid() || mi == m_selection1Index || mi == m_selection2Index || mi == m_selection3Index) + { + // restart + m_selection1Index = QModelIndex(); + m_selection2Index = QModelIndex(); + m_selection3Index = QModelIndex(); + } + else if(!m_selection1Index.isValid()) + { + m_selection1Index = mi; + m_selection2Index = QModelIndex(); + m_selection3Index = QModelIndex(); + } + else if(!m_selection2Index.isValid()) + { + m_selection2Index = mi; + m_selection3Index = QModelIndex(); + } + else if(!m_selection3Index.isValid()) + { + m_selection3Index = mi; + } + if(old1.isValid()) Q_EMIT dataChanged(old1, old1); + if(old2.isValid()) Q_EMIT dataChanged(old2, old2); + if(old3.isValid()) Q_EMIT dataChanged(old3, old3); + if(m_selection1Index.isValid()) Q_EMIT dataChanged(m_selection1Index, m_selection1Index); + if(m_selection2Index.isValid()) Q_EMIT dataChanged(m_selection2Index, m_selection2Index); + if(m_selection3Index.isValid()) Q_EMIT dataChanged(m_selection3Index, m_selection3Index); + Q_EMIT mWindow->updateAvailabilities(); +} + +//TODO +//void DirMergeItem::init(MergeFileInfos* pMFI) +//{ +// pMFI->m_pDMI = this; //no not here +// m_pMFI = pMFI; +// TotalDiffStatus& tds = pMFI->m_totalDiffStatus; +// if ( m_pMFI->dirA() || m_pMFI->dirB() || m_pMFI->isDirC() ) +// { +// } +// else +// { +// setText( s_UnsolvedCol, QString::number( tds.getUnsolvedConflicts() ) ); +// setText( s_SolvedCol, QString::number( tds.getSolvedConflicts() ) ); +// setText( s_NonWhiteCol, QString::number( tds.getUnsolvedConflicts() + tds.getSolvedConflicts() - tds.getWhitespaceConflicts() ) ); +// setText( s_WhiteCol, QString::number( tds.getWhitespaceConflicts() ) ); +// } +// setSizeHint( s_ACol, QSize(17,17) ); // Iconsize +// setSizeHint( s_BCol, QSize(17,17) ); // Iconsize +// setSizeHint( s_CCol, QSize(17,17) ); // Iconsize +//} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::sort(int column, Qt::SortOrder order) +{ + Q_UNUSED(column); + beginResetModel(); + m_pRoot->sort(order); + endResetModel(); +} + +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::setMergeOperation(const QModelIndex& mi, e_MergeOperation eMergeOp, bool bRecursive) +{ + MergeFileInfos* pMFI = getMFI(mi); + if(pMFI == nullptr) + return; + + if(eMergeOp != pMFI->getOperation()) + { + pMFI->startOperation(); + setOpStatus(mi, eOpStatusNone); + } + + pMFI->setOperation(eMergeOp); + if(bRecursive) + { + e_MergeOperation eChildrenMergeOp = pMFI->getOperation(); + if(eChildrenMergeOp == eConflictingFileTypes) eChildrenMergeOp = eMergeABCToDest; + + for(int childIdx = 0; childIdx < pMFI->children().count(); ++childIdx) + { + calcSuggestedOperation(index(childIdx, 0, mi), eChildrenMergeOp); + } + } +} + +void DirectoryMergeWindow::compareCurrentFile() +{ + if(!d->canContinue()) return; + + if(d->m_bRealMergeStarted) + { + KMessageBox::sorry(this, i18n("This operation is currently not possible."), i18n("Operation Not Possible")); + return; + } + QStringList errors; + if(MergeFileInfos* pMFI = d->getMFI(currentIndex())) + { + if(!(pMFI->hasDir())) + { + Q_EMIT startDiffMerge(errors, + pMFI->existsInA() ? pMFI->getFileInfoA()->absoluteFilePath() : QString(""), + pMFI->existsInB() ? pMFI->getFileInfoB()->absoluteFilePath() : QString(""), + pMFI->existsInC() ? pMFI->getFileInfoC()->absoluteFilePath() : QString(""), + "", + "", "", "", nullptr); + } + } + Q_EMIT updateAvailabilities(); +} + +void DirectoryMergeWindow::slotCompareExplicitlySelectedFiles() +{ + if(!d->isDir(d->m_selection1Index) && !d->canContinue()) return; + + if(d->m_bRealMergeStarted) + { + KMessageBox::sorry(this, i18n("This operation is currently not possible."), i18n("Operation Not Possible")); + return; + } + + QStringList errors; + Q_EMIT startDiffMerge(errors, + d->getFileName(d->m_selection1Index), + d->getFileName(d->m_selection2Index), + d->getFileName(d->m_selection3Index), + "", + "", "", "", nullptr); + d->m_selection1Index = QModelIndex(); + d->m_selection2Index = QModelIndex(); + d->m_selection3Index = QModelIndex(); + + Q_EMIT updateAvailabilities(); + update(); +} + +void DirectoryMergeWindow::slotMergeExplicitlySelectedFiles() +{ + if(!d->isDir(d->m_selection1Index) && !d->canContinue()) return; + + if(d->m_bRealMergeStarted) + { + KMessageBox::sorry(this, i18n("This operation is currently not possible."), i18n("Operation Not Possible")); + return; + } + QStringList errors; + QString fn1 = d->getFileName(d->m_selection1Index); + QString fn2 = d->getFileName(d->m_selection2Index); + QString fn3 = d->getFileName(d->m_selection3Index); + + Q_EMIT startDiffMerge(errors, fn1, fn2, fn3, + fn3.isEmpty() ? fn2 : fn3, + "", "", "", nullptr); + d->m_selection1Index = QModelIndex(); + d->m_selection2Index = QModelIndex(); + d->m_selection3Index = QModelIndex(); + + Q_EMIT updateAvailabilities(); + update(); +} + +bool DirectoryMergeWindow::isFileSelected() +{ + if(MergeFileInfos* pMFI = d->getMFI(currentIndex())) + { + return !(pMFI->hasDir() || pMFI->conflictingFileTypes()); + } + return false; +} + +void DirectoryMergeWindow::mergeResultSaved(const QString& fileName) +{ + QModelIndex mi = (d->m_mergeItemList.empty() || d->m_currentIndexForOperation == d->m_mergeItemList.end()) + ? QModelIndex() + : *d->m_currentIndexForOperation; + + MergeFileInfos* pMFI = d->getMFI(mi); + if(pMFI == nullptr) + { + // This can happen if the same file is saved and modified and saved again. Nothing to do then. + return; + } + if(fileName == pMFI->fullNameDest()) + { + if(pMFI->getOperation() == eMergeToAB) + { + bool bSuccess = d->copyFLD(pMFI->fullNameB(), pMFI->fullNameA()); + if(!bSuccess) + { + KMessageBox::error(this, i18n("An error occurred while copying.")); + d->m_pStatusInfo->setWindowTitle(i18n("Merge Error")); + d->m_pStatusInfo->exec(); + //if ( m_pStatusInfo->firstChild()!=0 ) + // m_pStatusInfo->ensureItemVisible( m_pStatusInfo->last() ); + d->m_bError = true; + d->setOpStatus(mi, eOpStatusError); + pMFI->setOperation(eCopyBToA); + return; + } + } + d->setOpStatus(mi, eOpStatusDone); + pMFI->endOperation(); + if(d->m_mergeItemList.size() == 1) + { + d->m_mergeItemList.clear(); + d->m_bRealMergeStarted = false; + } + } + + Q_EMIT updateAvailabilities(); +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::canContinue() +{ + if(KDiff3App::shouldContinue() && !m_bError) + { + QModelIndex mi = (m_mergeItemList.empty() || m_currentIndexForOperation == m_mergeItemList.end()) ? QModelIndex() : *m_currentIndexForOperation; + MergeFileInfos* pMFI = getMFI(mi); + if(pMFI && pMFI->isOperationRunning()) + { + setOpStatus(mi, eOpStatusNotSaved); + pMFI->endOperation(); + if(m_mergeItemList.size() == 1) + { + m_mergeItemList.clear(); + m_bRealMergeStarted = false; + } + } + + return true; + } + return false; +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::executeMergeOperation(MergeFileInfos& mfi, bool& bSingleFileMerge) +{ + bool bCreateBackups = m_pOptions->m_bDmCreateBakFiles; + // First decide destname + QString destName; + switch(mfi.getOperation()) + { + case eNoOperation: + case eDeleteAB: + break; + case eMergeToAB: // let the user save in B. In mergeResultSaved() the file will be copied to A. + case eMergeToB: + case eDeleteB: + case eCopyAToB: + destName = mfi.fullNameB(); + break; + case eMergeToA: + case eDeleteA: + case eCopyBToA: + destName = mfi.fullNameA(); + break; + case eMergeABToDest: + case eMergeABCToDest: + case eCopyAToDest: + case eCopyBToDest: + case eCopyCToDest: + case eDeleteFromDest: + /* + Do not replace with code that ignores gDirInfo->destDir(). + Any such patch will be rejected. KDiff3 intentionally supports custom destination directories. + */ + destName = mfi.fullNameDest(); + break; + default: + KMessageBox::error(mWindow, i18n("Unknown merge operation. (This must never happen!)")); + } + + bool bSuccess = false; + bSingleFileMerge = false; + switch(mfi.getOperation()) + { + case eNoOperation: + bSuccess = true; + break; + case eCopyAToDest: + case eCopyAToB: + bSuccess = copyFLD(mfi.fullNameA(), destName); + break; + case eCopyBToDest: + case eCopyBToA: + bSuccess = copyFLD(mfi.fullNameB(), destName); + break; + case eCopyCToDest: + bSuccess = copyFLD(mfi.fullNameC(), destName); + break; + case eDeleteFromDest: + case eDeleteA: + case eDeleteB: + bSuccess = deleteFLD(destName, bCreateBackups); + break; + case eDeleteAB: + bSuccess = deleteFLD(mfi.fullNameA(), bCreateBackups) && + deleteFLD(mfi.fullNameB(), bCreateBackups); + break; + case eMergeABToDest: + case eMergeToA: + case eMergeToAB: + case eMergeToB: + bSuccess = mergeFLD(mfi.fullNameA(), mfi.fullNameB(), "", + destName, bSingleFileMerge); + break; + case eMergeABCToDest: + bSuccess = mergeFLD( + mfi.existsInA() ? mfi.fullNameA() : QString(""), + mfi.existsInB() ? mfi.fullNameB() : QString(""), + mfi.existsInC() ? mfi.fullNameC() : QString(""), + destName, bSingleFileMerge); + break; + default: + KMessageBox::error(mWindow, i18n("Unknown merge operation.")); + } + + return bSuccess; +} + +// Check if the merge can start, and prepare the m_mergeItemList which then contains all +// items that must be merged. +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::prepareMergeStart(const QModelIndex& miBegin, const QModelIndex& miEnd, bool bVerbose) +{ + if(bVerbose) + { + int status = KMessageBox::warningYesNoCancel(mWindow, + i18n("The merge is about to begin.\n\n" + "Choose \"Do it\" if you have read the instructions and know what you are doing.\n" + "Choosing \"Simulate it\" will tell you what would happen.\n\n" + "Be aware that this program still has beta status " + "and there is NO WARRANTY whatsoever! Make backups of your vital data!"), + i18n("Starting Merge"), + KGuiItem(i18n("Do It")), + KGuiItem(i18n("Simulate It"))); + if(status == KMessageBox::Yes) + m_bRealMergeStarted = true; + else if(status == KMessageBox::No) + m_bSimulatedMergeStarted = true; + else + return; + } + else + { + m_bRealMergeStarted = true; + } + + m_mergeItemList.clear(); + if(!miBegin.isValid()) + return; + + for(QModelIndex mi = miBegin; mi != miEnd; mi = treeIterator(mi)) + { + MergeFileInfos* pMFI = getMFI(mi); + if(pMFI && pMFI->isOperationRunning()) + { + m_mergeItemList.push_back(mi); + QString errorText; + if(pMFI->getOperation() == eConflictingFileTypes) + { + errorText = i18n("The highlighted item has a different type in the different folders. Select what to do."); + } + if(pMFI->getOperation() == eConflictingAges) + { + errorText = i18n("The modification dates of the file are equal but the files are not. Select what to do."); + } + if(pMFI->getOperation() == eChangedAndDeleted) + { + errorText = i18n("The highlighted item was changed in one folder and deleted in the other. Select what to do."); + } + if(!errorText.isEmpty()) + { + mWindow->scrollTo(mi, QAbstractItemView::EnsureVisible); + mWindow->setCurrentIndex(mi); + KMessageBox::error(mWindow, errorText); + m_mergeItemList.clear(); + m_bRealMergeStarted = false; + return; + } + } + } + + m_currentIndexForOperation = m_mergeItemList.begin(); +} + +void DirectoryMergeWindow::slotRunOperationForCurrentItem() +{ + if(!d->canContinue()) return; + + bool bVerbose = false; + if(d->m_mergeItemList.empty()) + { + QModelIndex miBegin = currentIndex(); + QModelIndex miEnd = d->treeIterator(miBegin, false, false); // find next visible sibling (no children) + + d->prepareMergeStart(miBegin, miEnd, bVerbose); + d->mergeContinue(true, bVerbose); + } + else + d->mergeContinue(false, bVerbose); +} + +void DirectoryMergeWindow::slotRunOperationForAllItems() +{ + if(!d->canContinue()) return; + + bool bVerbose = true; + if(d->m_mergeItemList.empty()) + { + QModelIndex miBegin = d->rowCount() > 0 ? d->index(0, 0, QModelIndex()) : QModelIndex(); + + d->prepareMergeStart(miBegin, QModelIndex(), bVerbose); + d->mergeContinue(true, bVerbose); + } + else + d->mergeContinue(false, bVerbose); +} + +void DirectoryMergeWindow::mergeCurrentFile() +{ + if(!d->canContinue()) return; + + if(d->m_bRealMergeStarted) + { + KMessageBox::sorry(this, i18n("This operation is currently not possible because folder merge is currently running."), i18n("Operation Not Possible")); + return; + } + + if(isFileSelected()) + { + MergeFileInfos* pMFI = d->getMFI(currentIndex()); + if(pMFI != nullptr) + { + d->m_mergeItemList.clear(); + d->m_mergeItemList.push_back(currentIndex()); + d->m_currentIndexForOperation = d->m_mergeItemList.begin(); + bool bDummy = false; + d->mergeFLD( + pMFI->existsInA() ? pMFI->getFileInfoA()->absoluteFilePath() : QString(""), + pMFI->existsInB() ? pMFI->getFileInfoB()->absoluteFilePath() : QString(""), + pMFI->existsInC() ? pMFI->getFileInfoC()->absoluteFilePath() : QString(""), + pMFI->fullNameDest(), + bDummy); + } + } + Q_EMIT updateAvailabilities(); +} + +// When bStart is true then m_currentIndexForOperation must still be processed. +// When bVerbose is true then a messagebox will tell when the merge is complete. +void DirectoryMergeWindow::DirectoryMergeWindowPrivate::mergeContinue(bool bStart, bool bVerbose) +{ + ProgressProxy pp; + if(m_mergeItemList.empty()) + return; + + int nrOfItems = 0; + int nrOfCompletedItems = 0; + int nrOfCompletedSimItems = 0; + + // Count the number of completed items (for the progress bar). + for(const QModelIndex& i : m_mergeItemList) + { + MergeFileInfos* pMFI = getMFI(i); + ++nrOfItems; + if(!pMFI->isOperationRunning()) + ++nrOfCompletedItems; + if(!pMFI->isSimOpRunning()) + ++nrOfCompletedSimItems; + } + + m_pStatusInfo->hide(); + m_pStatusInfo->clear(); + + QModelIndex miCurrent = m_currentIndexForOperation == m_mergeItemList.end() ? QModelIndex() : *m_currentIndexForOperation; + + bool bContinueWithCurrentItem = bStart; // true for first item, else false + bool bSkipItem = false; + if(!bStart && m_bError && miCurrent.isValid()) + { + int status = KMessageBox::warningYesNoCancel(mWindow, + i18n("There was an error in the last step.\n" + "Do you want to continue with the item that caused the error or do you want to skip this item?"), + i18n("Continue merge after an error"), + KGuiItem(i18n("Continue With Last Item")), + KGuiItem(i18n("Skip Item"))); + if(status == KMessageBox::Yes) + bContinueWithCurrentItem = true; + else if(status == KMessageBox::No) + bSkipItem = true; + else + return; + m_bError = false; + } + + pp.setMaxNofSteps(nrOfItems); + + bool bSuccess = true; + bool bSingleFileMerge = false; + bool bSim = m_bSimulatedMergeStarted; + while(bSuccess) + { + MergeFileInfos* pMFI = getMFI(miCurrent); + if(pMFI == nullptr) + { + m_mergeItemList.clear(); + m_bRealMergeStarted = false; + break; + } + + if(pMFI != nullptr && !bContinueWithCurrentItem) + { + if(bSim) + { + if(rowCount(miCurrent) == 0) + { + pMFI->endSimOp(); + } + } + else + { + if(rowCount(miCurrent) == 0) + { + if(pMFI->isOperationRunning()) + { + setOpStatus(miCurrent, bSkipItem ? eOpStatusSkipped : eOpStatusDone); + pMFI->endOperation(); + bSkipItem = false; + } + } + else + { + setOpStatus(miCurrent, eOpStatusInProgress); + } + } + } + + if(!bContinueWithCurrentItem) + { + // Depth first + QModelIndex miPrev = miCurrent; + ++m_currentIndexForOperation; + miCurrent = m_currentIndexForOperation == m_mergeItemList.end() ? QModelIndex() : *m_currentIndexForOperation; + if((!miCurrent.isValid() || miCurrent.parent() != miPrev.parent()) && miPrev.parent().isValid()) + { + // Check if the parent may be set to "Done" + QModelIndex miParent = miPrev.parent(); + bool bDone = true; + while(bDone && miParent.isValid()) + { + for(int childIdx = 0; childIdx < rowCount(miParent); ++childIdx) + { + pMFI = getMFI(index(childIdx, 0, miParent)); + if((!bSim && pMFI->isOperationRunning()) || (bSim && !pMFI->isSimOpRunning())) + { + bDone = false; + break; + } + } + if(bDone) + { + pMFI = getMFI(miParent); + if(bSim) + pMFI->endSimOp(); + else + { + setOpStatus(miParent, eOpStatusDone); + pMFI->endOperation(); + } + } + miParent = miParent.parent(); + } + } + } + + if(!miCurrent.isValid()) // end? + { + if(m_bRealMergeStarted) + { + if(bVerbose) + { + KMessageBox::information(mWindow, i18n("Merge operation complete."), i18n("Merge Complete")); + } + m_bRealMergeStarted = false; + m_pStatusInfo->setWindowTitle(i18n("Merge Complete")); + } + if(m_bSimulatedMergeStarted) + { + m_bSimulatedMergeStarted = false; + QModelIndex mi = rowCount() > 0 ? index(0, 0, QModelIndex()) : QModelIndex(); + for(; mi.isValid(); mi = treeIterator(mi)) + { + getMFI(mi)->startSimOp(); + } + m_pStatusInfo->setWindowTitle(i18n("Simulated merge complete: Check if you agree with the proposed operations.")); + m_pStatusInfo->exec(); + } + m_mergeItemList.clear(); + m_bRealMergeStarted = false; + return; + } + + pMFI = getMFI(miCurrent); + + pp.setInformation(pMFI->subPath(), + bSim ? nrOfCompletedSimItems : nrOfCompletedItems, + false // bRedrawUpdate + ); + + bSuccess = executeMergeOperation(*pMFI, bSingleFileMerge); // Here the real operation happens. + + if(bSuccess) + { + if(bSim) + ++nrOfCompletedSimItems; + else + ++nrOfCompletedItems; + bContinueWithCurrentItem = false; + } + + if(pp.wasCancelled()) + break; + } // end while + + //g_pProgressDialog->hide(); + + mWindow->setCurrentIndex(miCurrent); + mWindow->scrollTo(miCurrent, EnsureVisible); + if(!bSuccess && !bSingleFileMerge) + { + KMessageBox::error(mWindow, i18n("An error occurred. Press OK to see detailed information.")); + m_pStatusInfo->setWindowTitle(i18n("Merge Error")); + m_pStatusInfo->exec(); + //if ( m_pStatusInfo->firstChild()!=0 ) + // m_pStatusInfo->ensureItemVisible( m_pStatusInfo->last() ); + m_bError = true; + + setOpStatus(miCurrent, eOpStatusError); + } + else + { + m_bError = false; + } + Q_EMIT mWindow->updateAvailabilities(); + + if(m_currentIndexForOperation == m_mergeItemList.end()) + { + m_mergeItemList.clear(); + m_bRealMergeStarted = false; + } +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::deleteFLD(const QString& name, bool bCreateBackup) +{ + FileAccess fi(name, true); + if(!fi.exists()) + return true; + + if(bCreateBackup) + { + bool bSuccess = renameFLD(name, name + ".orig"); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error: While deleting %1: Creating backup failed.", name)); + return false; + } + } + else + { + if(fi.isDir() && !fi.isSymLink()) + m_pStatusInfo->addText(i18n("delete folder recursively( %1 )", name)); + else + m_pStatusInfo->addText(i18n("delete( %1 )", name)); + + if(m_bSimulatedMergeStarted) + { + return true; + } + + if(fi.isDir() && !fi.isSymLink()) // recursive directory delete only for real dirs, not symlinks + { + t_DirectoryList dirList; + bool bSuccess = fi.listDir(&dirList, false, true, "*", "", "", false, false); // not recursive, find hidden files + + if(!bSuccess) + { + // No Permission to read directory or other error. + m_pStatusInfo->addText(i18n("Error: delete folder operation failed while trying to read the folder.")); + return false; + } + + for(const FileAccess& fi2: dirList) // for each file... + { + Q_ASSERT(fi2.fileName() != "." && fi2.fileName() != ".."); + + bSuccess = deleteFLD(fi2.absoluteFilePath(), false); + if(!bSuccess) break; + } + if(bSuccess) + { + bSuccess = FileAccess::removeDir(name); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error: rmdir( %1 ) operation failed.", name)); // krazy:exclude=syscalls + return false; + } + } + } + else + { + bool bSuccess = fi.removeFile(); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error: delete operation failed.")); + return false; + } + } + } + return true; +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::mergeFLD(const QString& nameA, const QString& nameB, const QString& nameC, const QString& nameDest, bool& bSingleFileMerge) +{ + FileAccess fi(nameA); + if(fi.isDir()) + { + return makeDir(nameDest); + } + + QStringList errors; + // Make sure that the dir exists, into which we will save the file later. + int pos = nameDest.lastIndexOf('/'); + if(pos > 0) + { + QString parentName = nameDest.left(pos); + bool bSuccess = makeDir(parentName, true /*quiet*/); + if(!bSuccess) + return false; + } + + m_pStatusInfo->addText(i18n("manual merge( %1, %2, %3 -> %4)", nameA, nameB, nameC, nameDest)); + if(m_bSimulatedMergeStarted) + { + m_pStatusInfo->addText(i18n(" Note: After a manual merge the user should continue by pressing F7.")); + return true; + } + + bSingleFileMerge = true; + setOpStatus(*m_currentIndexForOperation, eOpStatusInProgress); + mWindow->scrollTo(*m_currentIndexForOperation, EnsureVisible); + + Q_EMIT mWindow->startDiffMerge(errors, nameA, nameB, nameC, nameDest, "", "", "", nullptr); + + return false; +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::copyFLD(const QString& srcName, const QString& destName) +{ + bool bSuccess = false; + + if(srcName == destName) + return true; + + FileAccess fi(srcName); + FileAccess faDest(destName, true); + if(faDest.exists() && !(fi.isDir() && faDest.isDir() && (fi.isSymLink() == faDest.isSymLink()))) + { + bSuccess = deleteFLD(destName, m_pOptions->m_bDmCreateBakFiles); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error: copy( %1 -> %2 ) failed." + "Deleting existing destination failed.", + srcName, destName)); + return bSuccess; + } + } + + if(fi.isSymLink() && ((fi.isDir() && !m_bFollowDirLinks) || (!fi.isDir() && !m_bFollowFileLinks))) + { + m_pStatusInfo->addText(i18n("copyLink( %1 -> %2 )", srcName, destName)); + + if(m_bSimulatedMergeStarted) + { + return true; + } + FileAccess destFi(destName); + if(!destFi.isLocal() || !fi.isLocal()) + { + m_pStatusInfo->addText(i18n("Error: copyLink failed: Remote links are not yet supported.")); + return false; + } + + bSuccess = false; + QString linkTarget = fi.readLink(); + if(!linkTarget.isEmpty()) + { + bSuccess = FileAccess::symLink(linkTarget, destName); + if(!bSuccess) + m_pStatusInfo->addText(i18n("Error: copyLink failed.")); + } + return bSuccess; + } + + if(fi.isDir()) + { + if(faDest.exists()) + return true; + + bSuccess = makeDir(destName); + return bSuccess; + } + + int pos = destName.lastIndexOf('/'); + if(pos > 0) + { + QString parentName = destName.left(pos); + bSuccess = makeDir(parentName, true /*quiet*/); + if(!bSuccess) + return false; + } + + m_pStatusInfo->addText(i18n("copy( %1 -> %2 )", srcName, destName)); + + if(m_bSimulatedMergeStarted) + { + return true; + } + + FileAccess faSrc(srcName); + bSuccess = faSrc.copyFile(destName); + if(!bSuccess) m_pStatusInfo->addText(faSrc.getStatusText()); + return bSuccess; +} + +// Rename is not an operation that can be selected by the user. +// It will only be used to create backups. +// Hence it will delete an existing destination without making a backup (of the old backup.) +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::renameFLD(const QString& srcName, const QString& destName) +{ + if(srcName == destName) + return true; + FileAccess destFile = FileAccess(destName, true); + if(destFile.exists()) + { + bool bSuccess = deleteFLD(destName, false /*no backup*/); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error during rename( %1 -> %2 ): " + "Cannot delete existing destination.", + srcName, destName)); + return false; + } + } + + m_pStatusInfo->addText(i18n("rename( %1 -> %2 )", srcName, destName)); + if(m_bSimulatedMergeStarted) + { + return true; + } + + bool bSuccess = FileAccess(srcName).rename(destFile); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error: Rename failed.")); + return false; + } + + return true; +} + +bool DirectoryMergeWindow::DirectoryMergeWindowPrivate::makeDir(const QString& name, bool bQuiet) +{ + FileAccess fi(name, true); + if(fi.exists() && fi.isDir()) + return true; + + if(fi.exists() && !fi.isDir()) + { + bool bSuccess = deleteFLD(name, true); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error during makeDir of %1. " + "Cannot delete existing file.", + name)); + return false; + } + } + + int pos = name.lastIndexOf('/'); + if(pos > 0) + { + QString parentName = name.left(pos); + bool bSuccess = makeDir(parentName, true); + if(!bSuccess) + return false; + } + + if(!bQuiet) + m_pStatusInfo->addText(i18n("makeDir( %1 )", name)); + + if(m_bSimulatedMergeStarted) + { + return true; + } + + bool bSuccess = FileAccess::makeDir(name); + if(!bSuccess) + { + m_pStatusInfo->addText(i18n("Error while creating folder.")); + return false; + } + return true; +} + +DirectoryMergeInfo::DirectoryMergeInfo(QWidget* pParent) + : QFrame(pParent) +{ + QVBoxLayout* topLayout = new QVBoxLayout(this); + topLayout->setContentsMargins(0, 0, 0, 0); + + QGridLayout* grid = new QGridLayout(); + topLayout->addLayout(grid); + grid->setColumnStretch(1, 10); + + int line = 0; + + m_pA = new QLabel(i18n("A"), this); + grid->addWidget(m_pA, line, 0); + m_pInfoA = new QLabel(this); + grid->addWidget(m_pInfoA, line, 1); + ++line; + + m_pB = new QLabel(i18n("B"), this); + grid->addWidget(m_pB, line, 0); + m_pInfoB = new QLabel(this); + grid->addWidget(m_pInfoB, line, 1); + ++line; + + m_pC = new QLabel(i18n("C"), this); + grid->addWidget(m_pC, line, 0); + m_pInfoC = new QLabel(this); + grid->addWidget(m_pInfoC, line, 1); + ++line; + + m_pDest = new QLabel(i18n("Dest"), this); + grid->addWidget(m_pDest, line, 0); + m_pInfoDest = new QLabel(this); + grid->addWidget(m_pInfoDest, line, 1); + ++line; + + m_pInfoList = new QTreeWidget(this); + topLayout->addWidget(m_pInfoList); + m_pInfoList->setHeaderLabels({i18n("Folder"), i18n("Type"), i18n("Size"), + i18n("Attr"), i18n("Last Modification"), i18n("Link-Destination")}); + setMinimumSize(100, 100); + + m_pInfoList->installEventFilter(this); + m_pInfoList->setRootIsDecorated(false); +} + +bool DirectoryMergeInfo::eventFilter(QObject* o, QEvent* e) +{ + if(e->type() == QEvent::FocusIn && o == m_pInfoList) + Q_EMIT gotFocus(); + return false; +} + +void DirectoryMergeInfo::addListViewItem(const QString& dir, const QString& basePath, FileAccess* fi) +{ + if(basePath.isEmpty()) + { + return; + } + + if(fi != nullptr && fi->exists()) + { + QString dateString = fi->lastModified().toString(QLocale::system().dateTimeFormat()); + + m_pInfoList->addTopLevelItem(new QTreeWidgetItem( + m_pInfoList, + {dir, QString(fi->isDir() ? i18n("Folder") : i18n("File")) + (fi->isSymLink() ? i18n("-Link") : ""), QString::number(fi->size()), QLatin1String(fi->isReadable() ? "r" : " ") + QLatin1String(fi->isWritable() ? "w" : " ") + QLatin1String((fi->isExecutable() ? "x" : " ")), dateString, QString(fi->isSymLink() ? (" -> " + fi->readLink()) : QString(""))})); + } + else + { + m_pInfoList->addTopLevelItem(new QTreeWidgetItem( + m_pInfoList, + {dir, i18n("not available"), "", "", "", ""})); + } +} + +void DirectoryMergeInfo::setInfo( + const FileAccess& dirA, + const FileAccess& dirB, + const FileAccess& dirC, + const FileAccess& dirDest, + MergeFileInfos& mfi) +{ + bool bHideDest = false; + if(dirA.absoluteFilePath() == dirDest.absoluteFilePath()) + { + m_pA->setText(i18n("A (Dest): ")); + bHideDest = true; + } + else + m_pA->setText(!dirC.isValid() ? i18n("A: ") : i18n("A (Base): ")); + + m_pInfoA->setText(dirA.prettyAbsPath()); + + if(dirB.absoluteFilePath() == dirDest.absoluteFilePath()) + { + m_pB->setText(i18n("B (Dest): ")); + bHideDest = true; + } + else + m_pB->setText(i18n("B: ")); + m_pInfoB->setText(dirB.prettyAbsPath()); + + if(dirC.absoluteFilePath() == dirDest.absoluteFilePath()) + { + m_pC->setText(i18n("C (Dest): ")); + bHideDest = true; + } + else + m_pC->setText(i18n("C: ")); + m_pInfoC->setText(dirC.prettyAbsPath()); + + m_pDest->setText(i18n("Dest: ")); + m_pInfoDest->setText(dirDest.prettyAbsPath()); + + if(!dirC.isValid()) + { + m_pC->hide(); + m_pInfoC->hide(); + } + else + { + m_pC->show(); + m_pInfoC->show(); + } + + if(!dirDest.isValid() || bHideDest) + { + m_pDest->hide(); + m_pInfoDest->hide(); + } + else + { + m_pDest->show(); + m_pInfoDest->show(); + } + + m_pInfoList->clear(); + addListViewItem(i18n("A"), dirA.prettyAbsPath(), mfi.getFileInfoA()); + addListViewItem(i18n("B"), dirB.prettyAbsPath(), mfi.getFileInfoB()); + addListViewItem(i18n("C"), dirC.prettyAbsPath(), mfi.getFileInfoC()); + if(!bHideDest) + { + FileAccess fiDest(dirDest.prettyAbsPath() + '/' + mfi.subPath(), true); + addListViewItem(i18n("Dest"), dirDest.prettyAbsPath(), &fiDest); + } + for(int i = 0; i < m_pInfoList->columnCount(); ++i) + m_pInfoList->resizeColumnToContents(i); +} + +void DirectoryMergeWindow::slotSaveMergeState() +{ + //slotStatusMsg(i18n("Saving Directory Merge State ...")); + + QString dirMergeStateFilename = QFileDialog::getSaveFileName(this, i18n("Save Folder Merge State As..."), QDir::currentPath()); + if(!dirMergeStateFilename.isEmpty()) + { + QFile file(dirMergeStateFilename); + bool bSuccess = file.open(QIODevice::WriteOnly); + if(bSuccess) + { + QTextStream ts(&file); + + QModelIndex mi(d->index(0, 0, QModelIndex())); + while(mi.isValid()) + { + MergeFileInfos* pMFI = d->getMFI(mi); + ts << *pMFI; + mi = d->treeIterator(mi, true, true); + } + } + } + + //slotStatusMsg(i18n("Ready.")); +} + +void DirectoryMergeWindow::slotLoadMergeState() +{ +} + +void DirectoryMergeWindow::updateFileVisibilities() +{ + bool bShowIdentical = d->m_pDirShowIdenticalFiles->isChecked(); + bool bShowDifferent = d->m_pDirShowDifferentFiles->isChecked(); + bool bShowOnlyInA = d->m_pDirShowFilesOnlyInA->isChecked(); + bool bShowOnlyInB = d->m_pDirShowFilesOnlyInB->isChecked(); + bool bShowOnlyInC = d->m_pDirShowFilesOnlyInC->isChecked(); + bool bThreeDirs = d->isThreeWay(); + d->m_selection1Index = QModelIndex(); + d->m_selection2Index = QModelIndex(); + d->m_selection3Index = QModelIndex(); + + // in first run set all dirs to equal and determine if they are not equal. + // on second run don't change the equal-status anymore; it is needed to + // set the visibility (when bShowIdentical is false). + for(int loop = 0; loop < 2; ++loop) + { + QModelIndex mi = d->rowCount() > 0 ? d->index(0, 0, QModelIndex()) : QModelIndex(); + while(mi.isValid()) + { + MergeFileInfos* pMFI = d->getMFI(mi); + bool bDir = pMFI->hasDir(); + if(loop == 0 && bDir) + { //Treat all links and directories to equal by default. + pMFI->updateDirectoryOrLink(); + } + + bool bVisible = + (bShowIdentical && pMFI->existsEveryWhere() && pMFI->isEqualAB() && (pMFI->isEqualAC() || !bThreeDirs)) || + ((bShowDifferent || bDir) && pMFI->existsCount() >= 2 && (!pMFI->isEqualAB() || !(pMFI->isEqualAC() || !bThreeDirs))) || + (bShowOnlyInA && pMFI->onlyInA()) || (bShowOnlyInB && pMFI->onlyInB()) || (bShowOnlyInC && pMFI->onlyInC()); + + QString fileName = pMFI->fileName(); + bVisible = bVisible && ((bDir && !Utils::wildcardMultiMatch(d->m_pOptions->m_DmDirAntiPattern, fileName, d->m_bCaseSensitive)) || (Utils::wildcardMultiMatch(d->m_pOptions->m_DmFilePattern, fileName, d->m_bCaseSensitive) && !Utils::wildcardMultiMatch(d->m_pOptions->m_DmFileAntiPattern, fileName, d->m_bCaseSensitive))); + + if(loop != 0) + setRowHidden(mi.row(), mi.parent(), !bVisible); + + bool bEqual = bThreeDirs ? pMFI->isEqualAB() && pMFI->isEqualAC() : pMFI->isEqualAB(); + if(!bEqual && bVisible && loop == 0) // Set all parents to "not equal" + { + pMFI->updateParents(); + } + mi = d->treeIterator(mi, true, true); + } + } +} + +void DirectoryMergeWindow::slotShowIdenticalFiles() +{ + d->m_pOptions->m_bDmShowIdenticalFiles = d->m_pDirShowIdenticalFiles->isChecked(); + updateFileVisibilities(); +} +void DirectoryMergeWindow::slotShowDifferentFiles() +{ + updateFileVisibilities(); +} +void DirectoryMergeWindow::slotShowFilesOnlyInA() +{ + updateFileVisibilities(); +} +void DirectoryMergeWindow::slotShowFilesOnlyInB() +{ + updateFileVisibilities(); +} +void DirectoryMergeWindow::slotShowFilesOnlyInC() +{ + updateFileVisibilities(); +} + +void DirectoryMergeWindow::slotSynchronizeDirectories() {} +void DirectoryMergeWindow::slotChooseNewerFiles() {} + +void DirectoryMergeWindow::initDirectoryMergeActions(KDiff3App* pKDiff3App, KActionCollection* ac) +{ +#include "xpm/showequalfiles.xpm" +#include "xpm/showfilesonlyina.xpm" +#include "xpm/showfilesonlyinb.xpm" +#include "xpm/showfilesonlyinc.xpm" +#include "xpm/startmerge.xpm" + + d->m_pDirStartOperation = GuiUtils::createAction(i18n("Start/Continue Folder Merge"), QKeySequence(Qt::Key_F7), this, &DirectoryMergeWindow::slotRunOperationForAllItems, ac, "dir_start_operation"); + d->m_pDirRunOperationForCurrentItem = GuiUtils::createAction(i18n("Run Operation for Current Item"), QKeySequence(Qt::Key_F6), this, &DirectoryMergeWindow::slotRunOperationForCurrentItem, ac, "dir_run_operation_for_current_item"); + d->m_pDirCompareCurrent = GuiUtils::createAction(i18n("Compare Selected File"), this, &DirectoryMergeWindow::compareCurrentFile, ac, "dir_compare_current"); + d->m_pDirMergeCurrent = GuiUtils::createAction(i18n("Merge Current File"), QIcon(QPixmap(startmerge)), i18n("Merge\nFile"), pKDiff3App, &KDiff3App::slotMergeCurrentFile, ac, "merge_current"); + d->m_pDirFoldAll = GuiUtils::createAction(i18n("Fold All Subfolders"), this, &DirectoryMergeWindow::collapseAll, ac, "dir_fold_all"); + d->m_pDirUnfoldAll = GuiUtils::createAction(i18n("Unfold All Subfolders"), this, &DirectoryMergeWindow::expandAll, ac, "dir_unfold_all"); + d->m_pDirRescan = GuiUtils::createAction(i18n("Rescan"), QKeySequence(Qt::SHIFT + Qt::Key_F5), this, &DirectoryMergeWindow::reload, ac, "dir_rescan"); + d->m_pDirSaveMergeState = nullptr; //GuiUtils::createAction< QAction >(i18n("Save Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotSaveMergeState, ac, "dir_save_merge_state"); + d->m_pDirLoadMergeState = nullptr; //GuiUtils::createAction< QAction >(i18n("Load Directory Merge State ..."), 0, this, &DirectoryMergeWindow::slotLoadMergeState, ac, "dir_load_merge_state"); + d->m_pDirChooseAEverywhere = GuiUtils::createAction(i18n("Choose A for All Items"), this, &DirectoryMergeWindow::slotChooseAEverywhere, ac, "dir_choose_a_everywhere"); + d->m_pDirChooseBEverywhere = GuiUtils::createAction(i18n("Choose B for All Items"), this, &DirectoryMergeWindow::slotChooseBEverywhere, ac, "dir_choose_b_everywhere"); + d->m_pDirChooseCEverywhere = GuiUtils::createAction(i18n("Choose C for All Items"), this, &DirectoryMergeWindow::slotChooseCEverywhere, ac, "dir_choose_c_everywhere"); + d->m_pDirAutoChoiceEverywhere = GuiUtils::createAction(i18n("Auto-Choose Operation for All Items"), this, &DirectoryMergeWindow::slotAutoChooseEverywhere, ac, "dir_autochoose_everywhere"); + d->m_pDirDoNothingEverywhere = GuiUtils::createAction(i18n("No Operation for All Items"), this, &DirectoryMergeWindow::slotNoOpEverywhere, ac, "dir_nothing_everywhere"); + + // d->m_pDirSynchronizeDirectories = GuiUtils::createAction< KToggleAction >(i18n("Synchronize Directories"), 0, this, &DirectoryMergeWindow::slotSynchronizeDirectories, ac, "dir_synchronize_directories"); + // d->m_pDirChooseNewerFiles = GuiUtils::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, &DirectoryMergeWindow::slotChooseNewerFiles, ac, "dir_choose_newer_files"); + + d->m_pDirShowIdenticalFiles = GuiUtils::createAction(i18n("Show Identical Files"), QIcon(QPixmap(showequalfiles)), i18n("Identical\nFiles"), this, &DirectoryMergeWindow::slotShowIdenticalFiles, ac, "dir_show_identical_files"); + d->m_pDirShowDifferentFiles = GuiUtils::createAction(i18n("Show Different Files"), this, &DirectoryMergeWindow::slotShowDifferentFiles, ac, "dir_show_different_files"); + d->m_pDirShowFilesOnlyInA = GuiUtils::createAction(i18n("Show Files only in A"), QIcon(QPixmap(showfilesonlyina)), i18n("Files\nonly in A"), this, &DirectoryMergeWindow::slotShowFilesOnlyInA, ac, "dir_show_files_only_in_a"); + d->m_pDirShowFilesOnlyInB = GuiUtils::createAction(i18n("Show Files only in B"), QIcon(QPixmap(showfilesonlyinb)), i18n("Files\nonly in B"), this, &DirectoryMergeWindow::slotShowFilesOnlyInB, ac, "dir_show_files_only_in_b"); + d->m_pDirShowFilesOnlyInC = GuiUtils::createAction(i18n("Show Files only in C"), QIcon(QPixmap(showfilesonlyinc)), i18n("Files\nonly in C"), this, &DirectoryMergeWindow::slotShowFilesOnlyInC, ac, "dir_show_files_only_in_c"); + + d->m_pDirShowIdenticalFiles->setChecked(d->m_pOptions->m_bDmShowIdenticalFiles); + + d->m_pDirCompareExplicit = GuiUtils::createAction(i18n("Compare Explicitly Selected Files"), this, &DirectoryMergeWindow::slotCompareExplicitlySelectedFiles, ac, "dir_compare_explicitly_selected_files"); + d->m_pDirMergeExplicit = GuiUtils::createAction(i18n("Merge Explicitly Selected Files"), this, &DirectoryMergeWindow::slotMergeExplicitlySelectedFiles, ac, "dir_merge_explicitly_selected_files"); + + d->m_pDirCurrentDoNothing = GuiUtils::createAction(i18n("Do Nothing"), this, &DirectoryMergeWindow::slotCurrentDoNothing, ac, "dir_current_do_nothing"); + d->m_pDirCurrentChooseA = GuiUtils::createAction(i18n("A"), this, &DirectoryMergeWindow::slotCurrentChooseA, ac, "dir_current_choose_a"); + d->m_pDirCurrentChooseB = GuiUtils::createAction(i18n("B"), this, &DirectoryMergeWindow::slotCurrentChooseB, ac, "dir_current_choose_b"); + d->m_pDirCurrentChooseC = GuiUtils::createAction(i18n("C"), this, &DirectoryMergeWindow::slotCurrentChooseC, ac, "dir_current_choose_c"); + d->m_pDirCurrentMerge = GuiUtils::createAction(i18n("Merge"), this, &DirectoryMergeWindow::slotCurrentMerge, ac, "dir_current_merge"); + d->m_pDirCurrentDelete = GuiUtils::createAction(i18n("Delete (if exists)"), this, &DirectoryMergeWindow::slotCurrentDelete, ac, "dir_current_delete"); + + d->m_pDirCurrentSyncDoNothing = GuiUtils::createAction(i18n("Do Nothing"), this, &DirectoryMergeWindow::slotCurrentDoNothing, ac, "dir_current_sync_do_nothing"); + d->m_pDirCurrentSyncCopyAToB = GuiUtils::createAction(i18n("Copy A to B"), this, &DirectoryMergeWindow::slotCurrentCopyAToB, ac, "dir_current_sync_copy_a_to_b"); + d->m_pDirCurrentSyncCopyBToA = GuiUtils::createAction(i18n("Copy B to A"), this, &DirectoryMergeWindow::slotCurrentCopyBToA, ac, "dir_current_sync_copy_b_to_a"); + d->m_pDirCurrentSyncDeleteA = GuiUtils::createAction(i18n("Delete A"), this, &DirectoryMergeWindow::slotCurrentDeleteA, ac, "dir_current_sync_delete_a"); + d->m_pDirCurrentSyncDeleteB = GuiUtils::createAction(i18n("Delete B"), this, &DirectoryMergeWindow::slotCurrentDeleteB, ac, "dir_current_sync_delete_b"); + d->m_pDirCurrentSyncDeleteAAndB = GuiUtils::createAction(i18n("Delete A && B"), this, &DirectoryMergeWindow::slotCurrentDeleteAAndB, ac, "dir_current_sync_delete_a_and_b"); + d->m_pDirCurrentSyncMergeToA = GuiUtils::createAction(i18n("Merge to A"), this, &DirectoryMergeWindow::slotCurrentMergeToA, ac, "dir_current_sync_merge_to_a"); + d->m_pDirCurrentSyncMergeToB = GuiUtils::createAction(i18n("Merge to B"), this, &DirectoryMergeWindow::slotCurrentMergeToB, ac, "dir_current_sync_merge_to_b"); + d->m_pDirCurrentSyncMergeToAAndB = GuiUtils::createAction(i18n("Merge to A && B"), this, &DirectoryMergeWindow::slotCurrentMergeToAAndB, ac, "dir_current_sync_merge_to_a_and_b"); +} + +void DirectoryMergeWindow::setupConnections(const KDiff3App* app) +{ + chk_connect(this, &DirectoryMergeWindow::startDiffMerge, app, &KDiff3App::slotFileOpen2); + chk_connect(selectionModel(), &QItemSelectionModel::selectionChanged, app, &KDiff3App::slotUpdateAvailabilities); + chk_connect(selectionModel(), &QItemSelectionModel::currentChanged, app, &KDiff3App::slotUpdateAvailabilities); + chk_connect(this, static_cast(&DirectoryMergeWindow::updateAvailabilities), app, &KDiff3App::slotUpdateAvailabilities); + chk_connect(this, &DirectoryMergeWindow::statusBarMessage, app, &KDiff3App::slotStatusMsg); + chk_connect(app, &KDiff3App::doRefresh, this, &DirectoryMergeWindow::slotRefresh); +} + +void DirectoryMergeWindow::updateAvailabilities(bool bMergeEditorVisible, bool bDirCompare, bool bDiffWindowVisible, + KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC) +{ + d->m_pDirStartOperation->setEnabled(bDirCompare); + d->m_pDirRunOperationForCurrentItem->setEnabled(bDirCompare); + d->m_pDirFoldAll->setEnabled(bDirCompare); + d->m_pDirUnfoldAll->setEnabled(bDirCompare); + + d->m_pDirCompareCurrent->setEnabled(bDirCompare && isVisible() && isFileSelected()); + + d->m_pDirMergeCurrent->setEnabled((bDirCompare && isVisible() && isFileSelected()) || bDiffWindowVisible); + + d->m_pDirRescan->setEnabled(bDirCompare); + + bool bThreeDirs = d->isThreeWay(); + d->m_pDirAutoChoiceEverywhere->setEnabled(bDirCompare && isVisible()); + d->m_pDirDoNothingEverywhere->setEnabled(bDirCompare && isVisible()); + d->m_pDirChooseAEverywhere->setEnabled(bDirCompare && isVisible()); + d->m_pDirChooseBEverywhere->setEnabled(bDirCompare && isVisible()); + d->m_pDirChooseCEverywhere->setEnabled(bDirCompare && isVisible() && bThreeDirs); + + MergeFileInfos* pMFI = d->getMFI(currentIndex()); + + bool bItemActive = bDirCompare && isVisible() && pMFI != nullptr; // && hasFocus(); + bool bMergeMode = bThreeDirs || !d->m_bSyncMode; + bool bFTConflict = pMFI == nullptr ? false : pMFI->conflictingFileTypes(); + + bool bDirWindowHasFocus = isVisible() && hasFocus(); + + d->m_pDirShowIdenticalFiles->setEnabled(bDirCompare && isVisible()); + d->m_pDirShowDifferentFiles->setEnabled(bDirCompare && isVisible()); + d->m_pDirShowFilesOnlyInA->setEnabled(bDirCompare && isVisible()); + d->m_pDirShowFilesOnlyInB->setEnabled(bDirCompare && isVisible()); + d->m_pDirShowFilesOnlyInC->setEnabled(bDirCompare && isVisible() && bThreeDirs); + + d->m_pDirCompareExplicit->setEnabled(bDirCompare && isVisible() && d->m_selection2Index.isValid()); + d->m_pDirMergeExplicit->setEnabled(bDirCompare && isVisible() && d->m_selection2Index.isValid()); + + d->m_pDirCurrentDoNothing->setEnabled(bItemActive && bMergeMode); + d->m_pDirCurrentChooseA->setEnabled(bItemActive && bMergeMode && pMFI->existsInA()); + d->m_pDirCurrentChooseB->setEnabled(bItemActive && bMergeMode && pMFI->existsInB()); + d->m_pDirCurrentChooseC->setEnabled(bItemActive && bMergeMode && pMFI->existsInC()); + d->m_pDirCurrentMerge->setEnabled(bItemActive && bMergeMode && !bFTConflict); + d->m_pDirCurrentDelete->setEnabled(bItemActive && bMergeMode); + if(bDirWindowHasFocus) + { + chooseA->setEnabled(bItemActive && bDirCompare ? pMFI->existsInA() : true); + chooseB->setEnabled(bItemActive && bDirCompare ? pMFI->existsInB() : true); + chooseC->setEnabled(bItemActive && bDirCompare ? pMFI->existsInC() : KDiff3App::isTripleDiff() ); + chooseA->setChecked(false); + chooseB->setChecked(false); + chooseC->setChecked(false); + } + else + { + chooseA->setEnabled(bMergeEditorVisible); + chooseB->setEnabled(bMergeEditorVisible); + chooseC->setEnabled(bMergeEditorVisible && KDiff3App::isTripleDiff()); + } + + d->m_pDirCurrentSyncDoNothing->setEnabled(bItemActive && !bMergeMode); + d->m_pDirCurrentSyncCopyAToB->setEnabled(bItemActive && !bMergeMode && pMFI->existsInA()); + d->m_pDirCurrentSyncCopyBToA->setEnabled(bItemActive && !bMergeMode && pMFI->existsInB()); + d->m_pDirCurrentSyncDeleteA->setEnabled(bItemActive && !bMergeMode && pMFI->existsInA()); + d->m_pDirCurrentSyncDeleteB->setEnabled(bItemActive && !bMergeMode && pMFI->existsInB()); + d->m_pDirCurrentSyncDeleteAAndB->setEnabled(bItemActive && !bMergeMode && pMFI->existsInA() && pMFI->existsInB()); + d->m_pDirCurrentSyncMergeToA->setEnabled(bItemActive && !bMergeMode && !bFTConflict); + d->m_pDirCurrentSyncMergeToB->setEnabled(bItemActive && !bMergeMode && !bFTConflict); + d->m_pDirCurrentSyncMergeToAAndB->setEnabled(bItemActive && !bMergeMode && !bFTConflict); +} + +//#include "directorymergewindow.moc" diff --git a/src/directorymergewindow.h b/src/directorymergewindow.h new file mode 100644 index 0000000..3d4bffb --- /dev/null +++ b/src/directorymergewindow.h @@ -0,0 +1,170 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef DIRECTORY_MERGE_WINDOW_H +#define DIRECTORY_MERGE_WINDOW_H + +#include "common.h" +#include "fileaccess.h" +#include "diff.h" //TotalDiffStatus + +#include +#include + +#include +#include + +class Options; +class StatusInfo; +class DirectoryMergeInfo; +class OneDirectoryInfo; +class QLabel; +class QAction; +class KToggleAction; +class KActionCollection; +class TotalDiffStatus; +class DirectoryInfo; + +class MergeFileInfos; + +class KDiff3App; +class DirectoryMergeWindow : public QTreeView +{ + Q_OBJECT + public: + struct t_ItemInfo; + + DirectoryMergeWindow(QWidget* pParent, const QSharedPointer& pOptions); + ~DirectoryMergeWindow() override; + void setDirectoryMergeInfo(DirectoryMergeInfo* p); + bool init( + const QSharedPointer& dirInfo, + bool bDirectoryMerge, + bool bReload = false + ); + bool isFileSelected(); + bool isDirectoryMergeInProgress(); + int totalColumnWidth(); + bool isSyncMode(); + bool isScanning(); + void initDirectoryMergeActions(KDiff3App* pKDiff3App, KActionCollection* ac); + + void setupConnections(const KDiff3App* app); + void updateAvailabilities(bool bMergeEditorVisible, bool bDirCompare, bool bDiffWindowVisible, + KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC); + void updateFileVisibilities(); + + void mousePressEvent(QMouseEvent* e) override; + void keyPressEvent(QKeyEvent* e) override; + void focusInEvent(QFocusEvent* e) override; + void focusOutEvent(QFocusEvent* e) override; + void contextMenuEvent(QContextMenuEvent* e) override; + + QString getDirNameA() const; + QString getDirNameB() const; + QString getDirNameC() const; + QString getDirNameDest() const; + + public Q_SLOTS: + void reload(); + void mergeCurrentFile(); + void compareCurrentFile(); + void slotRunOperationForAllItems(); + void slotRunOperationForCurrentItem(); + void mergeResultSaved(const QString& fileName); + void slotChooseAEverywhere(); + void slotChooseBEverywhere(); + void slotChooseCEverywhere(); + void slotAutoChooseEverywhere(); + void slotNoOpEverywhere(); + void slotFoldAllSubdirs(); + void slotUnfoldAllSubdirs(); + void slotShowIdenticalFiles(); + void slotShowDifferentFiles(); + void slotShowFilesOnlyInA(); + void slotShowFilesOnlyInB(); + void slotShowFilesOnlyInC(); + + void slotSynchronizeDirectories(); + void slotChooseNewerFiles(); + + void slotCompareExplicitlySelectedFiles(); + void slotMergeExplicitlySelectedFiles(); + + // Merge current item (merge mode) + void slotCurrentDoNothing(); + void slotCurrentChooseA(); + void slotCurrentChooseB(); + void slotCurrentChooseC(); + void slotCurrentMerge(); + void slotCurrentDelete(); + // Sync current item + void slotCurrentCopyAToB(); + void slotCurrentCopyBToA(); + void slotCurrentDeleteA(); + void slotCurrentDeleteB(); + void slotCurrentDeleteAAndB(); + void slotCurrentMergeToA(); + void slotCurrentMergeToB(); + void slotCurrentMergeToAAndB(); + + void slotSaveMergeState(); + void slotLoadMergeState(); + + inline void slotRefresh() { updateFileVisibilities(); }; + +Q_SIGNALS: + void startDiffMerge(QStringList &errors, const QString& fn1, const QString& fn2, const QString& fn3, const QString& ofn, const QString&, const QString&, const QString&, TotalDiffStatus*); + void updateAvailabilities(); + void statusBarMessage(const QString& msg); +protected Q_SLOTS: + void onDoubleClick(const QModelIndex&); + void onExpanded(); + void currentChanged(const QModelIndex& current, const QModelIndex& previous) override; // override +private: + int getIntFromIndex(const QModelIndex& index) const; + const QSharedPointer& getOptions() const; + + class DirectoryMergeWindowPrivate; + DirectoryMergeWindowPrivate* d; + class DirMergeItemDelegate; +}; + +class DirectoryMergeInfo : public QFrame +{ + Q_OBJECT +public: + explicit DirectoryMergeInfo(QWidget* pParent); + void setInfo( + const FileAccess& dirA, + const FileAccess& dirB, + const FileAccess& dirC, + const FileAccess& dirDest, + MergeFileInfos& mfi); + QTreeWidget* getInfoList() { return m_pInfoList; } + bool eventFilter(QObject* o, QEvent* e) override; +Q_SIGNALS: + void gotFocus(); + +private: + void addListViewItem(const QString& dir, const QString& basePath, FileAccess* fi); + + QLabel* m_pInfoA; + QLabel* m_pInfoB; + QLabel* m_pInfoC; + QLabel* m_pInfoDest; + + QLabel* m_pA; + QLabel* m_pB; + QLabel* m_pC; + QLabel* m_pDest; + + QTreeWidget* m_pInfoList; +}; + +#endif diff --git a/src/fileaccess.cpp b/src/fileaccess.cpp new file mode 100644 index 0000000..b77a290 --- /dev/null +++ b/src/fileaccess.cpp @@ -0,0 +1,1139 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#include "fileaccess.h" + +#include "common.h" +#include "CvsIgnoreList.h" +#include +#ifndef AUTOTEST +#include "DefaultFileAccessJobHandler.h" +#endif +#include "FileAccessJobHandler.h" +#include "Logging.h" +#include "Utils.h" +#include "progress.h" + +#include +#include +#include +#ifndef Q_OS_WIN +#include +#endif +#include + +#include +#include +#include +#include +#include + +#include + +//This triggers template instantiation even if set to default. +#ifndef AUTOTEST +FileAccess::FileAccess() +{ + mJobHandler.reset(new DefaultFileAccessJobHandler(this)); +} +#else +FileAccess::FileAccess() = default; +#endif + +FileAccess::~FileAccess() = default; + +FileAccess::FileAccess(const FileAccess& b): + m_pParent{b.m_pParent}, + m_url{b.m_url}, + m_bValidData{b.m_bValidData}, + m_baseDir{b.m_baseDir}, + m_fileInfo{b.m_fileInfo}, + m_linkTarget{b.m_linkTarget}, + m_name{b.m_name}, + mDisplayName{b.mDisplayName}, + m_localCopy{b.m_localCopy}, + mPhysicalPath{b.mPhysicalPath}, + tmpFile{b.tmpFile}, + realFile{b.realFile}, + m_size{b.m_size}, + m_modificationTime{b.m_modificationTime}, + m_bSymLink{b.m_bSymLink}, + m_bFile{b.m_bFile}, + m_bDir{b.m_bDir}, + m_bExists{b.m_bExists}, + m_bWritable{b.m_bWritable}, + m_bReadable{b.m_bReadable}, + m_bExecutable{b.m_bExecutable}, + m_bHidden{b.m_bHidden} +{ + mJobHandler.reset(b.mJobHandler ? b.mJobHandler->copy(this) : nullptr); +} + +FileAccess::FileAccess(FileAccess&& b) noexcept: + m_pParent{b.m_pParent}, + m_bValidData{b.m_bValidData}, + m_baseDir{b.m_baseDir}, + m_fileInfo{b.m_fileInfo}, + m_linkTarget{b.m_linkTarget}, + m_name{b.m_name}, + mDisplayName{b.mDisplayName}, + m_localCopy{b.m_localCopy}, + mPhysicalPath{b.mPhysicalPath}, + tmpFile{b.tmpFile}, + realFile{b.realFile}, + m_size{b.m_size}, + m_modificationTime{b.m_modificationTime}, + m_bSymLink{b.m_bSymLink}, + m_bFile{b.m_bFile}, + m_bDir{b.m_bDir}, + m_bExists{b.m_bExists}, + m_bWritable{b.m_bWritable}, + m_bReadable{b.m_bReadable}, + m_bExecutable{b.m_bExecutable}, + m_bHidden{b.m_bHidden} +{ + mJobHandler.reset(b.mJobHandler.take()); + if(mJobHandler) mJobHandler->setFileAccess(this); + + m_url = std::move(b.m_url); + + b.m_pParent = nullptr; + b.m_bValidData = false; + + b.m_baseDir = QDir(); + b.m_fileInfo = QFileInfo(); + b.m_linkTarget = QString(); + b.m_name = QString(); + b.mDisplayName = QString(); + b.m_localCopy = QString(); + b.mPhysicalPath = QString(); + b.tmpFile = nullptr; + b.realFile = nullptr; + b.m_size = 0; + b.m_modificationTime = QDateTime::fromMSecsSinceEpoch(0); + b.m_bSymLink = false; + b.m_bFile = false; + b.m_bDir = false; + b.m_bExists = false; + b.m_bWritable = false; + b.m_bReadable = false; + b.m_bExecutable = false; + b.m_bHidden = false; +} + +FileAccess& FileAccess::operator=(const FileAccess& b) +{ + if(&b == this) return *this; + + //mJobHandler defaults to nullptr + + mJobHandler.reset(b.mJobHandler ? b.mJobHandler->copy(this) : nullptr); + + m_pParent = b.m_pParent; + m_url = b.m_url; + m_bValidData = b.m_bValidData; + m_baseDir = b.m_baseDir; + m_fileInfo = b.m_fileInfo; + m_linkTarget = b.m_linkTarget; + m_name = b.m_name; + mDisplayName = b.mDisplayName; + m_localCopy = b.m_localCopy; + mPhysicalPath = b.mPhysicalPath; + tmpFile = b.tmpFile; + realFile = b.realFile; + m_size = b.m_size; + m_modificationTime = b.m_modificationTime; + m_bSymLink = b.m_bSymLink; + m_bFile = b.m_bFile; + m_bDir = b.m_bDir; + m_bExists = b.m_bExists; + m_bWritable = b.m_bWritable; + m_bReadable = b.m_bReadable; + m_bExecutable = b.m_bExecutable; + m_bHidden = b.m_bHidden; + return *this; +} + +FileAccess& FileAccess::operator=(FileAccess&& b) noexcept +{ + if(&b == this) return *this; + + mJobHandler.reset(b.mJobHandler.take()); + if (mJobHandler) mJobHandler->setFileAccess(this); + + m_pParent = b.m_pParent; + m_url = b.m_url; + m_bValidData = b.m_bValidData; + m_baseDir = b.m_baseDir; + m_fileInfo = b.m_fileInfo; + m_linkTarget = b.m_linkTarget; + m_name = b.m_name; + mDisplayName = b.mDisplayName; + m_localCopy = b.m_localCopy; + mPhysicalPath = b.mPhysicalPath; + tmpFile = b.tmpFile; + realFile = b.realFile; + m_size = b.m_size; + m_modificationTime = b.m_modificationTime; + m_bSymLink = b.m_bSymLink; + m_bFile = b.m_bFile; + m_bDir = b.m_bDir; + m_bExists = b.m_bExists; + m_bWritable = b.m_bWritable; + m_bReadable = b.m_bReadable; + m_bExecutable = b.m_bExecutable; + m_bHidden = b.m_bHidden; + + b.m_pParent = nullptr; + b.m_url = QUrl(); + b.m_bValidData = false; + + b.m_baseDir = QDir(); + b.m_fileInfo = QFileInfo(); + b.m_linkTarget = QString(); + b.m_name = QString(); + b.mDisplayName = QString(); + b.m_localCopy = QString(); + b.mPhysicalPath = QString(); + b.tmpFile = nullptr; + b.realFile = nullptr; + b.m_size = 0; + b.m_modificationTime = QDateTime::fromMSecsSinceEpoch(0); + b.m_bSymLink = false; + b.m_bFile = false; + b.m_bDir = false; + b.m_bExists = false; + b.m_bWritable = false; + b.m_bReadable = false; + b.m_bExecutable = false; + b.m_bHidden = false; + return *this; +} + +FileAccess::FileAccess(const QString& name, bool bWantToWrite) +{ + setFile(name, bWantToWrite); +} + +FileAccess::FileAccess(const QUrl& name, bool bWantToWrite) +{ + setFile(name, bWantToWrite); +} + +/* + Performs a re-init. This delibratly does not include mJobHandler. +*/ +void FileAccess::reset() +{ + m_url.clear(); + m_name.clear(); + m_fileInfo = QFileInfo(); + m_bExists = false; + m_bFile = false; + m_bDir = false; + m_bSymLink = false; + m_bWritable = false; + m_bHidden = false; + m_size = 0; + m_modificationTime = QDateTime::fromMSecsSinceEpoch(0); + + mDisplayName.clear(); + mPhysicalPath.clear(); + m_linkTarget.clear(); + //Cleanup temp file if any. + tmpFile = QSharedPointer::create(); + realFile.clear(); + + m_pParent = nullptr; + m_bValidData = false; +} + +/* + Needed only during directory listing right now. +*/ +void FileAccess::setFile(FileAccess* pParent, const QFileInfo& fi) +{ + Q_ASSERT(pParent != this); +#ifndef AUTOTEST + if(mJobHandler == nullptr) mJobHandler.reset(new DefaultFileAccessJobHandler(this)); +#endif + reset(); + + m_fileInfo = fi; + m_url = QUrl::fromLocalFile(m_fileInfo.absoluteFilePath()); + + m_pParent = pParent; + loadData(); +} + +void FileAccess::setFile(const QString& name, bool bWantToWrite) +{ + if(name.isEmpty()) + return; + + QUrl url = QUrl::fromUserInput(name, QString(), QUrl::AssumeLocalFile); + setFile(url, bWantToWrite); +} + +void FileAccess::setFile(const QUrl& url, bool bWantToWrite) +{ + if(url.isEmpty()) + return; + +#ifndef AUTOTEST + if(mJobHandler == nullptr) mJobHandler.reset(new DefaultFileAccessJobHandler(this)); +#endif + reset(); + Q_ASSERT(parent() == nullptr || url != parent()->url()); + + m_url = url; + + if(isLocal()) // Invalid urls are treated as local files. + { + /* + Utils::urlToString handles choosing the right API from QUrl. + */ + m_fileInfo.setFile(Utils::urlToString(url)); + + m_pParent = nullptr; + + loadData(); + } + else + { + m_name = m_url.fileName(); + + if(mJobHandler->stat(2 /*all details*/, bWantToWrite)) + m_bValidData = true; // After running stat() the variables are initialised + // and valid even if the file doesn't exist and the stat + // query failed. + } +} + +void FileAccess::loadData() +{ + m_fileInfo.setCaching(true); + + if(parent() == nullptr) + m_baseDir.setPath(m_fileInfo.absoluteFilePath()); + else + m_baseDir = m_pParent->m_baseDir; + + //convert to absolute path that doesn't depend on the current directory. + m_fileInfo.makeAbsolute(); + m_bSymLink = m_fileInfo.isSymLink(); + + m_bFile = m_fileInfo.isFile(); + m_bDir = m_fileInfo.isDir(); + m_bExists = m_fileInfo.exists(); + m_size = m_fileInfo.size(); + m_modificationTime = m_fileInfo.lastModified(); + m_bHidden = m_fileInfo.isHidden(); + + m_bWritable = m_fileInfo.isWritable(); + m_bReadable = m_fileInfo.isReadable(); + m_bExecutable = m_fileInfo.isExecutable(); + + m_name = m_fileInfo.fileName(); + if(isLocal() && m_name.isEmpty()) + { + m_name = m_fileInfo.absoluteDir().dirName(); + } + + if(isLocal() && m_bSymLink) + { + m_linkTarget = m_fileInfo.symLinkTarget(); +#ifndef Q_OS_WIN + // Unfortunately Qt5 symLinkTarget/readLink always returns an absolute path, even if the link is relative + char* s = (char*)malloc(PATH_MAX + 1); + ssize_t len = readlink(QFile::encodeName(absoluteFilePath()).constData(), s, PATH_MAX); + if(len > 0) + { + s[len] = '\0'; + m_linkTarget = QFile::decodeName(s); + } + free(s); +#endif + } + + realFile = QSharedPointer::create(absoluteFilePath()); + m_bValidData = true; +} + +void FileAccess::addPath(const QString& txt, bool reinit) +{ + if(!isLocal()) + { + QUrl url = m_url.adjusted(QUrl::StripTrailingSlash); + url.setPath(url.path() + '/' + txt); + m_url = url; + + if(reinit) + setFile(url); // reinitialize + } + else + { + QString slash = (txt.isEmpty() || txt[0] == '/') ? QLatin1String("") : QLatin1String("/"); + setFile(absoluteFilePath() + slash + txt); + } +} + +#ifndef AUTOTEST +/* Filetype: + S_IFMT 0170000 bitmask for the file type bitfields + S_IFSOCK 0140000 socket + S_IFLNK 0120000 symbolic link + S_IFREG 0100000 regular file + S_IFBLK 0060000 block device + S_IFDIR 0040000 directory + S_IFCHR 0020000 character device + S_IFIFO 0010000 fifo + S_ISUID 0004000 set UID bit + S_ISGID 0002000 set GID bit (see below) + S_ISVTX 0001000 sticky bit (see below) + + Access: + S_IRWXU 00700 mask for file owner permissions + S_IRUSR 00400 owner has read permission + S_IWUSR 00200 owner has write permission + S_IXUSR 00100 owner has execute permission + S_IRWXG 00070 mask for group permissions + S_IRGRP 00040 group has read permission + S_IWGRP 00020 group has write permission + S_IXGRP 00010 group has execute permission + S_IRWXO 00007 mask for permissions for others (not in group) + S_IROTH 00004 others have read permission + S_IWOTH 00002 others have write permission + S_IXOTH 00001 others have execute permission +*/ +//This is what KIO uses on windows so we might as well check it. +#ifdef Q_OS_WIN +#define S_IRUSR 0400 // Read by owner. +#define S_IWUSR 0200 // Write by owner. +#define S_IXUSR 0100 // Execute by owner. +#define S_IROTH 00004 // others have read permission +#define S_IWOTH 00002 // others have write permission +#define S_IXOTH 00001 // others have execute permission +#endif +void FileAccess::setFromUdsEntry(const KIO::UDSEntry& e, FileAccess* parent) +{ + long acc = 0; + long fileType = 0; + const QVector fields = e.fields(); + QString filePath; + + Q_ASSERT(this != parent); + m_pParent = parent; + + for(const uint fieldId: fields) + { + switch(fieldId) + { + case KIO::UDSEntry::UDS_SIZE: + m_size = e.numberValue(fieldId); + break; + case KIO::UDSEntry::UDS_NAME: + filePath = e.stringValue(fieldId); + qCDebug(kdiffFileAccess) << "filePath = " << filePath; + break; // During listDir the relative path is given here. + case KIO::UDSEntry::UDS_MODIFICATION_TIME: + m_modificationTime = QDateTime::fromMSecsSinceEpoch(e.numberValue(fieldId)); + break; + case KIO::UDSEntry::UDS_LINK_DEST: + m_linkTarget = e.stringValue(fieldId); + break; + case KIO::UDSEntry::UDS_ACCESS: + acc = e.numberValue(fieldId); + m_bReadable = (acc & S_IRUSR) != 0; + m_bWritable = (acc & S_IWUSR) != 0; + m_bExecutable = (acc & S_IXUSR) != 0; + break; + case KIO::UDSEntry::UDS_FILE_TYPE: + /* + According to KIO docs UDS_LINK_DEST not S_ISLNK should be used to determine if the url is a symlink. + UDS_FILE_TYPE is explicitly stated to be the type of the linked file not the link itself. + */ + + m_bSymLink = e.isLink(); + if(!m_bSymLink) + { + fileType = e.numberValue(fieldId); + m_bDir = (fileType & QT_STAT_MASK) == QT_STAT_DIR; + m_bFile = (fileType & QT_STAT_MASK) == QT_STAT_REG; + m_bExists = fileType != 0; + } + else + { + m_bDir = false; + m_bFile = false; + m_bExists = true; + } + break; + case KIO::UDSEntry::UDS_URL: + m_url = QUrl(e.stringValue(fieldId)); + qCDebug(kdiffFileAccess) << "Url = " << m_url; + break; + case KIO::UDSEntry::UDS_DISPLAY_NAME: + mDisplayName = e.stringValue(fieldId); + break; + case KIO::UDSEntry::UDS_LOCAL_PATH: + mPhysicalPath = e.stringValue(fieldId); + break; + case KIO::UDSEntry::UDS_MIME_TYPE: + case KIO::UDSEntry::UDS_GUESSED_MIME_TYPE: + case KIO::UDSEntry::UDS_XML_PROPERTIES: + default: + break; + } + } + + //Seems to be the norm for fish and possibly other prototcol handlers. + if(m_url.isEmpty()) + { + qCInfo(kdiffFileAccess) << "Url not received from KIO."; + if(Q_UNLIKELY(parent == nullptr)) + { + /* + Invalid entry we don't know the full url because KIO didn't tell us and there is no parent + node supplied. + This is a bug if it happens and should be logged. However it is a recoverable error. + */ + qCCritical(kdiffFileAccess) << i18n("Unable to determine full url. No parent specified."); + return; + } + /* + Don't trust QUrl::resolved it doesn't always do what kdiff3 wants. + */ + m_url = parent->url(); + addPath(filePath, false); + //Not something I expect to happen but can't rule it out either + if(Q_UNLIKELY(m_url == parent->url())) + { + m_url.clear(); + qCritical() << "Parent and child could not be distinguished."; + return; + } + + qCDebug(kdiffFileAccess) << "Computed url is: " << m_url; + //Verify that the scheme doesn't change. + Q_ASSERT(m_url.scheme() == parent->url().scheme()); + } + + //KIO does this when stating a remote folder. + if(filePath.isEmpty()) + { + filePath = m_url.path(); + } + + m_fileInfo = QFileInfo(filePath); + m_fileInfo.setCaching(true); + //These functions work on the path string without accessing the file system + m_name = m_fileInfo.fileName(); + if(m_name.isEmpty()) + m_name = m_fileInfo.absoluteDir().dirName(); + + if(isLocal()) + { + m_bExists = m_fileInfo.exists(); + + //insure modification time is initialized if it wasn't already. + if(m_modificationTime == QDateTime::fromMSecsSinceEpoch(0)) + m_modificationTime = m_fileInfo.lastModified(); + } + + m_bValidData = true; + m_bSymLink = !m_linkTarget.isEmpty(); + +#ifndef Q_OS_WIN + m_bHidden = m_name[0] == '.'; +#endif +} +#endif + +bool FileAccess::isValid() const +{ + return m_bValidData; +} + +bool FileAccess::isNormal() const +{ + /* + Speed is important here isNormal is called for every file during directory + comparison. It can therefor have great impact on overall performance. + + We also need to insure that we don't keep looking indefinitely when following + links that point to links. Therefore we hard cap at 15 such links in a chain + and make sure we don't cycle back to something we already saw. + */ + if(!mVisited && mDepth < 15 && isLocal() && isSymLink()) + { + FileAccess target(m_linkTarget); + + mVisited = true; + ++mDepth; + /* + Catch local links to special files. '/dev' has many of these. + */ + bool result = target.isSymLink() || target.isNormal(); + // mVisited has done its job and should be reset here. + mVisited = false; + --mDepth; + + return result; + } + + mVisited = false; + mDepth = 0; + + return !exists() || isFile() || isDir() || isSymLink(); +} + +bool FileAccess::isFile() const +{ + if(!isLocal()) + return m_bFile; + else + return m_fileInfo.isFile(); +} + +bool FileAccess::isDir() const +{ + if(!isLocal()) + return m_bDir; + else + return m_fileInfo.isDir(); +} + +bool FileAccess::isSymLink() const +{ + if(!isLocal()) + return m_bSymLink; + else + return m_fileInfo.isSymLink(); +} + +bool FileAccess::exists() const +{ + if(!isLocal()) + return m_bExists; + else//Thank you git for being different. + return m_fileInfo.exists() && absoluteFilePath() != "/dev/null"; +} + +qint64 FileAccess::size() const +{ + if(!isLocal()) + return m_size; + else + return m_fileInfo.size(); +} + +QUrl FileAccess::url() const +{ + return m_url; +} + +/* + FileAccess::isLocal() should return whether or not the m_url contains what KDiff3 considers + a local i.e. non-KIO path. This is not the necessarily same as what QUrl::isLocalFile thinks. +*/ +bool FileAccess::isLocal() const +{ + return m_url.isLocalFile() || !m_url.isValid() || m_url.scheme().isEmpty(); +} + +bool FileAccess::isReadable() const +{ + //This can be very slow in some network setups so use cached value + if(!isLocal()) + return m_bReadable; + else + return m_fileInfo.isReadable(); +} + +bool FileAccess::isWritable() const +{ + //This can be very slow in some network setups so use cached value + if(!isLocal()) + return m_bWritable; + else + return m_fileInfo.isWritable(); +} + +bool FileAccess::isExecutable() const +{ + //This can be very slow in some network setups so use cached value + if(!isLocal()) + return m_bExecutable; + else + return m_fileInfo.isExecutable(); +} + +bool FileAccess::isHidden() const +{ + if(!(isLocal())) + return m_bHidden; + else + return m_fileInfo.isHidden(); +} + +QString FileAccess::readLink() const +{ + return m_linkTarget; +} + +QString FileAccess::absoluteFilePath() const +{ + if(!isLocal()) + return m_url.url(); // return complete url + + return m_fileInfo.absoluteFilePath(); +} // Full abs path + +// Just the name-part of the path, without parent directories +QString FileAccess::fileName(bool needTmp) const +{ + if(!isLocal()) + return (needTmp) ? m_localCopy : m_name; + else + return m_name; +} + +QString FileAccess::fileRelPath() const +{ +#ifndef AUTOTEST + Q_ASSERT(m_pParent == nullptr || m_baseDir == m_pParent->m_baseDir); +#endif + QString path; + + if(isLocal()) + { + path = m_baseDir.relativeFilePath(m_fileInfo.absoluteFilePath()); + + return path; + } + else + { + //Stop right before the root directory + if(parent() == nullptr) return QString(); + + const FileAccess* curEntry = this; + path = fileName(); + //Avoid recursing to FileAccess::fileRelPath or we can get very large stacks. + curEntry = curEntry->parent(); + while(curEntry != nullptr) + { + if(curEntry->parent()) + path.prepend(curEntry->fileName() + '/'); + curEntry = curEntry->parent(); + } + return path; + } +} + +FileAccess* FileAccess::parent() const +{ + Q_ASSERT(m_pParent != this); + return m_pParent; +} + +//Workaround for QUrl::toDisplayString/QUrl::toString behavior that does not fit KDiff3's expectations +QString FileAccess::prettyAbsPath() const +{ + return isLocal() ? absoluteFilePath() : m_url.toDisplayString(); +} + +QDateTime FileAccess::lastModified() const +{ + Q_ASSERT(!m_modificationTime.isNull()); + return m_modificationTime; +} + +bool FileAccess::interruptableReadFile(void* pDestBuffer, qint64 maxLength) +{ + ProgressProxy pp; + const qint64 maxChunkSize = 100000; + qint64 i = 0; + pp.setMaxNofSteps(maxLength / maxChunkSize + 1); + while(i < maxLength) + { + qint64 nextLength = std::min(maxLength - i, maxChunkSize); + qint64 reallyRead = read((char*)pDestBuffer + i, nextLength); + if(reallyRead != nextLength) + { + setStatusText(i18n("Failed to read file: %1", absoluteFilePath())); + return false; + } + i += reallyRead; + + pp.setCurrent(qFloor(double(i) / maxLength * 100)); + if(pp.wasCancelled()) + return false; + } + return true; +} + +bool FileAccess::readFile(void* pDestBuffer, qint64 maxLength) +{ + bool success = false; + //Avoid hang on linux for special files. + if(!isNormal()) + return true; + + if(isLocal() || !m_localCopy.isEmpty()) + { + if(open(QIODevice::ReadOnly))//krazy:exclude=syscalls + { + success = interruptableReadFile(pDestBuffer, maxLength); // maxLength == f.read( (char*)pDestBuffer, maxLength ) + close(); + } + } + else + { + success = mJobHandler->get(pDestBuffer, maxLength); + } + + close(); + Q_ASSERT(!realFile->isOpen() && !tmpFile->isOpen()); + return success; +} + +bool FileAccess::writeFile(const void* pSrcBuffer, qint64 length) +{ + ProgressProxy pp; + if(isLocal()) + { + if(realFile->open(QIODevice::WriteOnly)) + { + const qint64 maxChunkSize = 100000; + pp.setMaxNofSteps(length / maxChunkSize + 1); + qint64 i = 0; + while(i < length) + { + qint64 nextLength = std::min(length - i, maxChunkSize); + qint64 reallyWritten = realFile->write((char*)pSrcBuffer + i, nextLength); + if(reallyWritten != nextLength) + { + realFile->close(); + return false; + } + i += reallyWritten; + + pp.step(); + if(pp.wasCancelled()) + { + realFile->close(); + return false; + } + } + + if(isExecutable()) // value is true if the old file was executable + { + // Preserve attributes + realFile->setPermissions(realFile->permissions() | QFile::ExeUser); + } + + realFile->close(); + return true; + } + } + else + { + bool success = mJobHandler->put(pSrcBuffer, length, true /*overwrite*/); + close(); + + Q_ASSERT(!realFile->isOpen() && !tmpFile->isOpen()); + + return success; + } + close(); + Q_ASSERT(!realFile->isOpen() && !tmpFile->isOpen()); + return false; +} + +bool FileAccess::copyFile(const QString& dest) +{ + return mJobHandler->copyFile(dest); // Handles local and remote copying. +} + +bool FileAccess::rename(const FileAccess& dest) +{ + return mJobHandler->rename(dest); +} + +bool FileAccess::removeFile() +{ + if(isLocal()) + { + return QDir().remove(absoluteFilePath()); + } + else + { + return mJobHandler->removeFile(url()); + } +} + +bool FileAccess::listDir(t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, + const QString& filePattern, const QString& fileAntiPattern, const QString& dirAntiPattern, + bool bFollowDirLinks, bool bUseCvsIgnore) +{ + Q_ASSERT(mJobHandler != nullptr); + return mJobHandler->listDir(pDirList, bRecursive, bFindHidden, filePattern, fileAntiPattern, + dirAntiPattern, bFollowDirLinks, bUseCvsIgnore); +} + +QString FileAccess::getTempName() const +{ + if(mPhysicalPath.isEmpty()) + return m_localCopy; + else + return mPhysicalPath; +} + +const QString& FileAccess::errorString() const +{ + return getStatusText(); +} + +bool FileAccess::open(const QFile::OpenMode flags) +{ + bool result; + result = createLocalCopy(); + if(!result) + { + setStatusText(i18n("Creating temp copy of %1 failed.", absoluteFilePath())); + return result; + } + + if(m_localCopy.isEmpty() && realFile != nullptr) + { + bool r = realFile->open(flags); + + setStatusText(i18n("Opening %1 failed. %2", absoluteFilePath(), realFile->errorString())); + return r; + } + + bool r = tmpFile->open(); + setStatusText(i18n("Opening %1 failed. %2", tmpFile->fileName(), tmpFile->errorString())); + return r; +} + +qint64 FileAccess::read(char* data, const qint64 maxlen) +{ + if(!isNormal()) + { + //This is not an error special files should be skipped + setStatusText(QString()); + return 0; + } + + qint64 len = 0; + if(m_localCopy.isEmpty() && realFile != nullptr) + { + len = realFile->read(data, maxlen); + if(len != maxlen) + { + setStatusText(i18n("Error reading from %1. %2", absoluteFilePath(), realFile->errorString())); + } + } + else + { + len = tmpFile->read(data, maxlen); + if(len != maxlen) + { + setStatusText(i18n("Error reading from %1. %2", absoluteFilePath(), tmpFile->errorString())); + } + } + + return len; +} + +void FileAccess::close() +{ + if(m_localCopy.isEmpty() && realFile != nullptr) + { + realFile->close(); + } + + tmpFile->close(); +} + +bool FileAccess::createLocalCopy() +{ + if(isLocal() || !m_localCopy.isEmpty() || !mPhysicalPath.isEmpty()) + return true; + + tmpFile->setAutoRemove(true); + tmpFile->open(); + tmpFile->close(); + m_localCopy = tmpFile->fileName(); + + return copyFile(tmpFile->fileName()); +} + +//static tempfile Generator +void FileAccess::createTempFile(QTemporaryFile& tmpFile) +{ + tmpFile.setAutoRemove(true); + tmpFile.open(); + tmpFile.close(); +} + +#ifndef AUTOTEST +bool FileAccess::makeDir(const QString& dirName) +{ + return DefaultFileAccessJobHandler::mkDir(dirName); +} + +bool FileAccess::removeDir(const QString& dirName) +{ + return DefaultFileAccessJobHandler::rmDir(dirName); +} +#endif // !AUTOTEST + +bool FileAccess::symLink(const QString& linkTarget, const QString& linkLocation) +{ + if(linkTarget.isEmpty() || linkLocation.isEmpty()) + return false; + return QFile::link(linkTarget, linkLocation); + //DefaultFileAccessJobHandler fh(0); + //return fh.symLink( linkTarget, linkLocation ); +} + +bool FileAccess::exists(const QString& name) +{ + FileAccess fa(name); + return fa.exists(); +} + +// If the size couldn't be determined by stat() then the file is copied to a local temp file. +qint64 FileAccess::sizeForReading() +{ + if(!isLocal() && m_size == 0 && mPhysicalPath.isEmpty()) + { + // Size couldn't be determined. Copy the file to a local temp place. + if(createLocalCopy()) + { + QString localCopy = tmpFile->fileName(); + QFileInfo fi(localCopy); + + m_size = fi.size(); + m_localCopy = localCopy; + return m_size; + } + else + { + return 0; + } + } + else + return size(); +} + +const QString& FileAccess::getStatusText() const +{ + return m_statusText; +} + +void FileAccess::setStatusText(const QString& s) +{ + m_statusText = s; +} + +QString FileAccess::cleanPath(const QString& path) // static +{ + /* + Tell Qt to treat the supplied path as user input otherwise it will not make useful decisions + about how to convert from the possibly local or remote "path" string to QUrl. + */ + QUrl url = QUrl::fromUserInput(path, QString(), QUrl::AssumeLocalFile); + + if(FileAccess::isLocal(url)) + { + return QDir::cleanPath(path); + } + else + { + return path; + } +} + +bool FileAccess::createBackup(const QString& bakExtension) +{ + if(exists()) + { + // First rename the existing file to the bak-file. If a bak-file file exists, delete that. + QString bakName = absoluteFilePath() + bakExtension; + FileAccess bakFile(bakName, true /*bWantToWrite*/); + if(bakFile.exists()) + { + bool bSuccess = bakFile.removeFile(); + if(!bSuccess) + { + setStatusText(i18n("While trying to make a backup, deleting an older backup failed.\nFilename: %1", bakName)); + return false; + } + } + bool bSuccess = rename(bakFile); // krazy:exclude=syscalls + if(!bSuccess) + { + setStatusText(i18n("While trying to make a backup, renaming failed.\nFilenames: %1 -> %2", + absoluteFilePath(), bakName)); + return false; + } + } + return true; +} + +void FileAccess::doError() +{ + m_bValidData = true; + m_bExists = false; +} + +void FileAccess::filterList(t_DirectoryList* pDirList, const QString& filePattern, + const QString& fileAntiPattern, const QString& dirAntiPattern, + const bool bUseCvsIgnore) +{ + CvsIgnoreList cvsIgnoreList; + if(bUseCvsIgnore) + { + cvsIgnoreList.init(*this, pDirList); + } + //TODO: Ask os for this information don't hard code it. +#if defined(Q_OS_WIN) + bool bCaseSensitive = false; +#else + bool bCaseSensitive = true; +#endif + + // Now remove all entries that should be ignored: + t_DirectoryList::iterator i; + for(i = pDirList->begin(); i != pDirList->end();) + { + t_DirectoryList::iterator i2 = i; + ++i2; + QString fileName = i->fileName(); + + if((i->isFile() && + (!Utils::wildcardMultiMatch(filePattern, fileName, bCaseSensitive) || + Utils::wildcardMultiMatch(fileAntiPattern, fileName, bCaseSensitive))) || + (i->isDir() && Utils::wildcardMultiMatch(dirAntiPattern, fileName, bCaseSensitive)) || + (bUseCvsIgnore && cvsIgnoreList.matches(fileName, bCaseSensitive))) + { + // Remove it + pDirList->erase(i); + i = i2; + } + else + { + ++i; + } + } +} + +//#include "fileaccess.moc" diff --git a/src/fileaccess.h b/src/fileaccess.h new file mode 100644 index 0000000..92ceb88 --- /dev/null +++ b/src/fileaccess.h @@ -0,0 +1,200 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef FILEACCESS_H +#define FILEACCESS_H + +#include + +#include +#include +#include +#include +#include +#include +#include + +#ifndef AUTOTEST +#include +#endif + +class t_DirectoryList; +class FileAccessJobHandler; +class DefaultFileAccessJobHandler; +/* + Defining a function as virtual in FileAccess is intended to allow testing sub classes to be written + more easily. This way the test can use a moc class that emulates the needed conditions with no + actual file being present. This would otherwise be a technical and logistical nightmare. +*/ +class FileAccess +{ + public: + FileAccess(); + + FileAccess(const FileAccess&); + FileAccess(FileAccess&&) noexcept; + FileAccess& operator=(const FileAccess&); + FileAccess& operator=(FileAccess&&) noexcept; + virtual ~FileAccess(); + explicit FileAccess(const QString& name, bool bWantToWrite = false); // name: local file or dirname or url (when supported) + + explicit FileAccess(const QUrl& name, bool bWantToWrite = false); // name: local file or dirname or url (when supported) + virtual void setFile(const QString& name, bool bWantToWrite = false); + virtual void setFile(const QUrl& url, bool bWantToWrite = false); + virtual void setFile(FileAccess* pParent, const QFileInfo& fi); + + virtual void loadData(); + + Q_REQUIRED_RESULT bool isNormal() const; + Q_REQUIRED_RESULT bool isValid() const; + Q_REQUIRED_RESULT virtual bool isFile() const; + Q_REQUIRED_RESULT virtual bool isDir() const; + Q_REQUIRED_RESULT virtual bool isSymLink() const; + Q_REQUIRED_RESULT virtual bool exists() const; + Q_REQUIRED_RESULT virtual qint64 size() const; // Size as returned by stat(). + Q_REQUIRED_RESULT virtual qint64 sizeForReading(); // If the size can't be determined by stat() then the file is copied to a local temp file. + Q_REQUIRED_RESULT virtual bool isReadable() const; + Q_REQUIRED_RESULT virtual bool isWritable() const; + Q_REQUIRED_RESULT virtual bool isExecutable() const; + Q_REQUIRED_RESULT virtual bool isHidden() const; + Q_REQUIRED_RESULT QString readLink() const; + + Q_REQUIRED_RESULT QDateTime lastModified() const; + + Q_REQUIRED_RESULT QString displayName() const { return mDisplayName.isEmpty() ? fileName() : mDisplayName; } + Q_REQUIRED_RESULT QString fileName(bool needTmp = false) const; // Just the name-part of the path, without parent directories + Q_REQUIRED_RESULT QString fileRelPath() const; // The path relative to base comparison directory + Q_REQUIRED_RESULT QString prettyAbsPath() const; + Q_REQUIRED_RESULT QUrl url() const; + void setUrl(const QUrl& inUrl) { m_url = inUrl; } + + //Workaround for QUrl::toDisplayString/QUrl::toString behavior that does not fit KDiff3's expectations + Q_REQUIRED_RESULT QString absoluteFilePath() const; + Q_REQUIRED_RESULT static QString prettyAbsPath(const QUrl& url) + { + if(!isLocal(url)) return url.toDisplayString(); + + //work around for bad path in windows drop event urls. (Qt 5.15.2 affected) + QString path = url.toLocalFile(); + if(!path.isEmpty() && !path.startsWith('/')) + return path; + + return QFileInfo(url.path()).absoluteFilePath(); + } + + //Workaround for QUrl::isLocalFile behavior that does not fit KDiff3's expectations. + Q_REQUIRED_RESULT bool isLocal() const; + Q_REQUIRED_RESULT static bool isLocal(const QUrl& url) + { + return url.isLocalFile() || !url.isValid() || url.scheme().isEmpty(); + } + + virtual bool readFile(void* pDestBuffer, qint64 maxLength); + virtual bool writeFile(const void* pSrcBuffer, qint64 length); + bool listDir(t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, + const QString& filePattern, const QString& fileAntiPattern, + const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore); + virtual bool copyFile(const QString& destUrl); + virtual bool createBackup(const QString& bakExtension); + + Q_REQUIRED_RESULT QString getTempName() const; + virtual bool createLocalCopy(); + static void createTempFile(QTemporaryFile&); + bool removeFile(); + static bool makeDir(const QString&); + static bool removeDir(const QString&); + static bool exists(const QString&); + static QString cleanPath(const QString&); + + //bool chmod( const QString& ); + bool rename(const FileAccess&); + static bool symLink(const QString& linkTarget, const QString& linkLocation); + + virtual void addPath(const QString& txt, bool reinit = true); + Q_REQUIRED_RESULT const QString& getStatusText() const; + + Q_REQUIRED_RESULT FileAccess* parent() const; // !=0 for listDir-results, but only valid if the parent was not yet destroyed. + + void doError(); + void filterList(t_DirectoryList* pDirList, const QString& filePattern, + const QString& fileAntiPattern, const QString& dirAntiPattern, + const bool bUseCvsIgnore); + + Q_REQUIRED_RESULT QDir getBaseDirectory() const { return m_baseDir; } + + bool open(const QFile::OpenMode flags); + + qint64 read(char* data, const qint64 maxlen); + void close(); + + const QString& errorString() const; + + //These should be exposed for auto tests + protected: +#ifndef AUTOTEST + friend DefaultFileAccessJobHandler; + void setFromUdsEntry(const KIO::UDSEntry& e, FileAccess* parent); +#endif + void setStatusText(const QString& s); + + void reset(); + + bool interruptableReadFile(void* pDestBuffer, qint64 maxLength); + + QScopedPointer mJobHandler; + FileAccess* m_pParent = nullptr; + QUrl m_url; + bool m_bValidData = false; + + QDir m_baseDir; + QFileInfo m_fileInfo; + QString m_linkTarget; + QString m_name; + + QString mDisplayName; + QString m_localCopy; + QString mPhysicalPath; + QSharedPointer tmpFile = QSharedPointer::create(); + QSharedPointer realFile = nullptr; + + qint64 m_size = 0; + QDateTime m_modificationTime = QDateTime::fromMSecsSinceEpoch(0); + bool m_bSymLink = false; + bool m_bFile = false; + bool m_bDir = false; + bool m_bExists = false; + bool m_bWritable = false; + bool m_bReadable = false; + bool m_bExecutable = false; + bool m_bHidden = false; + + QString m_statusText; // Might contain an error string, when the last operation didn't succeed. + + private: + /* + These two variables are used to prevent infinate/long running loops when a symlinks true target + must be found. isNormal is right now the only place this is needed. + + Never expose these outside FileAccess as they are internal values. + */ + mutable bool mVisited = false; + mutable quint32 mDepth = 0; +}; +/* + FileAccess objects should be copy and move assignable. + Used a few places in KDiff3 itself. + Also used in std::list +*/ +static_assert(std::is_copy_assignable::value, "FileAccess must be copy assignable."); +static_assert(std::is_move_assignable::value, "FileAccess must be move assignable."); + +class t_DirectoryList: public std::list +{ +}; + +#endif diff --git a/src/gnudiff_analyze.cpp b/src/gnudiff_analyze.cpp new file mode 100644 index 0000000..1931cfb --- /dev/null +++ b/src/gnudiff_analyze.cpp @@ -0,0 +1,838 @@ +/* Analyze file differences for GNU DIFF. + + Modified for KDiff3 by Joachim Eibl 2003. + The original file was part of GNU DIFF. + + + Part of KDiff3 - Text Diff And Merge Tool + + SPDX-FileCopyrightText: 1988-2002 Free Software Foundation, Inc. + SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +/* The basic algorithm is described in: + "An O(ND) Difference Algorithm and its Variations", Eugene Myers, + Algorithmica Vol. 1 No. 2, 1986, pp. 251-266; + see especially section 4.2, which describes the variation used below. + Unless the --minimal option is specified, this code uses the TOO_EXPENSIVE + heuristic, by Paul Eggert, to limit the cost to O(N**1.5 log N) + at the price of producing suboptimal output for large inputs with + many differences. + + The basic algorithm was independently discovered as described in: + "Algorithms for Approximate String Matching", E. Ukkonen, + Information and Control Vol. 64, 1985, pp. 100-118. */ + +#define GDIFF_MAIN + +#include "gnudiff_diff.h" + +#include // for max, min +#include + + +static GNULineRef *xvec, *yvec; /* Vectors being compared. */ +static GNULineRef *fdiag; /* Vector, indexed by diagonal, containing + 1 + the X coordinate of the point furthest + along the given diagonal in the forward + search of the edit matrix. */ +static GNULineRef *bdiag; /* Vector, indexed by diagonal, containing + the X coordinate of the point furthest + along the given diagonal in the backward + search of the edit matrix. */ +static GNULineRef too_expensive; /* Edit scripts longer than this are too + expensive to compute. */ + +#define SNAKE_LIMIT 20 /* Snakes bigger than this are considered `big'. */ + +struct partition { + GNULineRef xmid, ymid; /* Midpoints of this partition. */ + bool lo_minimal; /* Nonzero if low half will be analyzed minimally. */ + bool hi_minimal; /* Likewise for high half. */ +}; + +/* Find the midpoint of the shortest edit script for a specified + portion of the two files. + + Scan from the beginnings of the files, and simultaneously from the ends, + doing a breadth-first search through the space of edit-sequence. + When the two searches meet, we have found the midpoint of the shortest + edit sequence. + + If FIND_MINIMAL is nonzero, find the minimal edit script regardless + of expense. Otherwise, if the search is too expensive, use + heuristics to stop the search and report a suboptimal answer. + + Set PART->(xmid,ymid) to the midpoint (XMID,YMID). The diagonal number + XMID - YMID equals the number of inserted lines minus the number + of deleted lines (counting only lines before the midpoint). + Return the approximate edit cost; this is the total number of + lines inserted or deleted (counting only lines before the midpoint), + unless a heuristic is used to terminate the search prematurely. + + Set PART->lo_minimal to true iff the minimal edit script for the + left half of the partition is known; similarly for PART->hi_minimal. + + This function assumes that the first lines of the specified portions + of the two files do not match, and likewise that the last lines do not + match. The caller must trim matching lines from the beginning and end + of the portions it is going to specify. + + If we return the "wrong" partitions, + the worst this can do is cause suboptimal diff output. + It cannot cause incorrect diff output. */ + +GNULineRef GnuDiff::diag(GNULineRef xoff, GNULineRef xlim, GNULineRef yoff, GNULineRef ylim, bool find_minimal, + partition *part) const +{ + GNULineRef *const fd = fdiag; /* Give the compiler a chance. */ + GNULineRef *const bd = bdiag; /* Additional help for the compiler. */ + GNULineRef const *const xv = xvec; /* Still more help for the compiler. */ + GNULineRef const *const yv = yvec; /* And more and more . . . */ + GNULineRef const dmin = xoff - ylim; /* Minimum valid diagonal. */ + GNULineRef const dmax = xlim - yoff; /* Maximum valid diagonal. */ + GNULineRef const fmid = xoff - yoff; /* Center diagonal of top-down search. */ + GNULineRef const bmid = xlim - ylim; /* Center diagonal of bottom-up search. */ + GNULineRef fmin = fmid, fmax = fmid; /* Limits of top-down search. */ + GNULineRef bmin = bmid, bmax = bmid; /* Limits of bottom-up search. */ + GNULineRef c; /* Cost. */ + bool odd = (fmid - bmid) & 1; /* True if southeast corner is on an odd + diagonal with respect to the northwest. */ + + fd[fmid] = xoff; + bd[bmid] = xlim; + + for(c = 1;; ++c) + { + GNULineRef d; /* Active diagonal. */ + bool big_snake = false; + + /* Extend the top-down search by an edit step in each diagonal. */ + fmin > dmin ? fd[--fmin - 1] = -1 : ++fmin; + fmax < dmax ? fd[++fmax + 1] = -1 : --fmax; + for(d = fmax; d >= fmin; d -= 2) + { + GNULineRef x, y, oldx, tlo = fd[d - 1], thi = fd[d + 1]; + + if(tlo >= thi) + x = tlo + 1; + else + x = thi; + oldx = x; + y = x - d; + while(x < xlim && y < ylim && xv[x] == yv[y]) + ++x, ++y; + if(x - oldx > SNAKE_LIMIT) + big_snake = true; + fd[d] = x; + if(odd && bmin <= d && d <= bmax && bd[d] <= x) + { + part->xmid = x; + part->ymid = y; + part->lo_minimal = part->hi_minimal = true; + return 2 * c - 1; + } + } + + /* Similarly extend the bottom-up search. */ + bmin > dmin ? bd[--bmin - 1] = GNULINEREF_MAX : ++bmin; + bmax < dmax ? bd[++bmax + 1] = GNULINEREF_MAX : --bmax; + for(d = bmax; d >= bmin; d -= 2) + { + GNULineRef x, y, oldx, tlo = bd[d - 1], thi = bd[d + 1]; + + if(tlo < thi) + x = tlo; + else + x = thi - 1; + oldx = x; + y = x - d; + while(x > xoff && y > yoff && xv[x - 1] == yv[y - 1]) + --x, --y; + if(oldx - x > SNAKE_LIMIT) + big_snake = true; + bd[d] = x; + if(!odd && fmin <= d && d <= fmax && x <= fd[d]) + { + part->xmid = x; + part->ymid = y; + part->lo_minimal = part->hi_minimal = true; + return 2 * c; + } + } + + if(find_minimal) + continue; + + /* Heuristic: check occasionally for a diagonal that has made + lots of progress compared with the edit distance. + If we have any such, find the one that has made the most + progress and return it as if it had succeeded. + + With this heuristic, for files with a constant small density + of changes, the algorithm is linear in the file size. */ + + if(200 < c && big_snake && speed_large_files) + { + GNULineRef best; + + best = 0; + for(d = fmax; d >= fmin; d -= 2) + { + GNULineRef dd = d - fmid; + GNULineRef x = fd[d]; + GNULineRef y = x - d; + GNULineRef v = (x - xoff) * 2 - dd; + if(v > 12 * (c + (dd < 0 ? -dd : dd))) + { + if(v > best && xoff + SNAKE_LIMIT <= x && x < xlim && yoff + SNAKE_LIMIT <= y && y < ylim) + { + /* We have a good enough best diagonal; + now insist that it end with a significant snake. */ + int k; + + for(k = 1; xv[x - k] == yv[y - k]; k++) + if(k == SNAKE_LIMIT) + { + best = v; + part->xmid = x; + part->ymid = y; + break; + } + } + } + } + if(best > 0) + { + part->lo_minimal = true; + part->hi_minimal = false; + return 2 * c - 1; + } + + best = 0; + for(d = bmax; d >= bmin; d -= 2) + { + GNULineRef dd = d - bmid; + GNULineRef x = bd[d]; + GNULineRef y = x - d; + GNULineRef v = (xlim - x) * 2 + dd; + if(v > 12 * (c + (dd < 0 ? -dd : dd))) + { + if(v > best && xoff < x && x <= xlim - SNAKE_LIMIT && yoff < y && y <= ylim - SNAKE_LIMIT) + { + /* We have a good enough best diagonal; + now insist that it end with a significant snake. */ + int k; + + for(k = 0; xv[x + k] == yv[y + k]; k++) + if(k == SNAKE_LIMIT - 1) + { + best = v; + part->xmid = x; + part->ymid = y; + break; + } + } + } + } + if(best > 0) + { + part->lo_minimal = false; + part->hi_minimal = true; + return 2 * c - 1; + } + } + + /* Heuristic: if we've gone well beyond the call of duty, + give up and report halfway between our best results so far. */ + if(c >= too_expensive) + { + GNULineRef fxybest, fxbest; + GNULineRef bxybest, bxbest; + + fxbest = bxbest = 0; /* Pacify `gcc -Wall'. */ + + /* Find forward diagonal that maximizes X + Y. */ + fxybest = -1; + for(d = fmax; d >= fmin; d -= 2) + { + GNULineRef x = std::min(fd[d], xlim); + GNULineRef y = x - d; + if(ylim < y) + x = ylim + d, y = ylim; + if(fxybest < x + y) + { + fxybest = x + y; + fxbest = x; + } + } + + /* Find backward diagonal that minimizes X + Y. */ + bxybest = GNULINEREF_MAX; + for(d = bmax; d >= bmin; d -= 2) + { + GNULineRef x = std::max(xoff, bd[d]); + GNULineRef y = x - d; + if(y < yoff) + x = yoff + d, y = yoff; + if(x + y < bxybest) + { + bxybest = x + y; + bxbest = x; + } + } + + /* Use the better of the two diagonals. */ + if((xlim + ylim) - bxybest < fxybest - (xoff + yoff)) + { + part->xmid = fxbest; + part->ymid = fxybest - fxbest; + part->lo_minimal = true; + part->hi_minimal = false; + } + else + { + part->xmid = bxbest; + part->ymid = bxybest - bxbest; + part->lo_minimal = false; + part->hi_minimal = true; + } + return 2 * c - 1; + } + } +} + +/* Compare in detail contiguous subsequences of the two files + which are known, as a whole, to match each other. + + The results are recorded in the vectors files[N].changed, by + storing 1 in the element for each line that is an insertion or deletion. + + The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1. + + Note that XLIM, YLIM are exclusive bounds. + All line numbers are origin-0 and discarded lines are not counted. + + If FIND_MINIMAL, find a minimal difference no matter how + expensive it is. */ + +void GnuDiff::compareseq(GNULineRef xoff, GNULineRef xlim, GNULineRef yoff, GNULineRef ylim, bool find_minimal) +{ + GNULineRef *const xv = xvec; /* Help the compiler. */ + GNULineRef *const yv = yvec; + + /* Slide down the bottom initial diagonal. */ + while(xoff < xlim && yoff < ylim && xv[xoff] == yv[yoff]) + ++xoff, ++yoff; + /* Slide up the top initial diagonal. */ + while(xlim > xoff && ylim > yoff && xv[xlim - 1] == yv[ylim - 1]) + --xlim, --ylim; + + /* Handle simple cases. */ + if(xoff == xlim) + while(yoff < ylim) + files[1].changed[files[1].realindexes[yoff++]] = true; + else if(yoff == ylim) + while(xoff < xlim) + files[0].changed[files[0].realindexes[xoff++]] = true; + else + { + GNULineRef c; + partition part; + + /* Find a point of correspondence in the middle of the files. */ + + c = diag(xoff, xlim, yoff, ylim, find_minimal, &part); + + /* This should be impossible, because it implies that + one of the two subsequences is empty, + and that case was handled above without calling `diag'. */ + Q_ASSERT(c != 1); + + /* Use the partitions to split this problem into subproblems. */ + compareseq(xoff, part.xmid, yoff, part.ymid, part.lo_minimal); + compareseq(part.xmid, xlim, part.ymid, ylim, part.hi_minimal); + } +} + +/* Discard lines from one file that have no matches in the other file. + + A line which is discarded will not be considered by the actual + comparison algorithm; it will be as if that line were not in the file. + The file's `realindexes' table maps virtual line numbers + (which don't count the discarded lines) into real line numbers; + this is how the actual comparison algorithm produces results + that are comprehensible when the discarded lines are counted. + + When we discard a line, we also mark it as a deletion or insertion + so that it will be printed in the output. */ + +void GnuDiff::discard_confusing_lines(file_data filevec[]) +{ + int f; + GNULineRef i; + char *discarded[2]; + GNULineRef *equiv_count[2]; + GNULineRef *p; + + /* Allocate our results. */ + p = (GNULineRef *)xmalloc((filevec[0].buffered_lines + filevec[1].buffered_lines) * (2 * sizeof(*p))); + for(f = 0; f < 2; ++f) + { + filevec[f].undiscarded = p; + p += filevec[f].buffered_lines; + filevec[f].realindexes = p; + p += filevec[f].buffered_lines; + } + + /* Set up equiv_count[F][I] as the number of lines in file F + that fall in equivalence class I. */ + + p = (GNULineRef *)zalloc(filevec[0].equiv_max * (2 * sizeof(*p))); + equiv_count[0] = p; + equiv_count[1] = p + filevec[0].equiv_max; + + for(i = 0; i < filevec[0].buffered_lines; ++i) + ++equiv_count[0][filevec[0].equivs[i]]; + for(i = 0; i < filevec[1].buffered_lines; ++i) + ++equiv_count[1][filevec[1].equivs[i]]; + + /* Set up tables of which lines are going to be discarded. */ + + discarded[0] = (char *)zalloc(filevec[0].buffered_lines + filevec[1].buffered_lines); + discarded[1] = discarded[0] + filevec[0].buffered_lines; + + /* Mark to be discarded each line that matches no line of the other file. + If a line matches many lines, mark it as provisionally discardable. */ + + for(f = 0; f < 2; ++f) + { + size_t end = filevec[f].buffered_lines; + char *discards = discarded[f]; + GNULineRef *counts = equiv_count[1 - f]; + GNULineRef *equivs = filevec[f].equivs; + size_t many = 5; + size_t tem = end / 64; + + /* Multiply MANY by approximate square root of number of lines. + That is the threshold for provisionally discardable lines. */ + while((tem = tem >> 2) > 0) + many *= 2; + + for(i = 0; i < (GNULineRef)end; ++i) + { + GNULineRef nmatch; + if(equivs[i] == 0) + continue; + nmatch = counts[equivs[i]]; + if(nmatch == 0) + discards[i] = 1; + else if(nmatch > (GNULineRef)many) + discards[i] = 2; + } + } + + /* Don't really discard the provisional lines except when they occur + in a run of discardables, with nonprovisionals at the beginning + and end. */ + + for(f = 0; f < 2; ++f) + { + GNULineRef end = filevec[f].buffered_lines; + char *discards = discarded[f]; + + for(i = 0; i < end; ++i) + { + /* Cancel provisional discards not in middle of run of discards. */ + if(discards[i] == 2) + discards[i] = 0; + else if(discards[i] != 0) + { + /* We have found a nonprovisional discard. */ + GNULineRef j; + GNULineRef length; + GNULineRef provisional = 0; + + /* Find end of this run of discardable lines. + Count how many are provisionally discardable. */ + for(j = i; j < end; ++j) + { + if(discards[j] == 0) + break; + if(discards[j] == 2) + ++provisional; + } + + /* Cancel provisional discards at end, and shrink the run. */ + while(j > i && discards[j - 1] == 2) + discards[--j] = 0, --provisional; + + /* Now we have the length of a run of discardable lines + whose first and last are not provisional. */ + length = j - i; + + /* If 1/4 of the lines in the run are provisional, + cancel discarding of all provisional lines in the run. */ + if(provisional * 4 > length) + { + while(j > i) + if(discards[--j] == 2) + discards[j] = 0; + } + else + { + GNULineRef consec; + GNULineRef minimum = 1; + GNULineRef tem = length >> 2; + + /* MINIMUM is approximate square root of LENGTH/4. + A subrun of two or more provisionals can stand + when LENGTH is at least 16. + A subrun of 4 or more can stand when LENGTH >= 64. */ + while(0 < (tem >>= 2)) + minimum <<= 1; + minimum++; + + /* Cancel any subrun of MINIMUM or more provisionals + within the larger run. */ + for(j = 0, consec = 0; j < length; ++j) + if(discards[i + j] != 2) + consec = 0; + else if(minimum == ++consec) + /* Back up to start of subrun, to cancel it all. */ + j -= consec; + else if(minimum < consec) + discards[i + j] = 0; + + /* Scan from beginning of run + until we find 3 or more nonprovisionals in a row + or until the first nonprovisional at least 8 lines in. + Until that point, cancel any provisionals. */ + for(j = 0, consec = 0; j < length; ++j) + { + if(j >= 8 && discards[i + j] == 1) + break; + if(discards[i + j] == 2) + consec = 0, discards[i + j] = 0; + else if(discards[i + j] == 0) + consec = 0; + else + consec++; + if(consec == 3) + break; + } + + /* I advances to the last line of the run. */ + i += length - 1; + + /* Same thing, from end. */ + for(j = 0, consec = 0; j < length; ++j) + { + if(j >= 8 && discards[i - j] == 1) + break; + if(discards[i - j] == 2) + consec = 0, discards[i - j] = 0; + else if(discards[i - j] == 0) + consec = 0; + else + consec++; + if(consec == 3) + break; + } + } + } + } + } + + /* Actually discard the lines. */ + for(f = 0; f < 2; ++f) + { + char *discards = discarded[f]; + GNULineRef end = filevec[f].buffered_lines; + GNULineRef j = 0; + for(i = 0; i < end; ++i) + if(minimal || discards[i] == 0) + { + filevec[f].undiscarded[j] = filevec[f].equivs[i]; + filevec[f].realindexes[j++] = i; + } + else + filevec[f].changed[i] = true; + filevec[f].nondiscarded_lines = j; + } + + free(discarded[0]); + free(equiv_count[0]); +} + +/* Adjust inserts/deletes of identical lines to join changes + as much as possible. + + We do something when a run of changed lines include a + line at one end and have an excluded, identical line at the other. + We are free to choose which identical line is included. + `compareseq' usually chooses the one at the beginning, + but usually it is cleaner to consider the following identical line + to be the "change". */ + +void GnuDiff::shift_boundaries(file_data filevec[]) +{ + int f; + + for(f = 0; f < 2; ++f) + { + bool *changed = filevec[f].changed; + bool const *other_changed = filevec[1 - f].changed; + GNULineRef const *equivs = filevec[f].equivs; + GNULineRef i = 0; + GNULineRef j = 0; + GNULineRef i_end = filevec[f].buffered_lines; + + while(true) + { + GNULineRef runlength, start, corresponding; + + /* Scan forwards to find beginning of another run of changes. + Also keep track of the corresponding point in the other file. */ + + while(i < i_end && !changed[i]) + { + while(other_changed[j++]) + continue; + i++; + } + + if(i == i_end) + break; + + start = i; + + /* Find the end of this run of changes. */ + + while(changed[++i]) + continue; + while(other_changed[j]) + j++; + + do + { + /* Record the length of this run of changes, so that + we can later determine whether the run has grown. */ + runlength = i - start; + + /* Move the changed region back, so long as the + previous unchanged line matches the last changed one. + This merges with previous changed regions. */ + + while(start && equivs[start - 1] == equivs[i - 1]) + { + changed[--start] = true; + changed[--i] = false; + while(changed[start - 1]) + start--; + while(other_changed[--j]) + continue; + } + + /* Set CORRESPONDING to the end of the changed run, at the last + point where it corresponds to a changed run in the other file. + CORRESPONDING == I_END means no such point has been found. */ + corresponding = other_changed[j - 1] ? i : i_end; + + /* Move the changed region forward, so long as the + first changed line matches the following unchanged one. + This merges with following changed regions. + Do this second, so that if there are no merges, + the changed region is moved forward as far as possible. */ + + while(i != i_end && equivs[start] == equivs[i]) + { + changed[start++] = false; + changed[i++] = true; + while(changed[i]) + i++; + while(other_changed[++j]) + corresponding = i; + } + } while(runlength != i - start); + + /* If possible, move the fully-merged run of changes + back to a corresponding run in the other file. */ + + while(corresponding < i) + { + changed[--start] = true; + changed[--i] = false; + while(other_changed[--j]) + continue; + } + } + } +} + +/* Cons an additional entry onto the front of an edit script OLD. + LINE0 and LINE1 are the first affected lines in the two files (origin 0). + DELETED is the number of lines deleted here from file 0. + INSERTED is the number of lines inserted here in file 1. + + If DELETED is 0 then LINE0 is the number of the line before + which the insertion was done; vice versa for INSERTED and LINE1. */ + +GnuDiff::change *GnuDiff::add_change(GNULineRef line0, GNULineRef line1, GNULineRef deleted, GNULineRef inserted, change *old) +{ + change *newChange = (change *)xmalloc(sizeof(*newChange)); + + newChange->line0 = line0; + newChange->line1 = line1; + newChange->inserted = inserted; + newChange->deleted = deleted; + newChange->link = old; + return newChange; +} + +/* Scan the tables of which lines are inserted and deleted, + producing an edit script in reverse order. */ + +GnuDiff::change *GnuDiff::build_reverse_script(file_data const filevec[]) +{ + change *script = nullptr; + bool *changed0 = filevec[0].changed; + bool *changed1 = filevec[1].changed; + GNULineRef len0 = filevec[0].buffered_lines; + GNULineRef len1 = filevec[1].buffered_lines; + + /* Note that changedN[len0] does exist, and is 0. */ + + GNULineRef i0 = 0, i1 = 0; + + while(i0 < len0 || i1 < len1) + { + if(changed0[i0] | changed1[i1]) + { + GNULineRef line0 = i0, line1 = i1; + + /* Find # lines changed here in each file. */ + while(changed0[i0]) ++i0; + while(changed1[i1]) ++i1; + + /* Record this change. */ + script = add_change(line0, line1, i0 - line0, i1 - line1, script); + } + + /* We have reached lines in the two files that match each other. */ + i0++, i1++; + } + + return script; +} + +/* Scan the tables of which lines are inserted and deleted, + producing an edit script in forward order. */ + +GnuDiff::change *GnuDiff::build_script(file_data const filevec[]) +{ + change *script = nullptr; + bool *changed0 = filevec[0].changed; + bool *changed1 = filevec[1].changed; + GNULineRef i0 = filevec[0].buffered_lines, i1 = filevec[1].buffered_lines; + + /* Note that changedN[-1] does exist, and is 0. */ + + while(i0 >= 0 || i1 >= 0) + { + if(changed0[i0 - 1] | changed1[i1 - 1]) + { + GNULineRef line0 = i0, line1 = i1; + + /* Find # lines changed here in each file. */ + while(changed0[i0 - 1]) --i0; + while(changed1[i1 - 1]) --i1; + + /* Record this change. */ + script = add_change(i0, i1, line0 - i0, line1 - i1, script); + } + + /* We have reached lines in the two files that match each other. */ + i0--, i1--; + } + + return script; +} + +/* Report the differences of two files. */ +GnuDiff::change *GnuDiff::diff_2_files(comparison *cmp) +{ + GNULineRef diags; + int f; + change *script; + + read_files(cmp->file, files_can_be_treated_as_binary); + + { + /* Allocate vectors for the results of comparison: + a flag for each line of each file, saying whether that line + is an insertion or deletion. + Allocate an extra element, always 0, at each end of each vector. */ + + size_t s = cmp->file[0].buffered_lines + cmp->file[1].buffered_lines + 4; + bool *flag_space = (bool *)zalloc(s * sizeof(*flag_space)); + cmp->file[0].changed = flag_space + 1; + cmp->file[1].changed = flag_space + cmp->file[0].buffered_lines + 3; + + /* Some lines are obviously insertions or deletions + because they don't match anything. Detect them now, and + avoid even thinking about them in the main comparison algorithm. */ + + discard_confusing_lines(cmp->file); + + /* Now do the main comparison algorithm, considering just the + undiscarded lines. */ + + xvec = cmp->file[0].undiscarded; + yvec = cmp->file[1].undiscarded; + diags = (cmp->file[0].nondiscarded_lines + cmp->file[1].nondiscarded_lines + 3); + fdiag = (GNULineRef *)xmalloc(diags * (2 * sizeof(*fdiag))); + bdiag = fdiag + diags; + fdiag += cmp->file[1].nondiscarded_lines + 1; + bdiag += cmp->file[1].nondiscarded_lines + 1; + + /* Set TOO_EXPENSIVE to be approximate square root of input size, + bounded below by 256. */ + too_expensive = 1; + for(; diags != 0; diags >>= 2) + too_expensive <<= 1; + too_expensive = std::max((GNULineRef)256, too_expensive); + + files[0] = cmp->file[0]; + files[1] = cmp->file[1]; + + compareseq(0, cmp->file[0].nondiscarded_lines, + 0, cmp->file[1].nondiscarded_lines, minimal); + + free(fdiag - (cmp->file[1].nondiscarded_lines + 1)); + + /* Modify the results slightly to make them prettier + in cases where that can validly be done. */ + + shift_boundaries(cmp->file); + + /* Get the results of comparison in the form of a chain + of `change's -- an edit script. */ + + script = build_script(cmp->file); + + free(cmp->file[0].undiscarded); + + free(flag_space); + + for(f = 0; f < 2; ++f) + { + free(cmp->file[f].equivs); + free(cmp->file[f].linbuf + cmp->file[f].linbuf_base); + } + } + + return script; +} diff --git a/src/gnudiff_diff.h b/src/gnudiff_diff.h new file mode 100644 index 0000000..1d2b92f --- /dev/null +++ b/src/gnudiff_diff.h @@ -0,0 +1,214 @@ +/* + Shared definitions for GNU DIFF + Modified for KDiff3 by Joachim Eibl 2003, 2004, 2005. + The original file was part of GNU DIFF. + + Part of KDiff3 - Text Diff And Merge Tool + + SPDX-FileCopyrightText: 1988-2002 Free Software Foundation, Inc. + SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef GNUDIFF_DIFF_H +#define GNUDIFF_DIFF_H + +#include "LineRef.h" +#include "Utils.h" + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#include +#include + +/* The integer type of a line number. */ +typedef qint64 GNULineRef; +#define GNULINEREF_MAX std::numeric_limits::max() +static_assert(std::is_signed::value, "GNULineRef must be signed."); +static_assert(sizeof(GNULineRef) >= sizeof(size_t), "GNULineRef must be able to receive size_t values."); + +class GnuDiff +{ + public: + /* Variables for command line options */ + + /* Nonzero if output cannot be generated for identical files. */ + bool no_diff_means_no_output; + + /* Number of lines of context to show in each set of diffs. + This is zero when context is not to be shown. */ + GNULineRef context; + + /* The significance of white space during comparisons. */ + enum + { + /* All white space is significant (the default). */ + IGNORE_NO_WHITE_SPACE, + + /* Ignore changes due to tab expansion (-E). */ + IGNORE_TAB_EXPANSION, + + /* Ignore changes in horizontal white space (-b). */ + IGNORE_SPACE_CHANGE, + + /* Ignore all horizontal white space (-w). */ + IGNORE_ALL_SPACE + } ignore_white_space; + + /* Ignore changes that affect only numbers. (J. Eibl) */ + bool bIgnoreNumbers; + bool bIgnoreWhiteSpace; + + /* Files can be compared byte-by-byte, as if they were binary. + This depends on various options. */ + bool files_can_be_treated_as_binary; + + /* Ignore differences in case of letters (-i). */ + bool ignore_case; + + /* Use heuristics for better speed with large files with a small + density of changes. */ + bool speed_large_files; + + /* Don't discard lines. This makes things slower (sometimes much + slower) but will find a guaranteed minimal set of changes. */ + bool minimal; + + /* The result of comparison is an "edit script": a chain of `struct change'. + Each `struct change' represents one place where some lines are deleted + and some are inserted. + + LINE0 and LINE1 are the first affected lines in the two files (origin 0). + DELETED is the number of lines deleted here from file 0. + INSERTED is the number of lines inserted here in file 1. + + If DELETED is 0 then LINE0 is the number of the line before + which the insertion was done; vice versa for INSERTED and LINE1. */ + + struct change { + change *link; /* Previous or next edit command */ + GNULineRef inserted; /* # lines of file 1 changed here. */ + GNULineRef deleted; /* # lines of file 0 changed here. */ + GNULineRef line0; /* Line number of 1st deleted line. */ + GNULineRef line1; /* Line number of 1st inserted line. */ + bool ignore; /* Flag used in context.c. */ + }; + + /* Structures that describe the input files. */ + + /* Data on one input file being compared. */ + + struct file_data { + /* Buffer in which text of file is read. */ + const QChar *buffer; + + /* Allocated size of buffer, in QChars. Always a multiple of + sizeof(*buffer). */ + size_t bufsize; + + /* Number of valid bytes now in the buffer. */ + size_t buffered; + + /* Array of pointers to lines in the file. */ + const QChar **linbuf; + + /* linbuf_base <= buffered_lines <= valid_lines <= alloc_lines. + linebuf[linbuf_base ... buffered_lines - 1] are possibly differing. + linebuf[linbuf_base ... valid_lines - 1] contain valid data. + linebuf[linbuf_base ... alloc_lines - 1] are allocated. */ + GNULineRef linbuf_base, buffered_lines, valid_lines, alloc_lines; + + /* Pointer to end of prefix of this file to ignore when hashing. */ + const QChar *prefix_end; + + /* Count of lines in the prefix. + There are this many lines in the file before linbuf[0]. */ + GNULineRef prefix_lines; + + /* Pointer to start of suffix of this file to ignore when hashing. */ + const QChar *suffix_begin; + + /* Vector, indexed by line number, containing an equivalence code for + each line. It is this vector that is actually compared with that + of another file to generate differences. */ + GNULineRef *equivs; + + /* Vector, like the previous one except that + the elements for discarded lines have been squeezed out. */ + GNULineRef *undiscarded; + + /* Vector mapping virtual line numbers (not counting discarded lines) + to real ones (counting those lines). Both are origin-0. */ + GNULineRef *realindexes; + + /* Total number of nondiscarded lines. */ + GNULineRef nondiscarded_lines; + + /* Vector, indexed by real origin-0 line number, + containing TRUE for a line that is an insertion or a deletion. + The results of comparison are stored here. */ + bool *changed; + + /* 1 if at end of file. */ + bool eof; + + /* 1 more than the maximum equivalence value used for this or its + sibling file. */ + GNULineRef equiv_max; + }; + + /* Data on two input files being compared. */ + + struct comparison { + file_data file[2]; + comparison const *parent; /* parent, if a recursive comparison */ + }; + + /* Describe the two files currently being compared. */ + + file_data files[2]; + + /* Declare various functions. */ + + /* analyze.c */ + change *diff_2_files(comparison *); + /* io.c */ + bool read_files(file_data[], bool); + + /* util.c */ + bool lines_differ(const QChar *, size_t, const QChar *, size_t); + void *zalloc(size_t); + + private: + // gnudiff_analyze.cpp + GNULineRef diag(GNULineRef xoff, GNULineRef xlim, GNULineRef yoff, GNULineRef ylim, bool find_minimal, struct partition *part) const; + void compareseq(GNULineRef xoff, GNULineRef xlim, GNULineRef yoff, GNULineRef ylim, bool find_minimal); + void discard_confusing_lines(file_data filevec[]); + void shift_boundaries(file_data filevec[]); + change *add_change(GNULineRef line0, GNULineRef line1, GNULineRef deleted, GNULineRef inserted, change *old); + change *build_reverse_script(file_data const filevec[]); + change *build_script(file_data const filevec[]); + + // gnudiff_io.cpp + GNULineRef guess_lines(GNULineRef n, size_t s, size_t t); + void find_and_hash_each_line(file_data *current); + void find_identical_ends(file_data filevec[]); + + // gnudiff_xmalloc.cpp + void *xmalloc(size_t n); + void *xrealloc(void *p, size_t n); + void xalloc_die(); +}; // class GnuDiff + +#endif diff --git a/src/gnudiff_io.cpp b/src/gnudiff_io.cpp new file mode 100644 index 0000000..cc9b8b9 --- /dev/null +++ b/src/gnudiff_io.cpp @@ -0,0 +1,535 @@ +/* File I/O for GNU DIFF. + + Modified for KDiff3 by Joachim Eibl 2003, 2004, 2005. + The original file was part of GNU DIFF. + + Part of KDiff3 - Text Diff And Merge Tool + + SPDX-FileCopyrightText: 1988-2002 Free Software Foundation, Inc. + SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "gnudiff_diff.h" +#include +#include + +/* Rotate an unsigned value to the left. */ +#define ROL(v, n) ((v) << (n) | (v) >> (sizeof(v) * CHAR_BIT - (n))) + +/* Given a hash value and a new character, return a new hash value. */ +#define HASH(h, c) ((c) + ROL(h, 7)) + +/* The type of a hash value. */ +typedef size_t hash_value; +static_assert(std::is_unsigned::value, "hash_value must be signed."); + +/* Lines are put into equivalence classes of lines that match in lines_differ. + Each equivalence class is represented by one of these structures, + but only while the classes are being computed. + Afterward, each class is represented by a number. */ +struct equivclass { + GNULineRef next; /* Next item in this bucket. */ + hash_value hash; /* Hash of lines in this class. */ + const QChar *line; /* A line that fits this class. */ + size_t length; /* That line's length, not counting its newline. */ +}; + +/* Hash-table: array of buckets, each being a chain of equivalence classes. + buckets[-1] is reserved for incomplete lines. */ +static GNULineRef *buckets; + +/* Number of buckets in the hash table array, not counting buckets[-1]. */ +static size_t nbuckets; + +/* Array in which the equivalence classes are allocated. + The bucket-chains go through the elements in this array. + The number of an equivalence class is its index in this array. */ +static equivclass *equivs; + +/* Index of first free element in the array `equivs'. */ +static GNULineRef equivs_index; + +/* Number of elements allocated in the array `equivs'. */ +static GNULineRef equivs_alloc; + +/* Check for binary files and compare them for exact identity. */ + +/* Return 1 if BUF contains a non text character. + SIZE is the number of characters in BUF. */ + +#define binary_file_p(buf, size) (memchr(buf, 0, size) != 0) + +/* Compare two lines (typically one from each input file) + according to the command line options. + For efficiency, this is invoked only when the lines do not match exactly + but an option like -i might cause us to ignore the difference. + Return nonzero if the lines differ. */ + +bool GnuDiff::lines_differ(const QChar *s1, size_t len1, const QChar *s2, size_t len2) +{ + const QChar *t1 = s1; + const QChar *t2 = s2; + const QChar *s1end = s1 + len1; + const QChar *s2end = s2 + len2; + + for(;; ++t1, ++t2) + { + /* Test for exact char equality first, since it's a common case. */ + if(t1 != s1end && t2 != s2end && *t1 == *t2) + continue; + else + { + while(t1 != s1end && + ((bIgnoreWhiteSpace && isspace(t1->unicode())) || + (bIgnoreNumbers && (t1->isDigit() || *t1 == '-' || *t1 == '.')))) + { + ++t1; + } + + while(t2 != s2end && + ((bIgnoreWhiteSpace && isspace(t2->unicode())) || + (bIgnoreNumbers && (t2->isDigit() || *t2 == '-' || *t2 == '.')))) + { + ++t2; + } + + if(t1 != s1end && t2 != s2end) + { + if(ignore_case) + { /* Lowercase comparison. */ + if(t1->toLower() == t2->toLower()) + continue; + } + else if(*t1 == *t2) + continue; + else + return true; + } + else if(t1 == s1end && t2 == s2end) + return false; + else + return true; + } + } + return false; +} + +/* Split the file into lines, simultaneously computing the equivalence + class for each line. */ + +void GnuDiff::find_and_hash_each_line(file_data *current) +{ + hash_value h; + const QChar *p = current->prefix_end; + QChar c; + GNULineRef i, *bucket; + size_t length; + + /* Cache often-used quantities in local variables to help the compiler. */ + const QChar **linbuf = current->linbuf; + GNULineRef alloc_lines = current->alloc_lines; + GNULineRef line = 0; + GNULineRef linbuf_base = current->linbuf_base; + GNULineRef *cureqs = (GNULineRef *)xmalloc(alloc_lines * sizeof(*cureqs)); + equivclass *eqs = equivs; + GNULineRef eqs_index = equivs_index; + GNULineRef eqs_alloc = equivs_alloc; + const QChar *suffix_begin = current->suffix_begin; + const QChar *bufend = current->buffer + current->buffered; + bool diff_length_compare_anyway = + ignore_white_space != IGNORE_NO_WHITE_SPACE || bIgnoreNumbers; + bool same_length_diff_contents_compare_anyway = + diff_length_compare_anyway | ignore_case; + + while(p < suffix_begin) + { + const QChar *ip = p; + + h = 0; + + /* Hash this line until we find a newline or bufend is reached. */ + if(ignore_case) + switch(ignore_white_space) + { + case IGNORE_ALL_SPACE: + while(p < bufend && !Utils::isEndOfLine(c = *p)) + { + if(!(isspace(c.unicode()) || (bIgnoreNumbers && (c.isDigit() || c == '-' || c == '.')))) + h = HASH(h, c.toLower().unicode()); + ++p; + } + break; + + default: + while(p < bufend && !Utils::isEndOfLine(c = *p)) + { + h = HASH(h, c.toLower().unicode()); + ++p; + } + break; + } + else + switch(ignore_white_space) + { + case IGNORE_ALL_SPACE: + while(p < bufend && !Utils::isEndOfLine(c = *p)) + { + if(!(isspace(c.unicode()) || (bIgnoreNumbers && (c.isDigit() || c == '-' || c == '.')))) + h = HASH(h, c.unicode()); + ++p; + } + break; + + default: + while(p < bufend && !Utils::isEndOfLine(c = *p)) + { + h = HASH(h, c.unicode()); + ++p; + } + break; + } + + bucket = &buckets[h % nbuckets]; + length = p - ip; + ++p; + + for(i = *bucket;; i = eqs[i].next) + if(!i) + { + /* Create a new equivalence class in this bucket. */ + i = eqs_index++; + if(i == eqs_alloc) + { + if((GNULineRef)(GNULINEREF_MAX / (2 * sizeof(*eqs))) <= eqs_alloc) + xalloc_die(); + eqs_alloc *= 2; + eqs = (equivclass *)xrealloc(eqs, eqs_alloc * sizeof(*eqs)); + } + eqs[i].next = *bucket; + eqs[i].hash = h; + eqs[i].line = ip; + eqs[i].length = length; + *bucket = i; + break; + } + else if(eqs[i].hash == h) + { + const QChar *eqline = eqs[i].line; + + /* Reuse existing class if lines_differ reports the lines + equal. */ + if(eqs[i].length == length) + { + /* Reuse existing equivalence class if the lines are identical. + This detects the common case of exact identity + faster than lines_differ would. */ + if(memcmp(eqline, ip, length * sizeof(QChar)) == 0) + break; + if(!same_length_diff_contents_compare_anyway) + continue; + } + else if(!diff_length_compare_anyway) + continue; + + if(!lines_differ(eqline, eqs[i].length, ip, length)) + break; + } + + /* Maybe increase the size of the line table. */ + if(line == alloc_lines) + { + /* Double (alloc_lines - linbuf_base) by adding to alloc_lines. */ + if((GNULineRef)(GNULINEREF_MAX / 3) <= alloc_lines || (GNULineRef)(GNULINEREF_MAX / sizeof(*cureqs)) <= 2 * alloc_lines - linbuf_base || (GNULineRef)(GNULINEREF_MAX / sizeof(ptrdiff_t)) <= alloc_lines - linbuf_base) + xalloc_die(); + alloc_lines = 2 * alloc_lines - linbuf_base; + cureqs = (GNULineRef *)xrealloc(cureqs, alloc_lines * sizeof(*cureqs)); + linbuf += linbuf_base; + linbuf = (const QChar **)xrealloc(linbuf, + (alloc_lines - linbuf_base) * sizeof(ptrdiff_t)); + linbuf -= linbuf_base; + } + linbuf[line] = ip; + cureqs[line] = i; + ++line; + } + + current->buffered_lines = line; + + for(i = 0;; ++i) + { + /* Record the line start for lines in the suffix that we care about. + Record one more line start than lines, + so that we can compute the length of any buffered line. */ + if(line == alloc_lines) + { + /* Double (alloc_lines - linbuf_base) by adding to alloc_lines. */ + if((GNULineRef)(GNULINEREF_MAX / 3) <= alloc_lines || (GNULineRef)(GNULINEREF_MAX / sizeof(*cureqs)) <= 2 * alloc_lines - linbuf_base || (GNULineRef)(GNULINEREF_MAX / sizeof(ptrdiff_t)) <= alloc_lines - linbuf_base) + xalloc_die(); + alloc_lines = 2 * alloc_lines - linbuf_base; + linbuf += linbuf_base; + linbuf = (const QChar **)xrealloc(linbuf, + (alloc_lines - linbuf_base) * sizeof(ptrdiff_t)); + linbuf -= linbuf_base; + } + linbuf[line] = p; + + if(p >= bufend) + break; + + if(context <= i && no_diff_means_no_output) + break; + + line++; + + while(p < bufend && !Utils::isEndOfLine(*p++)) + continue; + } + + /* Done with cache in local variables. */ + current->linbuf = linbuf; + current->valid_lines = line; + current->alloc_lines = alloc_lines; + current->equivs = cureqs; + equivs = eqs; + equivs_alloc = eqs_alloc; + equivs_index = eqs_index; +} + +/* We have found N lines in a buffer of size S; guess the + proportionate number of lines that will be found in a buffer of + size T. However, do not guess a number of lines so large that the + resulting line table might cause overflow in size calculations. */ +GNULineRef +GnuDiff::guess_lines(GNULineRef n, size_t s, size_t t) +{ + size_t guessed_bytes_per_line = n < 10 ? 32 : s / (n - 1); + size_t guessed_lines = std::max((size_t)1, t / guessed_bytes_per_line); + return (GNULineRef)std::min((GNULineRef)guessed_lines, (GNULineRef)(GNULINEREF_MAX / (2 * sizeof(ptrdiff_t) + 1) - 5)) + 5; +} + +/* Given a vector of two file_data objects, find the identical + prefixes and suffixes of each object. */ + +void GnuDiff::find_identical_ends(file_data filevec[]) +{ + /* Find identical prefix. */ + const QChar *p0, *p1, *buffer0, *buffer1; + p0 = buffer0 = filevec[0].buffer; + p1 = buffer1 = filevec[1].buffer; + size_t n0, n1; + n0 = filevec[0].buffered; + n1 = filevec[1].buffered; + const QChar *const pEnd0 = p0 + n0; + const QChar *const pEnd1 = p1 + n1; + + if(p0 == p1) + /* The buffers are the same; sentinels won't work. */ + p0 = p1 += n1; + else + { + /* Loop until first mismatch, or end. */ + while(p0 != pEnd0 && p1 != pEnd1 && *p0 == *p1) + { + p0++; + p1++; + } + } + + /* Now P0 and P1 point at the first nonmatching characters. */ + + /* Skip back to last line-beginning in the prefix. */ + while(p0 != buffer0 && !Utils::isEndOfLine(p0[-1])) + p0--, p1--; + + /* Record the prefix. */ + filevec[0].prefix_end = p0; + filevec[1].prefix_end = p1; + + /* Find identical suffix. */ + + /* P0 and P1 point beyond the last chars not yet compared. */ + p0 = buffer0 + n0; + p1 = buffer1 + n1; + + const QChar *end0, *beg0; + end0 = p0; /* Addr of last char in file 0. */ + + /* Get value of P0 at which we should stop scanning backward: + this is when either P0 or P1 points just past the last char + of the identical prefix. */ + beg0 = filevec[0].prefix_end + (n0 < n1 ? 0 : n0 - n1); + + /* Scan back until chars don't match or we reach that point. */ + for(; p0 != beg0; p0--, p1--) + { + if(*p0 != *p1) + { + /* Point at the first char of the matching suffix. */ + beg0 = p0; + break; + } + } + + // Go to the next line (skip last line with a difference) + if(p0 != end0) + { + if(*p0 != *p1) + ++p0; + while(p0 < pEnd0 && !Utils::isEndOfLine(*p0++)) + continue; + } + + p1 += p0 - beg0; + + /* Record the suffix. */ + filevec[0].suffix_begin = p0; + filevec[1].suffix_begin = p1; + + /* Calculate number of lines of prefix to save. + + prefix_count == 0 means save the whole prefix; + we need this for options like -D that output the whole file, + or for enormous contexts (to avoid worrying about arithmetic overflow). + We also need it for options like -F that output some preceding line; + at least we will need to find the last few lines, + but since we don't know how many, it's easiest to find them all. + + Otherwise, prefix_count != 0. Save just prefix_count lines at start + of the line buffer; they'll be moved to the proper location later. + Handle 1 more line than the context says (because we count 1 too many), + rounded up to the next power of 2 to speed index computation. */ + + const QChar **linbuf0, **linbuf1; + GNULineRef alloc_lines0, alloc_lines1; + GNULineRef buffered_prefix, prefix_count, prefix_mask; + GNULineRef middle_guess, suffix_guess; + if(no_diff_means_no_output && context < (GNULineRef)(GNULINEREF_MAX / 4) && context < (GNULineRef)(n0)) + { + middle_guess = guess_lines(0, 0, p0 - filevec[0].prefix_end); + suffix_guess = guess_lines(0, 0, buffer0 + n0 - p0); + for(prefix_count = 1; prefix_count <= context; prefix_count *= 2) + continue; + alloc_lines0 = (prefix_count + middle_guess + std::min(context, suffix_guess)); + } + else + { + prefix_count = 0; + alloc_lines0 = guess_lines(0, 0, n0); + } + + prefix_mask = prefix_count - 1; + GNULineRef lines = 0; + linbuf0 = (const QChar **)xmalloc(alloc_lines0 * sizeof(ptrdiff_t)); + p0 = buffer0; + + /* If the prefix is needed, find the prefix lines. */ + if(!(no_diff_means_no_output && filevec[0].prefix_end == p0 && filevec[1].prefix_end == p1)) + { + end0 = filevec[0].prefix_end; + while(p0 != end0) + { + GNULineRef l = lines++ & prefix_mask; + if(l == alloc_lines0) + { + if((GNULineRef)(GNULINEREF_MAX / (2 * sizeof(ptrdiff_t))) <= alloc_lines0) + xalloc_die(); + alloc_lines0 *= 2; + linbuf0 = (const QChar **)xrealloc(linbuf0, alloc_lines0 * sizeof(ptrdiff_t)); + } + linbuf0[l] = p0; + while(p0 < pEnd0 && !Utils::isEndOfLine(*p0++)) + continue; + } + } + buffered_prefix = prefix_count && context < lines ? context : lines; + + /* Allocate line buffer 1. */ + + middle_guess = guess_lines(lines, p0 - buffer0, p1 - filevec[1].prefix_end); + suffix_guess = guess_lines(lines, p0 - buffer0, buffer1 + n1 - p1); + alloc_lines1 = buffered_prefix + middle_guess + std::min(context, suffix_guess); + if(alloc_lines1 < buffered_prefix || (GNULineRef)(GNULINEREF_MAX / sizeof(ptrdiff_t)) <= alloc_lines1) + xalloc_die(); + linbuf1 = (const QChar **)xmalloc(alloc_lines1 * sizeof(ptrdiff_t)); + + GNULineRef i; + if(buffered_prefix != lines) + { + /* Rotate prefix lines to proper location. */ + for(i = 0; i < buffered_prefix; ++i) + linbuf1[i] = linbuf0[(lines - context + i) & prefix_mask]; + for(i = 0; i < buffered_prefix; ++i) + linbuf0[i] = linbuf1[i]; + } + + /* Initialize line buffer 1 from line buffer 0. */ + for(i = 0; i < buffered_prefix; ++i) + linbuf1[i] = linbuf0[i] - buffer0 + buffer1; + + /* Record the line buffer, adjusted so that + linbuf[0] points at the first differing line. */ + filevec[0].linbuf = linbuf0 + buffered_prefix; + filevec[1].linbuf = linbuf1 + buffered_prefix; + filevec[0].linbuf_base = filevec[1].linbuf_base = -buffered_prefix; + filevec[0].alloc_lines = alloc_lines0 - buffered_prefix; + filevec[1].alloc_lines = alloc_lines1 - buffered_prefix; + filevec[0].prefix_lines = filevec[1].prefix_lines = lines; +} + +/* If 1 < k, then (2**k - prime_offset[k]) is the largest prime less + than 2**k. This table is derived from Chris K. Caldwell's list + . */ + +static unsigned char const prime_offset[] = + { + 0, 0, 1, 1, 3, 1, 3, 1, 5, 3, 3, 9, 3, 1, 3, 19, 15, 1, 5, 1, 3, 9, 3, + 15, 3, 39, 5, 39, 57, 3, 35, 1, 5, 9, 41, 31, 5, 25, 45, 7, 87, 21, + 11, 57, 17, 55, 21, 115, 59, 81, 27, 129, 47, 111, 33, 55, 5, 13, 27, + 55, 93, 1, 57, 25}; + +/* Verify that this host's size_t is not too wide for the above table. */ + +static_assert(sizeof(size_t) * CHAR_BIT <= sizeof prime_offset, "Not enough primes in table"); + +/* Given a vector of two file_data objects, read the file associated + with each one, and build the table of equivalence classes. + Return nonzero if either file appears to be a binary file. + If PRETEND_BINARY is nonzero, pretend they are binary regardless. */ + +bool GnuDiff::read_files(file_data filevec[], bool /*pretend_binary*/) +{ + GNULineRef i; + + find_identical_ends(filevec); + + equivs_alloc = filevec[0].alloc_lines + filevec[1].alloc_lines + 1; + if((GNULineRef)(GNULINEREF_MAX / sizeof(*equivs)) <= equivs_alloc) + xalloc_die(); + equivs = (equivclass *)xmalloc(equivs_alloc * sizeof(*equivs)); + /* Equivalence class 0 is permanently safe for lines that were not + hashed. Real equivalence classes start at 1. */ + equivs_index = 1; + + /* Allocate (one plus) a prime number of hash buckets. Use a prime + number between 1/3 and 2/3 of the value of equiv_allocs, + approximately. */ + for(i = 9; ((GNULineRef)1 << i) < equivs_alloc / 3; ++i) + continue; + nbuckets = ((GNULineRef)1 << i) - prime_offset[i]; + if(GNULINEREF_MAX / sizeof(*buckets) <= nbuckets) + xalloc_die(); + buckets = (GNULineRef *)zalloc((nbuckets + 1) * sizeof(*buckets)); + buckets++; + + for(i = 0; i < 2; ++i) + find_and_hash_each_line(&filevec[i]); + + filevec[0].equiv_max = filevec[1].equiv_max = equivs_index; + + free(equivs); + free(buckets - 1); + + return false; +} diff --git a/src/gnudiff_xmalloc.cpp b/src/gnudiff_xmalloc.cpp new file mode 100644 index 0000000..e437273 --- /dev/null +++ b/src/gnudiff_xmalloc.cpp @@ -0,0 +1,70 @@ +/* xmalloc.c -- malloc with out of memory checking + + Modified for KDiff3 by Joachim Eibl 2003. + The original file was part of GNU DIFF. + + + Part of KDiff3 - Text Diff And Merge Tool + + SPDX-FileCopyrightText: 1988-2002 Free Software Foundation, Inc. + SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include +#include + +#ifndef EXIT_FAILURE +#define EXIT_FAILURE 1 +#endif + +#include "gnudiff_diff.h" +/* If non NULL, call this function when memory is exhausted. */ +void (*xalloc_fail_func)() = nullptr; + +void GnuDiff::xalloc_die() +{ + if(xalloc_fail_func) + (*xalloc_fail_func)(); + //error (exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted)); + /* The `noreturn' cannot be given to error, since it may return if + its first argument is 0. To help compilers understand the + xalloc_die does terminate, call exit. */ + exit(EXIT_FAILURE); +} + +/* Allocate N bytes of memory dynamically, with error checking. */ + +void * +GnuDiff::xmalloc(size_t n) +{ + void *p; + + p = malloc(n == 0 ? 1 : n); // There are systems where malloc returns 0 for n==0. + if(p == nullptr) + xalloc_die(); + return p; +} + +/* Change the size of an allocated block of memory P to N bytes, + with error checking. */ + +void * +GnuDiff::xrealloc(void *p, size_t n) +{ + p = realloc(p, n == 0 ? 1 : n); + if(p == nullptr) + xalloc_die(); + return p; +} + +/* Yield a new block of SIZE bytes, initialized to zero. */ + +void * +GnuDiff::zalloc(size_t size) +{ + void *p = xmalloc(size); + memset(p, 0, size); + return p; +} diff --git a/src/guiutils.h b/src/guiutils.h new file mode 100644 index 0000000..170475c --- /dev/null +++ b/src/guiutils.h @@ -0,0 +1,215 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2008 Valentin Rusu kde at rusu.info + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef GUIUTILS_H +#define GUIUTILS_H + +#include "defmac.h" +#include +#include + +namespace GuiUtils { + //Use std::enable_if since compilers don't disabiguate overloads based on return type alone + template + inline typename std::enable_if::value, QAction>::type* createAction( + const QString& text, + const Receiver receiver, + const Func slot, + KActionCollection* ac, + const QString& actionName) + { + Q_ASSERT(ac != nullptr); + QAction* theAction; + + theAction = ac->addAction(actionName); + theAction->setText(text); + chk_connect(theAction, &QAction::triggered, receiver, slot); + return theAction; + } + + template + inline typename std::enable_if::value, KToggleAction>::type* createAction( + const QString& text, + const Receiver receiver, + const Func slot, + KActionCollection* ac, + const QString &actionName) { + Q_ASSERT( ac != nullptr ); + KToggleAction* theAction = new KToggleAction(ac); + ac->addAction( actionName, theAction ); + theAction->setText( text ); + chk_connect( theAction, &KToggleAction::triggered, receiver, slot ); + return theAction; + } + + template + T* createAction( + const QString& text, + const QKeySequence& shortcut, + Receiver receiver, + Func slot, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, receiver, slot, ac, actionName ); + ac->setDefaultShortcut(theAction, shortcut); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + Receiver receiver, + Func slot, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, receiver, slot, ac, actionName ); + theAction->setIcon( icon ); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + const QString& iconText, + Receiver receiver, + Func slot, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, receiver, slot, ac, actionName ); + theAction->setIcon( icon ); + theAction->setIconText( iconText ); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + const QKeySequence& shortcut, + Receiver receiver, + Func slot, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, shortcut, receiver, slot, ac, actionName ); + theAction->setIcon( icon ); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + const QString& iconText, + const QKeySequence& shortcut, + Receiver receiver, + Func slot, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, shortcut, receiver, slot, ac, actionName ); + theAction->setIcon( icon ); + theAction->setIconText( iconText ); + return theAction; + } + + + //Allow actions to be created without connecting them immediately. + + template + inline typename std::enable_if::value, QAction>::type* createAction( + const QString& text, + KActionCollection* ac, + const QString& actionName) + { + Q_ASSERT(ac != nullptr); + QAction* theAction; + + theAction = ac->addAction(actionName); + theAction->setText(text); + + return theAction; + } + + template + inline typename std::enable_if::value, KToggleAction>::type* createAction( + const QString& text, + KActionCollection* ac, + const QString &actionName) { + Q_ASSERT( ac != nullptr ); + KToggleAction* theAction = new KToggleAction(ac); + ac->addAction( actionName, theAction ); + theAction->setText( text ); + return theAction; + } + + template + T* createAction( + const QString& text, + const QKeySequence& shortcut, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, ac, actionName ); + ac->setDefaultShortcut(theAction, shortcut); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, ac, actionName ); + theAction->setIcon( icon ); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + const QString& iconText, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, ac, actionName ); + theAction->setIcon( icon ); + theAction->setIconText( iconText ); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + const QKeySequence& shortcut, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, shortcut, ac, actionName ); + theAction->setIcon( icon ); + return theAction; + } + template + T* createAction( + const QString& text, + const QIcon& icon, + const QString& iconText, + const QKeySequence& shortcut, + KActionCollection* ac, + const QString &actionName) + { + T* theAction = createAction( text, shortcut, ac, actionName ); + theAction->setIcon( icon ); + theAction->setIconText( iconText ); + return theAction; + } +} + +#endif diff --git a/src/icons/128-apps-kdiff3.png b/src/icons/128-apps-kdiff3.png new file mode 100644 index 0000000000000000000000000000000000000000..79c0e6e2adc3801a4fb6a691c0c245fa576d20f7 GIT binary patch literal 2952 zcmZYBdpy(o9|!R7Hq715BG-`QxF3ad5z8fNiHMia%Ar0GHGg( zIK*7XFk+c<*&+i-jCX0lg{zKhqTbcC*x1+y@o`uzHZd{LH#ruE z!zHHRqH#%RTv8-1DfM5KlA4N1#YLs1Jj_Txfsc#JdW_A%XXoT3{4mBG8E5^C$sA*T9Aix|Cngs-U%%sgSy=oszwl*# zJEz&7r)Fj+rlwhwpT<8BA#*#s@k>kRt;_@BhcU z;ePtizxC0Fe&`-}*ZX#`=PjM~chYy0(Y@ zj&52zwO4>b?dhcUP`U)V1=_p1TRMAMJA0Zb)D{Z0nbIvta!2O{3h`pcvnw6M)2)QY zmbU!nH|pdpg=V}G8GnGBZ`WMh(AXsKxUuf%rtFAPgvx@7q4#PXWgKh-2`dxib!RXnUZPQbN_SWK!CC?Sz5p1-L4 zUPL1C_sYs=&xjQj&j^I_(z3FwlCsQ_(m(#;Rx*x%QjC1^KD)5UyRa`iH_s+_GCLoFr2lZ&i9(1qP zy;g&emj*%4^a3k%Z#>oUCumyx+5J4equThA*?&kMiJ z^Rb?1hQ3F-V(uTaf(5X@b>`IBzZcHbx zQ_SGVa`WrtYEmWfIk7mCpT9moGc}dPUBh?nJ#iNRpo*cAxEIIC z!t{WMU97LgVx#U9tp9oTx8aYKA;2Jc-BB?(Er@Z4UpsDW^4Z8tBpT$7P=E=Vke6bM zF=%pdr^2EJ(0d68Q9%r%XyCZgqp~kh7#c*OBMXR`HAgms$HgyJAs8Tc^g6?)m>m!- z#x9e}$!!*2nmKbCbZIo*z76hhR=ikB5od~&8*jbf^*Say`v~WH7|7Dn&gue4KjC1( zE4&P+ks4GxzY!2&%R1Oru%{p;ql3qv8EVHtGnSF z)^3e{E7*XZ^1z47L-xR-M2fwm4O0UtBpDBaNk?(kFJeDC1{EJB2hY|IgtTWH7=ym3 zH)fwEY~c9!FR*#`cr`!XL~j~#8oXs>uwOkk;CkSB#hkz>p>T{3JMO0WA)OhE@Dy?y zQ&PAe>B_gCnzR#&rvCgiTp_rTgx=r3$Z>f`c5tcE+)&UtO)yAF{H7;Webc6G)*x8X zb})NnM0w(`>9F6z+qmMjvR{R0WNzpIB_gM7MJ{cZM`IxwLrvI=lX> z=X>&C2RK0H*6Ou;qLS~DuaZ#JK4*yT`=o=Y)_0`MP34?KPA<9b{uIIU2FD`w%Ht*u zQo@Wy`|rcn?e^h+I=gO)z51uM$4Y_vQMJt;;Uz3#m)k_l$)QiNvtG8El8=@QPOoUSuF6zwuoa0jfF@(qz;hbFlU8G}yCWlS$e%>;D@CjXp=0JZzK#xSGkcKF>!Sc}H4J9x&-9 zt!PA=PhN(dHq>$nJ?2^NZ|9QH?74q+AJeHoinCPbpE5V>FUEY#S?Em=8IXICzQ2$u z;hmJLzjJx-m0#-z)?DRKq`E3!V-Dyjr%BBTi6*IBL5 z)4%@Nu-t-RdF;?s;(i-O{6a88I6=_lZf#B#iCpJU~e|6Z3p5_OjVG9o4Xd$D)0l8x{G})P(t+_dDgVkOcsVP8%!yBJbTNw3pX;u z@7uhQW;4_fK_3i4o3uJ&e=Z~5?<1Xv`D)x z)F5sQ@>mZcpVr8=gCihT-DdLZ707_avHUI2;_50jI$v~S6Sd(cEUoq^U$lD5pDB5X zE>Z-9uc@sL7#`);h_-~W{Sh_+9%3gbuWDQFEDfPu4kX0#F?>v$CC=HJ5gp=kGNNbr zk?-$$3d*av#jLe;i=4M29IR|U=? zsfSS9tbn8OLgBhG+zghCN*MPO8f2|@5+TE9j;l;PMWGe2$EP6+hO75kL9g~mwrXSZ zhUR8w9`|~`9P0=&wq&K+WKLfk`eo4MBPWedDURG^xOs$u#0Y6$z>agFPL?)d67;R& zO=S)vb6gvabQ$7aE8|l=8xfmt3-iTMC{3#9#?a=blZmp@45PxbliQ?iDO9}zhX&j-_u_k4CDi|vA~;XArm?MDd?H|NR$5M4)b}plFiFg$w$H-ijy~(JNU8q zF*9yQ?(H1Qg=uK``CCR!cUjDRvW`Tf**S^Kx#WA7j)@d+#6#@YF(mqlnECc|J z2wT!3kDxZYd(9I^cZ$iOzhM+PCqpmeM|ow?TXI*561h+#x#RLr%w|)OAWbWtUG-!! zS~VWny10tH8Afisu6<`QQaBLqz80{qhyY8%4;j(Ga88K{4m~%30N+m+fpcD(jGsZQ kl%A7w5_SfiL&$NUbGwt90$(>+Z+{~kY){!#S|OwU1Ni0t+5i9m literal 0 HcmV?d00001 diff --git a/src/icons/16-apps-kdiff3.png b/src/icons/16-apps-kdiff3.png new file mode 100644 index 0000000000000000000000000000000000000000..88820eb835aa648ab99ce629d5b1e8a7726fa150 GIT binary patch literal 653 zcmV;80&@L{P))Z3-fIK9Awq)jR5$13JbBOiUiiV@&!WU4 zSmtVmytB>M>=2Aa1aA5@ZslsId;};B52rHjI6D|?(4}S~nm`{Z?&eio*Fl$tNJ6#_ zdfw@tGg4r%*3xV>al|E>jBs5KLxc+Af{1JWI>8!4sWkvalAx3#&2kWk;}~lVm5PtSBF?!A47xOANs8mT7-OkcCjg-= z3dY6)#)A;wAIDRkIRn_*>n}7LjgF(-fmiWkrPM&gi5+qKL0BCGK@f}U46-zh1*hL^ zG&);*{RKGrNMC+*-#GB(qTCOXk}TJ>C;eg1!0L@_Gb;)pOOoRqopNXku$FEyK!69q zG;cS4vHE_Sr~*}Gz?Lk`)OdV<_IPMwmKVG{{?5DPC)Q|;(O9F|2zo5H=lIm}QKIQY z9#~B$^2zdIltNnMtf(tI3R{4sTl@wri(^v=mS>Aol-i)&q35JUJ_79a_SP-38k`L0 nPtx5P^e(am!LDC8{FnLz)NR+6o;1HW00000NkvXXu0mjfPCXro literal 0 HcmV?d00001 diff --git a/src/icons/22-apps-kdiff3.png b/src/icons/22-apps-kdiff3.png new file mode 100644 index 0000000000000000000000000000000000000000..05ca28013cc29aebc267ae895b95775d5e162d54 GIT binary patch literal 925 zcmV;O17iG%P)7{R(cj_wbQd#2#J~U%KAK&ntI8>0Sndi}&!-rQGjKBT zYd%&ic$%({U=t5T5E0Jgf&JkqJ`t=yR|?+f2e!6;r`1U)vkWJW-kC*;QOQf<*c%Q> zk{QY(BZ@q|rCA<@;7$Q6wJK#VYE64Nw~Wt`3_E|!Bf7df*?eZr_pRthniXyA9+N;$1%=% zs-mDOO9Vj`ObwCfk9t)?tW02+;$q9{nZUCfM87&9&lBIoEN2|kW#w3?_Yk#{G9 zRbgBOiabX|sB2|hO&)1?5+ZRFRRwWOnx>d3%~qRcv-MQR018DnSu$chZcK0F0@SQp$6DX%yC02~xGU;ebq*LNQB>bVX{EC>o(Gw8Q@e{BUq zbll^N5F$R$?(thV#8knIw63^YJ?5?E0-v0Hg&%Hbd~@d!8UnYs_CN!o0nwU+3tis3 zGQd+FfpdTm__Z4GbM+WA#Z)n?F;#vn9`JJ1<%8E&xiaYR#rigHUY=#?Y?H}PWVC$5 zI0VLCj)u3szJ4)?|6@-pDkht02HTqQZL!1kAc$Xgh!t*vc)fbG$! ztwD=_7o7(_W{I*o500000NkvXXu0mjfqWGeD literal 0 HcmV?d00001 diff --git a/src/icons/256-apps-kdiff3.png b/src/icons/256-apps-kdiff3.png new file mode 100644 index 0000000000000000000000000000000000000000..89d4b9b620827a9f8e2d0471a2122bf29369e6b2 GIT binary patch literal 4872 zcmb7{cTiJX*N68>CzJrf6%k1k5d<#w#zhh?3aF?cDtJXfMZ`+*iVY+uC{h(fdP@)y zlqx77A_;h<2!tj@YADjHw2=A*?|d`w%=_27=9%AFd(Tk66g#)$srT z`2&{wjsXBkT?pWi(#O>d`{Mv0fwk4~{nFw8YG_$S)y)<) z2{He2H-Yhlk@$;*U`CvjNM=Gv5<^PpizF$3CufJGCj6cDKIRR>E;B+k&%cUO&uRQt z*VO#2t)sQGtCQQ?JMg3L$Kb%w$k52x)XdDkOis^CPR&eAPDvS?m>mDb*!aZg_{8w& z*pK0n{=wm%-u|B6fi7;Jl=g1!_s;INj_%fuWo>EilHUCJd{Q9M;`k%_`xT>1c zim(4tR$j?2uX0tob_TQD@wH_LaIAiiAO%AsD64L zUEHo({9Ls-OiF%H@!O(LDn+4Els`OCE_|}$!&9Y#VC8~f#{2Tz`~s!?K&AHqQr^CM zulUYiG0#s**8f{(W@g4OBd33O{rYukYTDzpcb;hlw^EBzQc@yPUj0jWN~)9>zbr8^ zF*=bElb9G6AFm(Z7#9~86B`>7v&@>{p*6w7Qq>F`(Dd&mKJF&^wi6$HU;D6G+v|(2 zM}ZzSW8;lCy4PPXb1hBxYRbkdQj+y9ztFp!r02@ib7kmVO4PfQpzji|e=$z~Vyynf z7=7nxDFzoJ4K73&oDVlR|J>kwn8CScy?Rdi(gR?5>(~+7|2ha(8B>9Q0U`cOf4|2B zUtjrcj~@9vq|3w0#-T3jFMn#4Sl)GVa_Q&%Nb8R=;S9$1kS+iOw*&i3kKb({uYW6p zFjYZQ%>LN(n^it$m$FU0*z*}feTtyD%eKrROGk$S1BiygDUy~Q#D6-}PQ;q!iJTo= z&E$#D)`zd)fV^v%|i{xwY??>Y#<^ zS^_`r_;$FM*0gJ|6B(VhV$sar=&HXYkN8uh#(lG8pF3_o47%Os$yEl$9x+i zr9K3T|HFX0Uj&P<_vByC+zB%oSSm%9=i_a;Z~>%6U=$ad(2-Bia+^d0Y2NA}_MkiL zMLsldW}n$vSc)cuPWf4p<$*`a7Ro&`l`Qj(T*9sv+ye$ovUCD9ij7la<}k1@{~Gf6 zvoqwXE^&?4`mYQ>v}$tiDe zPk-J0%tvNvC4yO))=*^1&Nsd@;g~lRS2HyiAM^Lt=Mz?2C&v67vW-~1vs;Fow~ovj zXK!<3|NTLA(tWbX5Wo8i2Dp79;moy)QFNavfte%qsog)6FG0g$EZFY1)JD#>Z*^h2 z&FnbH?rUM>JNdE%7;$gO0)6u*mb0s4KbAt*5ZRFK!es8t5YSVsYXtDl)7Vo&8`35k zib8il3RQ(?8Z79hB>U}!Q=3(Ile1nkuBpXakt%lJfs!G3+dG{ zU9`|<2I8735zc}#9ttpRpK%{B;TTa#y|tFELcF$g706m!#Lw0!_Q@GLpjuf+Y-N8I zDLGwDZ_}P$8-BMCvq94QVFq1FL-9t^%iLJKI|7y*dz7|eB&YAa`m)h{n!rNT$W9)2 z2_#dwtoN@#W&-_pxS0sOB;z80ff}ZuNYYB-X~7Ld2t@6kcC>>z9SO7h;H#ZgsNZOK zVAQo_2Hite<9j6bLJ=75&nn(U}gZNOS<+grfO655mZBb=cqVHn~IjaG(qT!*>qYG)a_nn z=-r**aQ28H`Z>Bki4<+G7V>Zf?@n)soxa)%Xyx(#WRq@0`SyhMC0I7A9>{br&AGUK zT&s*Pj61w!J%He>vO8+3!!DdaJ}W_SSuLOqdvnf$j^+J5)Ug8#rbJjlx_WT-B&!PO zQnPrDxD4?Fy3W}%?N|?qOWs+xovSKV$%(gH<$Wa$;^lM9iu*CfD%J&?=96$|m2?n4 zrwldB``4EO@z*7DB<1t=L!m6WoHNewLD#-dn-Eq%L_G7W=F+Q7P~K&@1Qg-R6Sq`gqd$x{oueS4G7NEs2Tlo$;5 zOwHdHStiRGKzDt$C;)I;c8bG=(pY*vc37MbUa;-?T0nkGOyMIh zd744LzQ81}%_pnmpt*h}a~42=q@#;@;Pp6v4mQqXd268x2kImGV??{ufY1kFRyNQx zmXO$}&eT6O>xQ>{)i>G{9Z_w;Xo_M79Y#~=w`ifGgg2^LR*T0(bfjb*qPV&o+v9DP z5$b?Uc$(hTGTI6oy(Tn9=c3MD+Y0al0|Yg^^8!{u$m*~MDutW9N&dUPkooHMqBu$x z{fdX93iH&S0MlBDcO_jih=4x@X^7IV_0*0NGLob%=x;7p=sNl}O=EoYLOg;k5s(L0aoqs4)po{1T49fJw9v*WfYwLH33sW3M$jkuGFlTvl^+-mL7Wn$D+qUK0`yDr-Doo2c`nFp6DS;r>C5kT9$r{Xs3R-WA&-by8>C~lH7%s8FIxocPE)v0J+&oD~B??Ws(85FAu zS6e+N;;!z{E;rSQwKY*(Z?3^xsm_et0-X4MFH9fJVeMpTDA(WTFJ&|aEES;mmbG-+ z9t4OS4FNe8unKJ)d0E`Klw=HnJV7-G#X2@h>-fSzWVjQC+mPT!JM#Xg5F*)JKC6=U z7!)ZcIUv_eq(c*Q>x5YkRNL%&IkKJcnv$yqinPre7;=~k=fC9&bh046RmPGn9JL=~ zzpA9h(W5~)=0a1+;UlqPZ9KS}C03OVwAj_h&_F|c36Vs*jgch6>S^NZre~--WU@ZOHLcZ#Z`Ytz=MHtODaZ3!gk* zprFJlauoCiz9tjnx*w_$<4E>A*#TA3@}by@p+K{mOh;&dkqDwX&<;yDQz5RTM zhGw!y#q41kjEE(p@1CH*pS-AVG3)q`axv40pRabiZ<9+a?Jl{=6Di-FAFa5F0XGuG zp1RB>Eq1yWQuq!>4P7}&fy6iExfdOg2PDWGhCL!1MUL13sIzmah@VbaG0o5o=uz>* zW^b!lkgJl0%p0X?EEa|DB#yCJ{vblb6oQ05G+{R()J1^*c>;@*qMg3J-GLQLYwk1_ z*--ec8a$SvCs45_2HpxM3v)Yhr$o?4atoaXLGdCl_vXD!{j)MOfu@+tUDhj+ez_0A^}5ViK=|obFbKAkXQKi@ z4GK?^{_o!1?Mw2PSD|tpUBRY9u*-d5J#UieozGj5&}Q~59HAf#!dYt{Lvoq>;5RW^ z1iR%JR|05Od0L2+SgZhOlTC}PlgQ(?dv12Ctbqm9GgesnH#@JC?&j#Oi*7o}T6;LP z5bQ7gq}>yCGh);nsiBIQTI4Iu2*CC<+4(0 zOp54_rPF!)ojQ?z*S%){kYm?VvR#-tAb!~Qq?e(Z?@5OnPRfYSf}Z)I+ov6{c1cgR z?3&g^!f}OU#CC5oWKEg10KC>}W#*CiHnbm46b3Sj=m#v(eURahCp!#yAirSMgc8VT z0gwiXXE{A`2Ujrfs?V9Ek=5SMzC$qKtBXB%;eL;LOCB-%;5kVBYUz^)f7IK@RA_+0 z-@9llAn%P zxn(4wrK_vy>E49zE+6CW-P-vR3N`2<#u=X|yAs^DMPNjEuyH4Y%-(gvT_s@N<+HBl z`zR!Ae}Ux-J=LQ(J4+s~QEK}LP5*GbASqQ)Jm+l$$i)zty~s*{O7hbCbw#c5eMu=8 zUdyXZyr25ZqqhtbN^)Mu;<{(+uSn*%wwrb=0Au?H8zsN<_Sy*C!3d`7;GH{*!@bSK z#{PcBaJJpiqetuN>awbU2g1up{?q+E2WahNqbBO1JHOnN*^MCKUSmph4 zfqY{`5_J>sdYeNwd53v>&jihNNH#pLntKwn6{!D_k+NsSe!;8+%zNiS?Ru3X7QO-- z?t71au%Y7>(upSMrywOnU=tk!pTYNe|AcZyt_9-V3CZXLG>y3_qIg*j}|=4Q;cQw<-t*dua%YcJQEUjFGIPJ#42#A{+E z1+)7kbdMZpLCx5+LK-zlX%&Avdc=FKT5vDzLXQBliGUY4d7$0MrXo6)sH$JX%1y(m<>>pW6% z-cPf-*YVRxb`5wWDh5qgk+gReTN`{Oa1|Y@Gvq=S{1Sr{Zou!zRQ{x?0!h#h z6%LcI(aF8phDMdpc@2_7k*fqVEkiM8>`wK*Xs_mkGBN6ej9Gt*ulhZe0pOe(ymSYa zi6`Nap8VSZk6uE)sP#~)wK9qOTOi`>T1ZRU8IN!Hw?j5q_g|gzG$dP|GuDi_b8xwh OKd}GEzN|l;eEtuj9ylog literal 0 HcmV?d00001 diff --git a/src/icons/32-apps-kdiff3.png b/src/icons/32-apps-kdiff3.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa73c1ec62677ef4bd0e30b31583c7e997df0a8 GIT binary patch literal 1335 zcmcJOc}$aM9LL|TB7&e90}P^>2rJlf8=$ltMIa1e&?t;WK5szJ>!OA#QO*-Cnx?_uoGGJm2TY^T#jGlV3eKE6v?? zuPXom?&+VV97E; zQm0qybSfEI3r_R9-G4r;11p8X<9;|D_RCfk_(~T{sV=vMVU8G|#bYn{q zyRei_9Hj$yz8!athCA1aJ9|I)?A_oJ#FpTaUxUvyhn%5?oW2uU+z?(=A6ZZrb)pKN z_Z1U?2vA32@-=@9*cpU-d|dG{CWn zV_C=lqY=8p8L&GA0+6 z=2n(p{jvFuFvhStVP zUUofi&t|4qN~MYL`&tj9%TpTzmreZqA-@+_MaXr*KdY7=uYbo(+RWRp*@njZtPC7Y&#jD0?4GK3%7=UMGkh}Es=#EA55sG_dQm-fQQz(LC?0cmLs2MzuepaGO*gLwR=?g>v#V2? zkn98kzNxMO)ubTn%RfWM3!IBR_7SV!Og@ZjCw~9>o*OiC$WrCgRt8>(Ht~tQ0DslX zTD2kJjD#&>u7A+r$H*&Jj2`HEW3ODF`SI=MOWE^@T@{%qVH0h+*ypBw{!8Rk#rwN* zhbx{$O4?esa9OLS(bk}&DBoJAlO5ZyY+z6TFnKSA Us>miYOrkr9O2}^PGxm^W znvF55otVj(F^z=mMNKEU;cB`+bxwcXbN{>V`MlrvdCz;Ef8KMR1lQA!8fu%>007W% zb~^3`p2)SW0s#{}tV#s{2;l1CaRR*le`}qBf|icn{haLk_^bzc_=LQi#Dd(Ug8ZbS z`~*VYLqc96A^%@JA`~VQ3hof|l86P##KK3!qBX^9Qi=)bCB=cIIrxeSkIJmVnkNTp z(+Rb8#q|v(^`sw)>q%y$6hZ?j`{`2yN|H7$QJ0!nMr)3vKgF^sAsq5Eet)mvJ7Mp0 zAzvuw4~Y8)M0}AL)GvPVTr3fY2ZfRsBI!%9^d*?m;SuSp(V>yCk=K)>j zURy^{E1APtV{z|<|bBFQ!`VqIbDyLv4xps+?=(&IZL-WZ7VZt zBQwK{f!AfEhB4?N3@WX$$)Yh&rzr*7#MN$0HgC!SQ=6VdrqXJtbZy#0@H0siT0MpO zghDHzuresEHz^%33h^Pi7f0sbA`2qO&2gk&7^&3aNws+eWk(UmG`D?whQK66Xq+f9 zzCUOjKWK7y!1Rv5Jf;J7iwBRSBO=I%u!dd1HHe@pL{KF>u;QC?ct9CEpcMW`3CQwy zqNP8<+CLxZpNI6%werum^eaO66(al!kbb$=m>eq%e%Dp}t}EGyD_MxknQ-4UIQkL% zw+HaEI7<(#^@J_xWAOG~Xd~J;m^tHEt zm~LxZ{?ab*=#z|2&b*ob^m+9QV-K+k02G+c$L&0@Lzl)ZwA3$YM6D>|jPjHgu?ncI z7mo#*c&8@T@oeb^)?NFRkZ#JBXB2&bPD1(is5k{56rg*Sse^{DgSI#UO$*_^NmA0e zrugO!XFmtA7Kha#$=&OjffsAx8-QxyP;Z$%)CKhsx`L6g3}2B}ArkdyPN6lRgB~Yz zqZVQ+F?;u(skatQ+}NX?y1cY=enH=8lh66;T~=0B*49U3*tC*vuJUduK7QkasO6(E zpY1Ti6hw^&LRYP#Sl#vfxc-30(oIiRE`an=i6zb|vt_NCm)nhBST5Zz<-yWoFVVCV zJ;$zxAh`w_3IvF)uPV07CRWyYc=znvEGLr`h_bvJ-c=+|w%3Ci>Z4pqMYaxnn*lUS5rNWR$>m0yb8V{Q>9P z0dw-fy$VJE7NP+QP6d{tHvq`|{k;d<7aq?rf}jVB;86GMpRP$=`PIlUKH7U|VYvG4 zmdcf!$8>GM6s+%v&N-(GB4?MXZ$xF(y5x59;1 zvisN{qmPhdpfFYO$Rd7H747YROJ2<&eqE%#mEkyH!KP}q>O&Qf1OP~1vC>pRdp52O OkMoJs$Ls9TvHt)ZXfGWA literal 0 HcmV?d00001 diff --git a/src/icons/64-apps-kdiff3.png b/src/icons/64-apps-kdiff3.png new file mode 100644 index 0000000000000000000000000000000000000000..c869563cae097a78ba2e3710688c0d2a1872fc03 GIT binary patch literal 1904 zcma*ndpr|*9|!OaY07HllFO0Fam}evE^*3omq&PXQXVz87vUwOC)H77o=}UJxvw#^ zF*f(h<~pO9%TSoxY%Wo@xfIoT96WP6&+F;@_xxV(-}m?Z{eFM_{`mY-+}#|(2hX-UO4#)|*|X@I+{m%U{Be+{72zC%h1r=7IiAL{w08u(}aD=#}Y zANvrSor2AK{z@YEe{lIPaCul9?nPliS|K(7pY@^$n~KM!;R_{Fi(VDsi_?mWUKSUj zi*Y%`;`}latUMD}LB>~7D=Mo>YO2-hQb~2SW%YGs_4VY2dW8m5d1C{G)>zq0t8Hzi zw{_4uJDIHB4i>w+kHh8+_YJ)r7#F1*idWXYtE(dMicln$Tz!u}x4@rWm=VnL_;Zsy{`k}kS7LH{ zY?3!RJ~c8vIl}$Z&?r}8_z!#i$k;cW;gRpW9TkCdQ>}STEp64!9n=

BG ztY?K36psA7pe(bX$hu%SEB}=#WC21jE~S!`nrFRcIKDJsFgDGAQR{V2*9Z zakL}=*J3=~{{ELBsCyA-K5aSg{Nivw?g;{6hujQ)8e?l~>vC0WYlq6rBIM={lDPFa+rhkIC;j2Y5cg4p zhjb>v3E(m=KlBBv_CDZThe<*RJcWk{!2=IT`=`i`gR7FY)x6>6P~+-AL$y*D*Knbu zw0%m7g*@osRMhUy_MYR)3Ro-)6PCGJx>+YYQU%ue zK~VNuwojNtgN~6-NP()(im6`Ayn=V<(PTmM1z)YKXljpklTX{xZ3qwoJ1?h*BX?;x zJ^uPpeIIO{WV5~tg6q3%8C(a-dsg3yY`<|ePIGKLpzVf-<-v_v3pXiGAI`=_8N#NT zqvJ_q#Txt8$}pNO#E#v4Xk{$=0aCkSo_yQ&!oh!D)xq5*tb2sep*CAbQXyvBvEjx{ zzaLbCe|_+wG0E?Tz8{HKA{gApt{m8BS$`Bl75_3PE@5iz^w)nNbi#`vvLNcTR1!>P z=_jZ*PH=YtVQNeuDHBm4>x>Cl;y#Wj+L}Ib=5(ZrOAMS68YNcL$6!odV;4g46+$xk z^Hb;6XraP;l3dLlodpcY)l((q*<~p_5eMJWEfVe@(&H&=I7J>*UO>Vw1^<53LB(QA z8fF6-h5`sPs%${>854v?2JqDNK)|s;>1a710C%r&;tYfp_50}Lg<*Fu{UlSGd&y4? zL1cw`b%)obCevB(lurCx%2*DCdZ|0HTJdK33FdIf?)nz~nRmM56$b&C@2xXo`mHT^Acdc-j1P5x12V7s$pYS%qIlwuH!u? z5|2PGHL1s1JdmG#tiu^0LFw@fR3vllwx!VgJy^usIR`cZ-Kqbo0Yii%HZPbU&Sd~) ivwHxtNFvuP6aa8>wA}9A@3gb`T{zpj*-6(oFBnac( zTL1dxN5j>%EcfETi;`Hb^*GUgxc{)qo^~HJO@qO4wha8W{*dQ~rDYu+)5uKHofY_& zjO1R%d1he~TYB5wZ@c@c^z!gY`pJHu#91*i&h9#$(_q{5J|2(ekrth>5W+&lBE*0m zM)n-%-pS|>1&m`u2|~z%wzlVWy_TmajK5t3Q?zzx2M!PL*9@pD%q)3KeYu5^(u`$p zeg5*fX*7@-_Q#=PhPonR@K|M~o5S%R|fFaMjQ->M?~s1DvHc?3W7`=)vo_)DO3 z@8$R5-rGsFZr=fYE30kjb*V8pyP6vWuTy zQv!hj$YGVM>SXhW^z%H4Wa`DrTa2ofT?zp+R{t0Va;%|QcLlGRXtXtZ@Pg#H*2%E( z7{<_G)Uhha+3>1I6TXPouBaeth{Bjw)!9RGRKBeBJbjcyb1zAUF)Z3Rj1dLiV#)7xFA*RuB`KbE9wKe&03CCiPCyTNORIle@eX|1XNw? zUNhG-UhAA;(}Bb&+FAm&h!1K{q@_g#VQKek9OjUhA2XT$s&d=E-7afGE)Lq zYYmT)m&=a^b(zVXg~5a{-A_%PSY>%~XjQLDMy;Gp;8Wkx+twl(LJ!iB`M^N3-DWax z7wpWa+-}hpj~Hc*(UsMw^Hq*F1CGfk$LxQRW5GS{*&}o~Z{XP72r0Y~qvCds{T{~z z^~hyxB9G(TkFr{kI)T%RA%@=)xEIxc-w?S$k5!CJ+|F<+YbbGgToYl6CJUELQe-lL zy0QJ&t8fj8L=c~B$K1UoGS4=`p2Zu(vN&8WA5sa2;k$lLmqT6&=@UzMpH$m)DD9C7 znHn*1J*kZgmsfk+L&ZoB5yL%181>NbITO`%NfF5dSB$J3p>L2B-UzZ~V^;a?lG^>> zl8kJRI%5KXmy_E`CM3X{F{>2aNOE%qOQHyl&2Ywvj^1Pwz+Wl!oUc-rh^e|_n1;< zBEg+coiq3jqk8Hre~#3fVxA`7WO=Gzf(wp~T|(^o2zl`GhZ-u3|Ci=0xb~Yyk@mC3 zFg$VX_r{m}^@!`zu58mbx;rZv$FPD)YQTB=$;%&8*-g)Ik)=M`r%#S$F7%P1Rk|^=SlT@(OM(m6yUXT ztlsiSN1^b#M1}Gjp{}f9`{bAoPO+UkjDg10G*tA`!e7Q=C&i2+q(g+x90(bn4HArHnlhq5Xb)%0&*HX$ap>DGZ@m5We4@ z!qA01W!k=MP9AYvH!Woq^TxD#}fzX*zDeTHso~C7IMx_kn5YKY@a{dOTOglL^ z?|1sTgmB`n=e(y<#D*tPUqw#8 z(AsN+clnDnWHLuAz+VLZ+9r10g@M!u6o|m8;4oWz8DS8_q!|3C#_)o;CUR5*5ctMB zGBLxwUzay|3r*BjDQ>|DKvZlo2o8pd$Y7nYXfV%kujgNZv#ZD?Tb-vYlIUNSr`T#FZX4D|q)U$IWTIK{{rnj2VfIH5MB + with elements from class StringMatcher + SPDX-FileCopyrightText: 2003 Andre Woebbeking + Modifications for KDiff3 by Joachim Eibl + + SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later + */ +#include "CvsIgnoreList.h" +#include "TypeUtils.h" + +#include +#include + +void IgnoreList::init(FileAccess& dir, const t_DirectoryList* pDirList) +{ + static const QString ignorestr = QString::fromLatin1(". .. core RCSLOG tags TAGS RCS SCCS .make.state " + ".nse_depinfo #* .#* cvslog.* ,* CVS CVS.adm .del-* *.a *.olb *.o *.obj " + "*.so *.Z *~ *.old *.elc *.ln *.bak *.BAK *.orig *.rej *.exe _$* *$"); + + const char* varname = getVarName(); + + addEntriesFromString(ignorestr); + addEntriesFromFile(QDir::homePath() + '/'+ getGlobalIgnoreName()); + if(qEnvironmentVariableIsSet(varname) && !qEnvironmentVariableIsEmpty(varname)) + { + addEntriesFromString(QString::fromLocal8Bit(qgetenv(varname))); + } + + const bool bUseLocalCvsIgnore = ignoreExists(pDirList); + if(bUseLocalCvsIgnore) + { + FileAccess file(dir); + file.addPath(getIgnoreName()); + if(file.exists() && file.isLocal()) + addEntriesFromFile(file.absoluteFilePath()); + else + { + file.createLocalCopy(); + addEntriesFromFile(file.getTempName()); + } + } +} + +void IgnoreList::addEntriesFromString(const QString& str) +{ + const QStringList patternList = str.split(' '); + for(const QString& pattern : patternList) + { + addEntry(pattern); + } +} + +/* + We don't have a real file in AUTORUN mode +*/ +void IgnoreList::addEntriesFromFile(const QString& name) +{ + #ifdef AUTORUN + Q_UNUSED(name) + #else + QFile file(name); + + if(file.open(QIODevice::ReadOnly)) + { + QTextStream stream(&file); + while(!stream.atEnd()) + { + addEntry(stream.readLine()); + } + } + #endif +} + +void IgnoreList::addEntry(const QString& pattern) +{ + if(pattern != QString("!")) + { + if(pattern.isEmpty()) return; + + // The general match is general but slow. + // Special tests for '*' and '?' at the beginning or end of a pattern + // allow fast checks. + + // Count number of '*' and '?' + unsigned int nofMetaCharacters = 0; + + const QChar* pos; + pos = pattern.unicode(); + const QChar* posEnd; + posEnd = pos + pattern.length(); + while(pos < posEnd) + { + if(*pos == QChar('*') || *pos == QChar('?')) ++nofMetaCharacters; + ++pos; + } + + if(nofMetaCharacters == 0) + { + m_exactPatterns.append(pattern); + } + else if(nofMetaCharacters == 1) + { + if(pattern.at(0) == QChar('*')) + { + m_endPatterns.append(pattern.right(pattern.length() - 1)); + } + else if(pattern.at(pattern.length() - 1) == QChar('*')) + { + m_startPatterns.append(pattern.left(pattern.length() - 1)); + } + else + { + m_generalPatterns.append(pattern); + } + } + else + { + m_generalPatterns.append(pattern); + } + } + else + { + m_exactPatterns.clear(); + m_startPatterns.clear(); + m_endPatterns.clear(); + m_generalPatterns.clear(); + } +} + +bool IgnoreList::matches(const QString& text, bool bCaseSensitive) const +{ + //Do not use QStringList::indexof here it has no case flag + if(m_exactPatterns.contains(text, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive)) + { + return true; + } + + for(const QString& startPattern: m_startPatterns) + { + if(text.startsWith(startPattern, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive)) + { + return true; + } + } + + for(const QString& endPattern: m_endPatterns) + { + if(text.endsWith(endPattern, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive)) + { + return true; + } + } + + for(const QString& globStr : m_generalPatterns) + { + QRegExp pattern(globStr, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::Wildcard); + if(pattern.exactMatch(text)) + return true; + } + + return false; +} + +bool IgnoreList::ignoreExists(const t_DirectoryList* pDirList) +{ + for(const FileAccess& dir : *pDirList) + { + if(dir.fileName() == getIgnoreName()) + return true; + } + return false; +} diff --git a/src/kdiff3.cpp b/src/kdiff3.cpp new file mode 100644 index 0000000..8890ffc --- /dev/null +++ b/src/kdiff3.cpp @@ -0,0 +1,1098 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +// application specific includes +#include "kdiff3.h" + +#include "defmac.h" +#include "directorymergewindow.h" +#include "fileaccess.h" +#include "guiutils.h" +#include "kdiff3_part.h" +#include "kdiff3_shell.h" +#include "optiondialog.h" +#include "progress.h" +#include "smalldialogs.h" +#include "difftextwindow.h" +#include "mergeresultwindow.h" +#include "RLPainter.h" +#include "Utils.h" + +#ifndef Q_OS_WIN +#include +#endif + +// include files for QT +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// include files for KDE +#include +#include +#include +#include +#include +#include +#include +#include + +bool KDiff3App::m_bTripleDiff = false; + +boost::signals2::signal> KDiff3App::getSelection; +boost::signals2::signal KDiff3App::allowCopy; +boost::signals2::signal KDiff3App::allowCut; +boost::signals2::signal KDiff3App::shouldContinue; +boost::signals2::signal KDiff3App::encodingChanged; + +/* + To be a constexpr the QLatin1String constructor must be given the size of the string explicitly. + Otherwise it calls strlen which is not a constexpr. +*/ +constexpr QLatin1String MAIN_TOOLBAR_NAME = QLatin1String("mainToolBar", sizeof("mainToolBar") - 1); + +KActionCollection* KDiff3App::actionCollection() const +{ + if(m_pKDiff3Shell == nullptr) + return m_pKDiff3Part->actionCollection(); + else + return m_pKDiff3Shell->actionCollection(); +} + +QStatusBar* KDiff3App::statusBar() const +{ + if(m_pKDiff3Shell == nullptr) + return nullptr; + else + return m_pKDiff3Shell->statusBar(); +} + +KToolBar* KDiff3App::toolBar(const QLatin1String &toolBarId) const +{ + if(m_pKDiff3Shell == nullptr) + return nullptr; + else + return m_pKDiff3Shell->toolBar(toolBarId); +} + +bool KDiff3App::isPart() const +{ + return m_pKDiff3Shell == nullptr; +} + +bool KDiff3App::isFileSaved() const +{ + return m_bFileSaved; +} + +bool KDiff3App::isDirComparison() const +{ + return m_bDirCompare; +} + +/* + Don't call completeInit from here it will be called in KDiff3Shell as needed. +*/ +KDiff3App::KDiff3App(QWidget* pParent, const QString& name, KDiff3Part* pKDiff3Part) + : QSplitter(pParent) //previously KMainWindow +{ + setObjectName(name); + m_pKDiff3Part = pKDiff3Part; + m_pKDiff3Shell = qobject_cast(pParent); + + setWindowTitle("KDiff3"); + setOpaqueResize(false); // faster resizing + setUpdatesEnabled(false); + KCrash::initialize(); + + // set Disabled to same color as enabled to prevent flicker in DirectoryMergeWindow + QPalette pal; + pal.setBrush(QPalette::Base, pal.brush(QPalette::Active, QPalette::Base)); + pal.setColor(QPalette::Text, pal.color(QPalette::Active, QPalette::Text)); + setPalette(pal); + + // Needed before any file operations via FileAccess happen. + if(g_pProgressDialog == nullptr) + { + g_pProgressDialog = new ProgressDialog(this, statusBar()); + g_pProgressDialog->setStayHidden(true); + } + + // All default values must be set before calling readOptions(). + m_pOptionDialog = new OptionDialog(m_pKDiff3Shell != nullptr, this); + chk_connect(m_pOptionDialog, &OptionDialog::applyDone, this, &KDiff3App::slotRefresh); + + // This is just a convenience variable to make code that accesses options more readable + m_pOptions = m_pOptionDialog->getOptions(); + + m_pOptionDialog->readOptions(KSharedConfig::openConfig()); + + // Option handling: Only when pParent==0 (no parent) + int argCount = KDiff3Shell::getParser()->optionNames().count() + KDiff3Shell::getParser()->positionalArguments().count(); + bool hasArgs = !isPart() && argCount > 0; + if(hasArgs) { + QString s; + QString title; + if(KDiff3Shell::getParser()->isSet("confighelp")) + { + s = m_pOptionDialog->calcOptionHelp(); + title = i18n("Current Configuration:"); + } + else + { + s = m_pOptionDialog->parseOptions(KDiff3Shell::getParser()->values("cs")); + title = i18n("Config Option Error:"); + } + if(!s.isEmpty()) + { +#ifndef Q_OS_WIN + if(isatty(fileno(stderr)) != 1) +#endif + { + QPointer pDialog = QPointer(new QDialog(this)); + pDialog->setAttribute(Qt::WA_DeleteOnClose); + pDialog->setModal(true); + pDialog->setWindowTitle(title); + QVBoxLayout* pVBoxLayout = new QVBoxLayout(pDialog); + QPointer pTextEdit = QPointer(new QTextEdit(pDialog)); + pTextEdit->setText(s); + pTextEdit->setReadOnly(true); + pTextEdit->setWordWrapMode(QTextOption::NoWrap); + pVBoxLayout->addWidget(pTextEdit); + pDialog->resize(600, 400); + pDialog->exec(); + } +#if !defined(Q_OS_WIN) + else + { + // Launched from a console + QTextStream outStream(stdout); + outStream << title << "\n"; + outStream << s;//newline already appended by parseOptions + } +#endif + exit(1); + } + } + + m_sd1->setOptions(m_pOptions); + m_sd2->setOptions(m_pOptions); + m_sd3->setOptions(m_pOptions); + +#ifdef ENABLE_AUTO + m_bAutoFlag = hasArgs && KDiff3Shell::getParser()->isSet("auto") && !KDiff3Shell::getParser()->isSet("noauto"); +#else + m_bAutoFlag = false; +#endif + + m_bAutoMode = m_bAutoFlag || m_pOptions->m_bAutoSaveAndQuitOnMergeWithoutConflicts; + if(hasArgs) { + m_outputFilename = KDiff3Shell::getParser()->value("output"); + + if(m_outputFilename.isEmpty()) + m_outputFilename = KDiff3Shell::getParser()->value("out"); + + if(!m_outputFilename.isEmpty()) + m_outputFilename = FileAccess(m_outputFilename, true).absoluteFilePath(); + + if(m_bAutoMode && m_outputFilename.isEmpty()) + { + if(m_bAutoFlag) + { + QTextStream(stderr) << i18n("Option --auto used, but no output file specified.") << "\n"; + } + m_bAutoMode = false; + } + + if(m_outputFilename.isEmpty() && KDiff3Shell::getParser()->isSet("merge")) + { + m_outputFilename = "unnamed.txt"; + m_bDefaultFilename = true; + } + else + { + m_bDefaultFilename = false; + } + + QStringList args = KDiff3Shell::getParser()->positionalArguments(); + + m_sd1->setFilename(KDiff3Shell::getParser()->value("base")); + if(m_sd1->isEmpty()) { + if(args.count() > 0) m_sd1->setFilename(args[0]); // args->arg(0) + if(args.count() > 1) m_sd2->setFilename(args[1]); + if(args.count() > 2) m_sd3->setFilename(args[2]); + } + else + { + if(args.count() > 0) m_sd2->setFilename(args[0]); + if(args.count() > 1) m_sd3->setFilename(args[1]); + } + //Set m_bDirCompare flag + m_bDirCompare = m_sd1->isDir(); + + QStringList aliasList = KDiff3Shell::getParser()->values( "fname" ); + QStringList::Iterator ali = aliasList.begin(); + + QString an1 = KDiff3Shell::getParser()->value("L1"); + if(!an1.isEmpty()) { + m_sd1->setAliasName(an1); + } + else if(ali != aliasList.end()) + { + m_sd1->setAliasName(*ali); + ++ali; + } + + QString an2 = KDiff3Shell::getParser()->value("L2"); + if(!an2.isEmpty()) { + m_sd2->setAliasName(an2); + } + else if(ali != aliasList.end()) + { + m_sd2->setAliasName(*ali); + ++ali; + } + + QString an3 = KDiff3Shell::getParser()->value("L3"); + if(!an3.isEmpty()) { + m_sd3->setAliasName(an3); + } + else if(ali != aliasList.end()) + { + m_sd3->setAliasName(*ali); + ++ali; + } + } + else + { + m_bDefaultFilename = false; + } + g_pProgressDialog->setStayHidden(m_bAutoMode); + + /////////////////////////////////////////////////////////////////// + // call inits to invoke all other construction parts + initActions(actionCollection()); + //Warning: Call this before connecting KDiff3App::slotUpdateAvailabilities or calling KXMLGUIClient::setXMLFile + MergeResultWindow::initActions(actionCollection()); + + initStatusBar(); + + m_pFindDialog = new FindDialog(this); + chk_connect(m_pFindDialog, &FindDialog::findNext, this, &KDiff3App::slotEditFindNext); + + autoAdvance->setChecked(m_pOptions->m_bAutoAdvance); + showWhiteSpaceCharacters->setChecked(m_pOptions->m_bShowWhiteSpaceCharacters); + showWhiteSpace->setChecked(m_pOptions->m_bShowWhiteSpace); + showWhiteSpaceCharacters->setEnabled(m_pOptions->m_bShowWhiteSpace); + showLineNumbers->setChecked(m_pOptions->m_bShowLineNumbers); + wordWrap->setChecked(m_pOptions->wordWrapOn()); + if(!isPart()) + { + /* + No need to restore window size and position here that is done later. + See KDiff3App::completeInit + */ + viewStatusBar->setChecked(m_pOptions->isStatusBarVisable()); + slotViewStatusBar(); + + KToolBar *mainToolBar = toolBar(MAIN_TOOLBAR_NAME); + if(mainToolBar != nullptr){ + mainToolBar->mainWindow()->addToolBar(Qt::TopToolBarArea, mainToolBar); + } + + } + slotRefresh(); + + m_pMainSplitter = this; + m_pMainSplitter->setOrientation(Qt::Vertical); + // setCentralWidget( m_pMainSplitter ); + m_pDirectoryMergeSplitter = new QSplitter(m_pMainSplitter); + m_pDirectoryMergeSplitter->setObjectName("DirectoryMergeSplitter"); + m_pMainSplitter->addWidget(m_pDirectoryMergeSplitter); + m_pDirectoryMergeSplitter->setOrientation(Qt::Horizontal); + m_pDirectoryMergeWindow = new DirectoryMergeWindow(m_pDirectoryMergeSplitter, m_pOptions); + m_pDirectoryMergeSplitter->addWidget(m_pDirectoryMergeWindow); + m_pDirectoryMergeInfo = new DirectoryMergeInfo(m_pDirectoryMergeSplitter); + m_pDirectoryMergeWindow->setDirectoryMergeInfo(m_pDirectoryMergeInfo); + m_pDirectoryMergeSplitter->addWidget(m_pDirectoryMergeInfo); + //Warning: Make sure DirectoryMergeWindow::initActions is called before this point or we can crash when selectionChanged is sent. + m_pDirectoryMergeWindow->setupConnections(this); + + chk_connect(QApplication::clipboard(), &QClipboard::dataChanged, this, &KDiff3App::slotClipboardChanged); + chk_connect_q(this, &KDiff3App::sigRecalcWordWrap, this, &KDiff3App::slotRecalcWordWrap); + connections.push_back(shouldContinue.connect(boost::bind(&KDiff3App::canContinue, this))); + chk_connect(this, &KDiff3App::finishDrop, this, &KDiff3App::slotFinishDrop); + + connections.push_back(allowCut.connect(boost::bind(&KDiff3App::canCut, this))); + connections.push_back(allowCopy.connect(boost::bind(&KDiff3App::canCopy, this))); + + m_pDirectoryMergeWindow->initDirectoryMergeActions(this, actionCollection()); + + if(qApp != nullptr) + chk_connect(qApp, &QApplication::focusChanged, this, &KDiff3App::slotFocusChanged); + + delete KDiff3Shell::getParser(); +} + +/* + This function is only concerned with qt objects that don't support canCut. + allowCut() or's the results from all canCut signals +*/ +bool KDiff3App::canCut() +{ + QWidget* focus = focusWidget(); + + return (qobject_cast(focus) != nullptr || qobject_cast(focus) != nullptr); +} + +/* + This function is only concerned with qt objects that don't support canCopy. + allowCopy() or's the results from all canCopy signals +*/ +bool KDiff3App::canCopy() +{ + QWidget* focus = focusWidget(); + + return (qobject_cast(focus) != nullptr || qobject_cast(focus) != nullptr); +} +/* + Make sure Edit menu tracks focus correctly. +*/ +void KDiff3App::slotFocusChanged(QWidget* old, QWidget* now) +{ + Q_UNUSED(now); + Q_UNUSED(old); + + slotUpdateAvailabilities(); +} + +void KDiff3App::completeInit(const QString& fn1, const QString& fn2, const QString& fn3) +{ + if(!fn1.isEmpty()) { + m_sd1->setFilename(fn1); + m_bDirCompare = m_sd1->isDir(); + } + if(!fn2.isEmpty()) { + m_sd2->setFilename(fn2); + } + if(!fn3.isEmpty()) { + m_sd3->setFilename(fn3); + } + + //should not happen now. + Q_ASSERT(m_bDirCompare == m_sd1->isDir()); + + if(m_bAutoFlag && m_bAutoMode && m_bDirCompare) + { + QTextStream(stderr) << i18n("Option --auto ignored for folder comparison.") << "\n"; + m_bAutoMode = false; + } + + bool bSuccess = true; + if(m_bDirCompare) + bSuccess = doDirectoryCompare(false); + else + { + improveFilenames(); + m_pDirectoryMergeSplitter->hide(); + + mainInit(m_totalDiffStatus); + if(m_bAutoMode) + { + QSharedPointer pSD = nullptr; + if(m_sd3->isEmpty()) { + if(m_totalDiffStatus->isBinaryEqualAB()) { + pSD = m_sd1; + } + } + else + { + if(m_totalDiffStatus->isBinaryEqualBC() || m_totalDiffStatus->isBinaryEqualAB()) + { + //if B==C (assume A is old), if A==B then C has changed + pSD = m_sd3; + } + else if(m_totalDiffStatus->isBinaryEqualAC()) + { + pSD = m_sd2; // assuming B has changed + } + } + + if(pSD != nullptr) + { + // Save this file directly, not via the merge result window. + FileAccess fa(m_outputFilename); + if(m_pOptions->m_bDmCreateBakFiles && fa.exists()) + { + fa.createBackup(".orig"); + } + + bSuccess = pSD->saveNormalDataAs(m_outputFilename); + if(bSuccess) + ::exit(0); + else + KMessageBox::error(this, i18n("Saving failed.")); + } + else if(m_pMergeResultWindow->getNrOfUnsolvedConflicts() == 0) + { + bSuccess = m_pMergeResultWindow->saveDocument(m_pMergeResultWindowTitle->getFileName(), m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle()); + if(bSuccess) ::exit(0); + } + } + } + m_bAutoMode = false; + + if(!isPart() && m_pOptions->isFullScreen()) + m_pKDiff3Shell->showFullScreen(); + else if(!isPart() && m_pOptions->isMaximised()) + m_pKDiff3Shell->showMaximized(); + + if(!isPart() && !m_pKDiff3Shell->isVisible()) + { + /* + This is just an intital state before qt does a proper restore. + */ + QSize size = m_pOptions->getGeometry(); + QPoint pos = m_pOptions->getPosition(); + if(!size.isEmpty()) + { + m_pKDiff3Shell->resize(size); + + QRect visibleRect = QRect(pos, size) & QApplication::desktop()->rect(); + if(visibleRect.width() > 100 && visibleRect.height() > 100) + m_pKDiff3Shell->move(pos); + } + + m_pKDiff3Shell->show(); + } + + g_pProgressDialog->setStayHidden(false); + + if(statusBar() != nullptr) + statusBar()->setSizeGripEnabled(true); + + slotClipboardChanged(); // For initialisation. + + slotUpdateAvailabilities(); + + if(!m_bDirCompare && m_pKDiff3Shell != nullptr) + { + bool bFileOpenError = false; + if((!m_sd1->getErrors().isEmpty()) || + (!m_sd2->getErrors().isEmpty()) || + (!m_sd3->getErrors().isEmpty())) + { + QString text(i18n("Opening of these files failed:")); + text += "\n\n"; + if(!m_sd1->getErrors().isEmpty()) + text += " - " + m_sd1->getAliasName() + '\n' + m_sd1->getErrors().join('\n') + '\n'; + if(!m_sd2->getErrors().isEmpty()) + text += " - " + m_sd2->getAliasName() + '\n' + m_sd2->getErrors().join('\n') + '\n'; + if(!m_sd3->getErrors().isEmpty()) + text += " - " + m_sd3->getAliasName() + '\n' + m_sd3->getErrors().join('\n') + '\n'; + + KMessageBox::sorry(this, text, i18n("File open error")); + + bFileOpenError = true; + } + + if(m_sd1->isEmpty() || m_sd2->isEmpty() || bFileOpenError) + slotFileOpen(); + } + else if(!bSuccess) // Directory open failed + { + slotFileOpen(); + } +} + +KDiff3App::~KDiff3App() +{ + // Prevent spurious focus change signals from Qt from being picked up by KDiff3App during distruction. + QObject::disconnect(qApp, &QApplication::focusChanged, this, &KDiff3App::slotFocusChanged); +}; + +/** + * Helper function used to create actions into the ac collection + */ + +void KDiff3App::initActions(KActionCollection* ac) +{ + if(ac == nullptr){ + KMessageBox::error(nullptr, "actionCollection==0"); + exit(-1);//we cannot recover from this. + } + fileOpen = KStandardAction::open(this, &KDiff3App::slotFileOpen, ac); + fileOpen->setStatusTip(i18n("Opens documents for comparison...")); + + fileReload = GuiUtils::createAction(i18n("Reload"), QKeySequence(QKeySequence::Refresh), this, &KDiff3App::slotReload, ac, QLatin1String("file_reload")); + + fileSave = KStandardAction::save(this, &KDiff3App::slotFileSave, ac); + fileSave->setStatusTip(i18n("Saves the merge result. All conflicts must be solved!")); + fileSaveAs = KStandardAction::saveAs(this, &KDiff3App::slotFileSaveAs, ac); + fileSaveAs->setStatusTip(i18n("Saves the current document as...")); +#ifndef QT_NO_PRINTER + filePrint = KStandardAction::print(this, &KDiff3App::slotFilePrint, ac); + filePrint->setStatusTip(i18n("Print the differences")); +#endif + fileQuit = KStandardAction::quit(this, &KDiff3App::slotFileQuit, ac); + fileQuit->setStatusTip(i18n("Quits the application")); + editCut = KStandardAction::cut(this, &KDiff3App::slotEditCut, ac); + editCut->setShortcuts(QKeySequence::Cut); + editCut->setStatusTip(i18n("Cuts the selected section and puts it to the clipboard")); + editCopy = KStandardAction::copy(this, &KDiff3App::slotEditCopy, ac); + editCopy->setShortcut(QKeySequence::Copy); + editCopy->setStatusTip(i18n("Copies the selected section to the clipboard")); + editPaste = KStandardAction::paste(this, &KDiff3App::slotEditPaste, ac); + editPaste->setStatusTip(i18n("Pastes the clipboard contents to current position")); + editPaste->setShortcut(QKeySequence::Paste); + editSelectAll = KStandardAction::selectAll(this, &KDiff3App::slotEditSelectAll, ac); + editSelectAll->setStatusTip(i18n("Select everything in current window")); + editFind = KStandardAction::find(this, &KDiff3App::slotEditFind, ac); + editFind->setShortcut(QKeySequence::Find); + editFind->setStatusTip(i18n("Search for a string")); + editFindNext = KStandardAction::findNext(this, &KDiff3App::slotEditFindNext, ac); + editFindNext->setStatusTip(i18n("Search again for the string")); + /* FIXME figure out how to implement this action + viewToolBar = KStandardAction::showToolbar(this, &KDiff3App::slotViewToolBar, ac); + viewToolBar->setStatusTip(i18n("Enables/disables the toolbar")); */ + viewStatusBar = KStandardAction::showStatusbar(this, &KDiff3App::slotViewStatusBar, ac); + viewStatusBar->setStatusTip(i18n("Enables/disables the statusbar")); + KStandardAction::keyBindings(this, &KDiff3App::slotConfigureKeys, ac); + QAction* pAction = KStandardAction::preferences(this, &KDiff3App::slotConfigure, ac); + if(isPart()) + pAction->setText(i18n("Configure KDiff3...")); + +#include "xpm/autoadvance.xpm" +#include "xpm/currentpos.xpm" +#include "xpm/down1arrow.xpm" +#include "xpm/down2arrow.xpm" +#include "xpm/downend.xpm" +#include "xpm/iconA.xpm" +#include "xpm/iconB.xpm" +#include "xpm/iconC.xpm" +#include "xpm/nextunsolved.xpm" +#include "xpm/prevunsolved.xpm" +#include "xpm/showlinenumbers.xpm" +#include "xpm/showwhitespace.xpm" +#include "xpm/showwhitespacechars.xpm" +#include "xpm/up1arrow.xpm" +#include "xpm/up2arrow.xpm" +#include "xpm/upend.xpm" + + mGoCurrent = GuiUtils::createAction(i18n("Go to Current Delta"), QIcon(QPixmap(currentpos)), i18n("Current\nDelta"), QKeySequence(Qt::CTRL + Qt::Key_Space), this, &KDiff3App::slotGoCurrent, ac, "go_current"); + + mGoTop = GuiUtils::createAction(i18n("Go to First Delta"), QIcon(QPixmap(upend)), i18n("First\nDelta"), this, &KDiff3App::slotGoTop, ac, "go_top"); + + mGoBottom = GuiUtils::createAction(i18n("Go to Last Delta"), QIcon(QPixmap(downend)), i18n("Last\nDelta"), this, &KDiff3App::slotGoBottom, ac, "go_bottom"); + + QString omitsWhitespace = ".\n" + i18n("(Skips white space differences when \"Show White Space\" is disabled.)"); + QString includeWhitespace = ".\n" + i18n("(Does not skip white space differences even when \"Show White Space\" is disabled.)"); + mGoPrevDelta = GuiUtils::createAction(i18n("Go to Previous Delta"), QIcon(QPixmap(up1arrow)), i18n("Prev\nDelta"), QKeySequence(Qt::CTRL + Qt::Key_Up), this, &KDiff3App::slotGoPrevDelta, ac, "go_prev_delta"); + mGoPrevDelta->setToolTip(mGoPrevDelta->text() + omitsWhitespace); + mGoNextDelta = GuiUtils::createAction(i18n("Go to Next Delta"), QIcon(QPixmap(down1arrow)), i18n("Next\nDelta"), QKeySequence(Qt::CTRL + Qt::Key_Down), this, &KDiff3App::slotGoNextDelta, ac, "go_next_delta"); + mGoNextDelta->setToolTip(mGoNextDelta->text() + omitsWhitespace); + mGoPrevConflict = GuiUtils::createAction(i18n("Go to Previous Conflict"), QIcon(QPixmap(up2arrow)), i18n("Prev\nConflict"), QKeySequence(Qt::CTRL + Qt::Key_PageUp), this, &KDiff3App::slotGoPrevConflict, ac, "go_prev_conflict"); + mGoPrevConflict->setToolTip(mGoPrevConflict->text() + omitsWhitespace); + mGoNextConflict = GuiUtils::createAction(i18n("Go to Next Conflict"), QIcon(QPixmap(down2arrow)), i18n("Next\nConflict"), QKeySequence(Qt::CTRL + Qt::Key_PageDown), this, &KDiff3App::slotGoNextConflict, ac, "go_next_conflict"); + mGoNextConflict->setToolTip(mGoNextConflict->text() + omitsWhitespace); + mGoPrevUnsolvedConflict = GuiUtils::createAction(i18n("Go to Previous Unsolved Conflict"), QIcon(QPixmap(prevunsolved)), i18n("Prev\nUnsolved"), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_PageUp), this, &KDiff3App::slotGoPrevUnsolvedConflict, ac, "go_prev_unsolved_conflict"); + mGoPrevUnsolvedConflict->setToolTip(mGoPrevUnsolvedConflict->text() + includeWhitespace); + mGoNextUnsolvedConflict = GuiUtils::createAction(i18n("Go to Next Unsolved Conflict"), QIcon(QPixmap(nextunsolved)), i18n("Next\nUnsolved"), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_PageDown), this, &KDiff3App::slotGoNextUnsolvedConflict, ac, "go_next_unsolved_conflict"); + mGoNextUnsolvedConflict->setToolTip(mGoNextUnsolvedConflict->text() + includeWhitespace); + chooseA = GuiUtils::createAction(i18n("Select Line(s) From A"), QIcon(QPixmap(iconA)), i18n("Choose\nA"), QKeySequence(Qt::CTRL + Qt::Key_1), this, &KDiff3App::slotChooseA, ac, "merge_choose_a"); + chooseB = GuiUtils::createAction(i18n("Select Line(s) From B"), QIcon(QPixmap(iconB)), i18n("Choose\nB"), QKeySequence(Qt::CTRL + Qt::Key_2), this, &KDiff3App::slotChooseB, ac, "merge_choose_b"); + chooseC = GuiUtils::createAction(i18n("Select Line(s) From C"), QIcon(QPixmap(iconC)), i18n("Choose\nC"), QKeySequence(Qt::CTRL + Qt::Key_3), this, &KDiff3App::slotChooseC, ac, "merge_choose_c"); + autoAdvance = GuiUtils::createAction(i18n("Automatically Go to Next Unsolved Conflict After Source Selection"), QIcon(QPixmap(autoadvance)), i18n("Auto\nNext"), this, &KDiff3App::slotAutoAdvanceToggled, ac, "merge_autoadvance"); + + showWhiteSpaceCharacters = GuiUtils::createAction(i18n("Show Space && Tabulator Characters"), QIcon(QPixmap(showwhitespacechars)), i18n("White\nCharacters"), this, &KDiff3App::slotShowWhiteSpaceToggled, ac, "diff_show_whitespace_characters"); + showWhiteSpace = GuiUtils::createAction(i18n("Show White Space"), QIcon(QPixmap(showwhitespace)), i18n("White\nDeltas"), this, &KDiff3App::slotShowWhiteSpaceToggled, ac, "diff_show_whitespace"); + + showLineNumbers = GuiUtils::createAction(i18n("Show Line Numbers"), QIcon(QPixmap(showlinenumbers)), i18n("Line\nNumbers"), this, &KDiff3App::slotShowLineNumbersToggled, ac, "diff_showlinenumbers"); + + mAutoSolve = GuiUtils::createAction(i18n("Automatically Solve Simple Conflicts"), this, &KDiff3App::slotAutoSolve, ac, "merge_autosolve"); + mUnsolve = GuiUtils::createAction(i18n("Set Deltas to Conflicts"), this, &KDiff3App::slotUnsolve, ac, "merge_autounsolve"); + mergeRegExp = GuiUtils::createAction(i18n("Run Regular Expression Auto Merge"), this, &KDiff3App::slotRegExpAutoMerge, ac, "merge_regexp_automerge"); + mMergeHistory = GuiUtils::createAction(i18n("Automatically Solve History Conflicts"), this, &KDiff3App::slotMergeHistory, ac, "merge_versioncontrol_history"); + splitDiff = GuiUtils::createAction(i18n("Split Diff At Selection"), this, &KDiff3App::slotSplitDiff, ac, "merge_splitdiff"); + joinDiffs = GuiUtils::createAction(i18n("Join Selected Diffs"), this, &KDiff3App::slotJoinDiffs, ac, "merge_joindiffs"); + + showWindowA = GuiUtils::createAction(i18n("Show Window A"), this, &KDiff3App::slotShowWindowAToggled, ac, "win_show_a"); + showWindowB = GuiUtils::createAction(i18n("Show Window B"), this, &KDiff3App::slotShowWindowBToggled, ac, "win_show_b"); + showWindowC = GuiUtils::createAction(i18n("Show Window C"), this, &KDiff3App::slotShowWindowCToggled, ac, "win_show_c"); + + overviewModeNormal = GuiUtils::createAction(i18n("Normal Overview"), this, &KDiff3App::slotOverviewNormal, ac, "diff_overview_normal"); + overviewModeAB = GuiUtils::createAction(i18n("A vs. B Overview"), this, &KDiff3App::slotOverviewAB, ac, "diff_overview_ab"); + overviewModeAC = GuiUtils::createAction(i18n("A vs. C Overview"), this, &KDiff3App::slotOverviewAC, ac, "diff_overview_ac"); + overviewModeBC = GuiUtils::createAction(i18n("B vs. C Overview"), this, &KDiff3App::slotOverviewBC, ac, "diff_overview_bc"); + wordWrap = GuiUtils::createAction(i18n("Word Wrap Diff Windows"), this, &KDiff3App::slotWordWrapToggled, ac, "diff_wordwrap"); + addManualDiffHelp = GuiUtils::createAction(i18n("Add Manual Diff Alignment"), QKeySequence(Qt::CTRL + Qt::Key_Y), this, &KDiff3App::slotAddManualDiffHelp, ac, "diff_add_manual_diff_help"); + clearManualDiffHelpList = GuiUtils::createAction(i18n("Clear All Manual Diff Alignments"), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Y), this, &KDiff3App::slotClearManualDiffHelpList, ac, "diff_clear_manual_diff_help_list"); + + winFocusNext = GuiUtils::createAction(i18n("Focus Next Window"), QKeySequence(Qt::ALT + Qt::Key_Right), this, &KDiff3App::slotWinFocusNext, ac, "win_focus_next"); + winFocusPrev = GuiUtils::createAction(i18n("Focus Prev Window"), QKeySequence(Qt::ALT + Qt::Key_Left), this, &KDiff3App::slotWinFocusPrev, ac, "win_focus_prev"); + winToggleSplitOrientation = GuiUtils::createAction(i18n("Toggle Split Orientation"), this, &KDiff3App::slotWinToggleSplitterOrientation, ac, "win_toggle_split_orientation"); + + dirShowBoth = GuiUtils::createAction(i18n("Folder && Text Split Screen View"), this, &KDiff3App::slotDirShowBoth, ac, "win_dir_show_both"); + dirShowBoth->setChecked(true); + dirViewToggle = GuiUtils::createAction(i18n("Toggle Between Folder && Text View"), this, &KDiff3App::slotDirViewToggle, ac, "win_dir_view_toggle"); + + m_pMergeEditorPopupMenu = new QMenu(this); + /* chooseA->plug( m_pMergeEditorPopupMenu ); + chooseB->plug( m_pMergeEditorPopupMenu ); + chooseC->plug( m_pMergeEditorPopupMenu );*/ + m_pMergeEditorPopupMenu->addAction(chooseA); + m_pMergeEditorPopupMenu->addAction(chooseB); + m_pMergeEditorPopupMenu->addAction(chooseC); +} + +void KDiff3App::showPopupMenu(const QPoint& point) +{ + m_pMergeEditorPopupMenu->popup(point); +} + +void KDiff3App::initStatusBar() +{ + /////////////////////////////////////////////////////////////////// + // STATUSBAR + if(statusBar() != nullptr) + statusBar()->showMessage(i18n("Ready.")); +} + +void KDiff3App::saveOptions(KSharedConfigPtr config) +{ + if(!m_bAutoMode) + { + if(!isPart()) + { + m_pOptions->setFullScreen(m_pKDiff3Shell->isFullScreen()); + m_pOptions->setMaximised(m_pKDiff3Shell->isMaximized()); + if(!m_pKDiff3Shell->isFullScreen() && !m_pKDiff3Shell->isMaximized() && m_pKDiff3Shell->isVisible()) + { + m_pOptions->setGeometry(m_pKDiff3Shell->size()); + m_pOptions->setPosition(m_pKDiff3Shell->pos()); + } + } + + m_pOptionDialog->saveOptions(std::move(config)); + } +} + +bool KDiff3App::queryClose() +{ + saveOptions(KSharedConfig::openConfig()); + + if(m_bOutputModified) + { + int result = KMessageBox::warningYesNoCancel(this, + i18n("The merge result has not been saved."), + i18n("Warning"), + KGuiItem(i18n("Save && Quit")), + KGuiItem(i18n("Quit Without Saving"))); + if(result == KMessageBox::Cancel) + return false; + else if(result == KMessageBox::Yes) + { + slotFileSave(); + if(m_bOutputModified) + { + KMessageBox::sorry(this, i18n("Saving the merge result failed."), i18n("Warning")); + return false; + } + } + } + + m_bOutputModified = false; + + if(m_pDirectoryMergeWindow->isDirectoryMergeInProgress()) + { + int result = KMessageBox::warningYesNo(this, + i18n("You are currently doing a folder merge. Are you sure, you want to abort?"), + i18n("Warning"), + KStandardGuiItem::quit(), + KStandardGuiItem::cont() /* i18n("Continue Merging") */); + if(result != KMessageBox::Yes) + return false; + } + + return true; +} + +///////////////////////////////////////////////////////////////////// +// SLOT IMPLEMENTATION +///////////////////////////////////////////////////////////////////// + +void KDiff3App::slotFileSave() +{ + if(m_bDefaultFilename) + { + slotFileSaveAs(); + } + else + { + slotStatusMsg(i18n("Saving file...")); + + bool bSuccess = m_pMergeResultWindow->saveDocument(m_outputFilename, m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle()); + if(bSuccess) + { + m_bFileSaved = true; + m_bOutputModified = false; + if(m_bDirCompare) + m_pDirectoryMergeWindow->mergeResultSaved(m_outputFilename); + } + + slotStatusMsg(i18n("Ready.")); + } +} + +void KDiff3App::slotFileSaveAs() +{ + slotStatusMsg(i18n("Saving file with a new filename...")); + + QString s = QFileDialog::getSaveFileUrl(this, i18n("Save As..."), QUrl::fromLocalFile(QDir::currentPath())).url(QUrl::PreferLocalFile); + if(!s.isEmpty()) { + m_outputFilename = s; + m_pMergeResultWindowTitle->setFileName(m_outputFilename); + bool bSuccess = m_pMergeResultWindow->saveDocument(m_outputFilename, m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle()); + if(bSuccess) + { + m_bOutputModified = false; + if(m_bDirCompare) + m_pDirectoryMergeWindow->mergeResultSaved(m_outputFilename); + } + //setWindowTitle(url.fileName(),doc->isModified()); + + m_bDefaultFilename = false; + } + + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotFilePrint() +{ + if(m_pDiffTextWindow1 == nullptr || m_pDiffTextWindow2 == nullptr) + return; +#ifdef QT_NO_PRINTER + slotStatusMsg(i18n("Printing not implemented.")); +#else + QPrinter printer; + QPointer printDialog=QPointer(new QPrintDialog(&printer, this)); + + LineRef firstSelectionD3LIdx; + LineRef lastSelectionD3LIdx; + + m_pDiffTextWindow1->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); + + if(!firstSelectionD3LIdx.isValid()) { + m_pDiffTextWindow2->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); + } + if(!firstSelectionD3LIdx.isValid() && m_pDiffTextWindow3 != nullptr) { + m_pDiffTextWindow3->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); + } + + printDialog->setOption(QPrintDialog::PrintCurrentPage); + + if(firstSelectionD3LIdx.isValid()) { + printDialog->setOption(QPrintDialog::PrintSelection); + printDialog->setPrintRange(QAbstractPrintDialog::Selection); + } + + if(!firstSelectionD3LIdx.isValid()) + printDialog->setPrintRange(QAbstractPrintDialog::AllPages); + //printDialog.setMinMax(0,0); + printDialog->setFromTo(0, 0); + + int currentFirstLine = m_pDiffTextWindow1->getFirstLine(); + int currentFirstD3LIdx = m_pDiffTextWindow1->convertLineToDiff3LineIdx(currentFirstLine); + + // do some printer initialization + printer.setFullPage(false); + + // initialize the printer using the print dialog + if(printDialog->exec() == QDialog::Accepted) + { + slotStatusMsg(i18n("Printing...")); + // create a painter to paint on the printer object + RLPainter painter(&printer, m_pOptions->m_bRightToLeftLanguage, width(), Utils::getHorizontalAdvance(fontMetrics(),'W')); + + QPaintDevice* pPaintDevice = painter.device(); + int dpiy = pPaintDevice->logicalDpiY(); + int columnDistance = qRound((0.5 / 2.54) * dpiy); // 0.5 cm between the columns + + int columns = m_bTripleDiff ? 3 : 2; + int columnWidth = (pPaintDevice->width() - (columns - 1) * columnDistance) / columns; + + QFont f = m_pOptions->m_font; + f.setPointSizeF(f.pointSizeF() - 1); // Print with slightly smaller font. + painter.setFont(f); + QFontMetrics fm = painter.fontMetrics(); + + QString topLineText = i18n("Top line"); + + //int headerWidth = fm.width( m_sd1->getAliasName() + ", "+topLineText+": 01234567" ); + int headerLines = Utils::getHorizontalAdvance(fm, m_sd1->getAliasName() + ", " + topLineText + ": 01234567") / columnWidth + 1; + + int headerMargin = headerLines * fm.height() + 3; // Text + one horizontal line + int footerMargin = fm.height() + 3; + + QRect view(0, headerMargin, pPaintDevice->width(), pPaintDevice->height() - (headerMargin + footerMargin)); + QRect view1(0 * (columnWidth + columnDistance), view.top(), columnWidth, view.height()); + QRect view2(1 * (columnWidth + columnDistance), view.top(), columnWidth, view.height()); + QRect view3(2 * (columnWidth + columnDistance), view.top(), columnWidth, view.height()); + + int linesPerPage = view.height() / fm.lineSpacing(); + + m_pEventLoopForPrinting = QPointer(new QEventLoop()); + if(m_pOptions->wordWrapOn()) + { + // For printing the lines are wrapped differently (this invalidates the first line) + recalcWordWrap(columnWidth); + m_pEventLoopForPrinting->exec(); + } + + LineCount totalNofLines = std::max(m_pDiffTextWindow1->getNofLines(), m_pDiffTextWindow2->getNofLines()); + + if(m_bTripleDiff && m_pDiffTextWindow3 != nullptr) + totalNofLines = std::max(totalNofLines, m_pDiffTextWindow3->getNofLines()); + + QList pageList; // = printer.pageList(); + + bool bPrintCurrentPage = false; + bool bFirstPrintedPage = false; + + bool bPrintSelection = false; + int totalNofPages = (totalNofLines + linesPerPage - 1) / linesPerPage; + LineRef line; + LineRef selectionEndLine; + + if(printer.printRange() == QPrinter::AllPages) { + pageList.clear(); + for(int i = 0; i < totalNofPages; ++i) + { + pageList.push_back(i + 1); + } + } + else if(printer.printRange() == QPrinter::PageRange) + { + pageList.clear(); + + int from = printer.fromPage(), to = printer.toPage(); + /* + Per Qt docs QPrinter::fromPage and QPrinter::toPage return 0 to indicate they are not set. + Account for this and other invalid settings the user may try. + */ + if(from == 0) from = 1; + if(from > totalNofPages) from = totalNofPages; + if(to == 0 || to > totalNofPages) to = totalNofPages; + if(from > to) to = from; + + for(int i = from; i <= to; ++i) + { + pageList.push_back(i); + } + } + else if(printer.printRange() == QPrinter::CurrentPage) + { + bPrintCurrentPage = true; + totalNofPages = 1; + } + else if(printer.printRange() == QPrinter::Selection) + { + bPrintSelection = true; + if(firstSelectionD3LIdx.isValid()) + { + line = m_pDiffTextWindow1->convertDiff3LineIdxToLine(firstSelectionD3LIdx); + selectionEndLine = m_pDiffTextWindow1->convertDiff3LineIdxToLine(lastSelectionD3LIdx + 1); + totalNofPages = (selectionEndLine - line + linesPerPage - 1) / linesPerPage; + } + } + + int page = 1; + + ProgressProxy pp; + pp.setMaxNofSteps(totalNofPages); + QList::iterator pageListIt = pageList.begin(); + for(;;) { + pp.setInformation(i18n("Printing page %1 of %2", page, totalNofPages), false); + pp.setCurrent(page - 1); + if(pp.wasCancelled()) + { + printer.abort(); + break; + } + if(!bPrintSelection) { + if(pageListIt == pageList.end()) + break; + page = *pageListIt; + line = (page - 1) * linesPerPage; + + if(bPrintCurrentPage) + { + // Detect the first visible line in the window. + line = m_pDiffTextWindow1->convertDiff3LineIdxToLine(currentFirstD3LIdx); + } + } + else + { + if(line >= selectionEndLine) { + break; + } + else + { + if(selectionEndLine - line < linesPerPage) + linesPerPage = selectionEndLine - line; + } + } + if(line.isValid() && line < totalNofLines) + { + if(bFirstPrintedPage) + printer.newPage(); + + painter.setClipping(true); + + painter.setPen(m_pOptions->m_colorA); + QString headerText1 = m_sd1->getAliasName() + ", " + topLineText + ": " + QString::number(m_pDiffTextWindow1->calcTopLineInFile(line) + 1); + m_pDiffTextWindow1->printWindow(painter, view1, headerText1, line, linesPerPage, m_pOptions->m_fgColor); + + painter.setPen(m_pOptions->m_colorB); + QString headerText2 = m_sd2->getAliasName() + ", " + topLineText + ": " + QString::number(m_pDiffTextWindow2->calcTopLineInFile(line) + 1); + m_pDiffTextWindow2->printWindow(painter, view2, headerText2, line, linesPerPage, m_pOptions->m_fgColor); + + if(m_bTripleDiff && m_pDiffTextWindow3 != nullptr) + { + painter.setPen(m_pOptions->m_colorC); + QString headerText3 = m_sd3->getAliasName() + ", " + topLineText + ": " + QString::number(m_pDiffTextWindow3->calcTopLineInFile(line) + 1); + m_pDiffTextWindow3->printWindow(painter, view3, headerText3, line, linesPerPage, m_pOptions->m_fgColor); + } + painter.setClipping(false); + + painter.setPen(m_pOptions->m_fgColor); + painter.drawLine(0, view.bottom() + 3, view.width(), view.bottom() + 3); + QString s = bPrintCurrentPage ? QString("") + : QString::number(page) + '/' + QString::number(totalNofPages); + if(bPrintSelection) s += i18n(" (Selection)"); + painter.drawText((view.right() - Utils::getHorizontalAdvance(painter.fontMetrics(), s)) / 2, + view.bottom() + painter.fontMetrics().ascent() + 5, s); + + bFirstPrintedPage = true; + if(bPrintCurrentPage) break; + } + + if(bPrintSelection) + { + line += linesPerPage; + ++page; + } + else + { + ++pageListIt; + } + } + + painter.end(); + + if(m_pOptions->wordWrapOn()) + { + recalcWordWrap(); + m_pEventLoopForPrinting->exec(); + DiffTextWindow::mVScrollBar->setValue(m_pDiffTextWindow1->convertDiff3LineIdxToLine(currentFirstD3LIdx)); + } + m_pEventLoopForPrinting.clear(); + + slotStatusMsg(i18n("Printing completed.")); + } + else + { + slotStatusMsg(i18n("Printing aborted.")); + } +#endif +} + +void KDiff3App::slotFileQuit() +{ + slotStatusMsg(i18n("Exiting...")); + + if(!queryClose()) + return; // Don't quit + + QApplication::exit(isFileSaved() || isDirComparison() ? 0 : 1); +} + +void KDiff3App::slotViewToolBar() +{ + Q_ASSERT(viewToolBar != nullptr); + slotStatusMsg(i18n("Toggling toolbar...")); + m_pOptions->setToolbarState(viewToolBar->isChecked()); + /////////////////////////////////////////////////////////////////// + // turn Toolbar on or off + if(toolBar(MAIN_TOOLBAR_NAME) != nullptr) + { + if(!m_pOptions->isToolBarVisable()) + { + toolBar(MAIN_TOOLBAR_NAME)->hide(); + } + else + { + toolBar(MAIN_TOOLBAR_NAME)->show(); + } + } + + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotViewStatusBar() +{ + slotStatusMsg(i18n("Toggle the statusbar...")); + m_pOptions->setStatusBarState(viewStatusBar->isChecked()); + /////////////////////////////////////////////////////////////////// + //turn Statusbar on or off + if(statusBar() != nullptr) + { + if(!viewStatusBar->isChecked()) + { + statusBar()->hide(); + } + else + { + statusBar()->show(); + } + } + + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotStatusMsg(const QString& text) +{ + /////////////////////////////////////////////////////////////////// + // change status message permanently + if(statusBar() != nullptr) + { + statusBar()->clearMessage(); + statusBar()->showMessage(text); + } +} + +//#include "kdiff3.moc" diff --git a/src/kdiff3.h b/src/kdiff3.h new file mode 100644 index 0000000..68ef215 --- /dev/null +++ b/src/kdiff3.h @@ -0,0 +1,475 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KDIFF3_H +#define KDIFF3_H + +#include "diff.h" +#include "defmac.h" +#include "combiners.h" + +#include + +// include files for Qt +#include +#include +#include +#include +#include +#include + +// include files for KDE +#include +#include +#include +#include +#include +// forward declaration of the KDiff3 classes +class OptionDialog; + +class Overview; +enum class e_OverviewMode; +class FindDialog; +//class ManualDiffHelpDialog; +class DiffTextWindow; +class DiffTextWindowFrame; +class MergeResultWindow; +class WindowTitleWidget; + +class QStatusBar; +class QMenu; + +class KToggleAction; +class KToolBar; +class KActionCollection; + +namespace KParts { +class MainWindow; +} + +class KDiff3Part; +class DirectoryMergeWindow; +class DirectoryMergeInfo; + +class ReversibleScrollBar : public QScrollBar +{ + Q_OBJECT + bool* m_pbRightToLeftLanguage; + int m_realVal; + + public: + ReversibleScrollBar(Qt::Orientation o, bool* pbRightToLeftLanguage) + : QScrollBar(o) + { + m_pbRightToLeftLanguage = pbRightToLeftLanguage; + m_realVal = 0; + chk_connect(this, &ReversibleScrollBar::valueChanged, this, &ReversibleScrollBar::slotValueChanged); + } + void setAgain() { setValue(m_realVal); } + + void setValue(int i) + { + if(m_pbRightToLeftLanguage != nullptr && *m_pbRightToLeftLanguage) + QScrollBar::setValue(maximum() - (i - minimum())); + else + QScrollBar::setValue(i); + } + + int value() const + { + return m_realVal; + } + public Q_SLOTS: + void slotValueChanged(int i) + { + m_realVal = i; + if(m_pbRightToLeftLanguage != nullptr && *m_pbRightToLeftLanguage) + m_realVal = maximum() - (i - minimum()); + Q_EMIT valueChanged2(m_realVal); + } + + Q_SIGNALS: + void valueChanged2(int); +}; + +/* + InitFlag +*/ + +enum class InitFlag +{ + loadFiles = 1, + useCurrentEncoding = 2, + autoSolve = 4, + initGUI = 8, + defaultFlags = loadFiles | autoSolve | initGUI +}; + +Q_DECLARE_FLAGS(InitFlags, InitFlag); +Q_DECLARE_OPERATORS_FOR_FLAGS(InitFlags); + +class KDiff3App : public QSplitter +{ + Q_OBJECT + + public: + /** constructor of KDiff3App, calls all init functions to create the application. + */ + KDiff3App(QWidget* parent, const QString& name, KDiff3Part* pKDiff3Part); + ~KDiff3App() override; + + bool isPart() const; + + /** initializes the KActions of the application */ + void initActions(KActionCollection*); + + /** save general Options like all bar positions and status as well as the geometry + and the recent file list to the configuration file */ + void saveOptions(KSharedConfigPtr); + + /** read general Options again and initialize all variables like the recent file list */ + void readOptions(KSharedConfigPtr); + + // Finish initialisation (virtual, so that it can be called from the shell too.) + virtual void completeInit(const QString& fn1 = QString(), const QString& fn2 = QString(), const QString& fn3 = QString()); + + /** queryClose is called by KMainWindow on each closeEvent of a window. Against the + * default implementation (only returns true), this calles saveModified() on the document object to ask if the document shall + * be saved if Modified; on cancel the closeEvent is rejected. + * @see KMainWindow#queryClose + * @see KMainWindow#closeEvent + */ + virtual bool queryClose(); + virtual bool isFileSaved() const; + virtual bool isDirComparison() const; + + static bool isTripleDiff() { return m_bTripleDiff; } + + KActionCollection* actionCollection() const; + + static boost::signals2::signal> getSelection; + static boost::signals2::signal allowCopy; + static boost::signals2::signal allowCut; + static boost::signals2::signal shouldContinue; + static boost::signals2::signal encodingChanged; + + Q_SIGNALS: + void createNewInstance(const QString& fn1, const QString& fn2, const QString& fn3); + + void sigRecalcWordWrap(); + + void finishDrop(); + + void showWhiteSpaceToggled(); + void showLineNumbersToggled(); + void doRefresh(); + + void autoSolve(); + void unsolve(); + void mergeHistory(); + void regExpAutoMerge(); + + void goCurrent(); + void goTop(); + void goBottom(); + void goPrevUnsolvedConflict(); + + void goNextUnsolvedConflict(); + void goPrevConflict(); + + void goNextConflict(); + void goPrevDelta(); + void goNextDelta(); + + void cut(); + + void copy(); + + void selectAll(); + + void changeOverViewMode(e_OverviewMode); +public Q_SLOTS: + + /** open a file and load it into the document*/ + void slotFileOpen(); + void slotFileOpen2(QStringList &errors, const QString& fn1, const QString& fn2, const QString& fn3, const QString& ofn, + const QString& an1, const QString& an2, const QString& an3, TotalDiffStatus* pTotalDiffStatus); + + void slotFileNameChanged(const QString& fileName, e_SrcSelector winIdx); + + /** save a document */ + void slotFileSave(); + /** save a document by a new filename*/ + void slotFileSaveAs(); + + void slotFilePrint(); + + /** closes all open windows by calling close() on each memberList item until the list is empty, then quits the application. + * If queryClose() returns false because the user canceled the saveModified() dialog, the closing breaks. + */ + void slotFileQuit(); + /** put the marked text/object into the clipboard and remove + * it from the document + */ + void slotEditCut(); + /** put the marked text/object into the clipboard + */ + void slotEditCopy(); + /** paste the clipboard into the document + */ + void slotEditPaste(); + /** toggles the toolbar + */ + void slotViewToolBar(); + /** toggles the statusbar + */ + void slotViewStatusBar(); + /** changes the statusbar contents for the standard label permanently, used to indicate current actions. + * @param text the text that is displayed in the statusbar + */ + void slotStatusMsg(const QString& text); + + void resizeDiffTextWindowHeight(int newHeight); + void slotRecalcWordWrap(); + void postRecalcWordWrap(); + void slotFinishRecalcWordWrap(int visibleTextWidth); + + void showPopupMenu(const QPoint& point); + + void scrollDiffTextWindow(int deltaX, int deltaY); + void scrollMergeResultWindow(int deltaX, int deltaY); + void sourceMask(int srcMask, int enabledMask); + + void slotDirShowBoth(); + void slotDirViewToggle(); + + void slotUpdateAvailabilities(); + void slotEditSelectAll(); + void slotEditFind(); + void slotEditFindNext(); + void slotGoCurrent(); + void slotGoTop(); + void slotGoBottom(); + void slotGoPrevUnsolvedConflict(); + void slotGoNextUnsolvedConflict(); + void slotGoPrevConflict(); + void slotGoNextConflict(); + void slotGoPrevDelta(); + void slotGoNextDelta(); + void slotChooseA(); + void slotChooseB(); + void slotChooseC(); + void slotAutoSolve(); + void slotUnsolve(); + void slotMergeHistory(); + void slotRegExpAutoMerge(); + void slotConfigure(); + void slotConfigureKeys(); + void slotRefresh(); + void slotSelectionEnd(); + void slotSelectionStart(); + void slotClipboardChanged(); + void slotOutputModified(bool); + void slotFinishMainInit(); + void slotMergeCurrentFile(); + void slotReload(); + void slotShowWhiteSpaceToggled(); + void slotShowLineNumbersToggled(); + void slotAutoAdvanceToggled(); + void slotWordWrapToggled(); + void slotShowWindowAToggled(); + void slotShowWindowBToggled(); + void slotShowWindowCToggled(); + void slotWinFocusNext(); + void slotWinFocusPrev(); + void slotWinToggleSplitterOrientation(); + void slotOverviewNormal(); + void slotOverviewAB(); + void slotOverviewAC(); + void slotOverviewBC(); + void slotSplitDiff(); + void slotJoinDiffs(); + void slotAddManualDiffHelp(); + void slotClearManualDiffHelpList(); + void slotNoRelevantChangesDetected(); + void slotEncodingChanged(QTextCodec*); + + void slotFinishDrop(); + + void setHScrollBarRange(); + + void slotFocusChanged(QWidget *old, QWidget *now); + + protected: + void setLockPainting(bool bLock); + void createCaption(); + void initDirectoryMergeActions(); + /** sets up the statusbar for the main window by initialzing a statuslabel. */ + void initStatusBar(); + + /** creates the centerwidget of the KMainWindow instance and sets it as the view */ + void initView(); + + private: + void mainInit(TotalDiffStatus* pTotalDiffStatus, const InitFlags inFlags = InitFlag::defaultFlags); + void mainWindowEnable(bool bEnable); + void wheelEvent(QWheelEvent* pWheelEvent) override; + void keyPressEvent(QKeyEvent* event) override; + void resizeEvent(QResizeEvent*) override; + + bool doDirectoryCompare(const bool bCreateNewInstance); + void improveFilenames(); + + bool canContinue(); + + void choose(e_SrcSelector choice); + + QStatusBar* statusBar() const; + KToolBar* toolBar(const QLatin1String &toolBarId) const; + void recalcWordWrap(int visibleTextWidthForPrinting = -1); + + bool canCut(); + bool canCopy(); + + bool mInitCalled = false; + /** the configuration object of the application */ + //KConfig *config; + + // QAction pointers to enable/disable actions + QPointer fileOpen; + QPointer fileSave; + QPointer fileSaveAs; + QPointer filePrint; + QPointer fileQuit; + QPointer fileReload; + QPointer editCut; + QPointer editCopy; + QPointer editPaste; + QPointer editSelectAll; + KToggleAction* viewToolBar = nullptr; + KToggleAction* viewStatusBar; + + //////////////////////////////////////////////////////////////////////// + // Special KDiff3 specific stuff starts here + QPointer editFind; + QPointer editFindNext; + + QPointer mGoCurrent; + QPointer mGoTop; + QPointer mGoBottom; + QPointer mGoPrevUnsolvedConflict; + QPointer mGoNextUnsolvedConflict; + QPointer mGoPrevConflict; + QPointer mGoNextConflict; + QPointer mGoPrevDelta; + QPointer mGoNextDelta; + KToggleAction* chooseA; + KToggleAction* chooseB; + KToggleAction* chooseC; + KToggleAction* autoAdvance; + KToggleAction* wordWrap; + QPointer splitDiff; + QPointer joinDiffs; + QPointer addManualDiffHelp; + QPointer clearManualDiffHelpList; + KToggleAction* showWhiteSpaceCharacters; + KToggleAction* showWhiteSpace; + KToggleAction* showLineNumbers; + QPointer mAutoSolve; + QPointer mUnsolve; + QPointer mMergeHistory; + QPointer mergeRegExp; + KToggleAction* showWindowA; + KToggleAction* showWindowB; + KToggleAction* showWindowC; + QPointer winFocusNext; + QPointer winFocusPrev; + QPointer winToggleSplitOrientation; + KToggleAction* dirShowBoth; + QPointer dirViewToggle; + KToggleAction* overviewModeNormal; + KToggleAction* overviewModeAB; + KToggleAction* overviewModeAC; + KToggleAction* overviewModeBC; + + QMenu* m_pMergeEditorPopupMenu; + + QSplitter* m_pMainSplitter = nullptr; + QWidget* m_pMainWidget = new QWidget();// Contains vertical splitter and horiz scrollbar + QWidget* m_pMergeWindowFrame = nullptr; + ReversibleScrollBar* m_pHScrollBar = nullptr; + + DiffTextWindow* m_pDiffTextWindow1 = nullptr; + DiffTextWindow* m_pDiffTextWindow2 = nullptr; + DiffTextWindow* m_pDiffTextWindow3 = nullptr; + DiffTextWindowFrame* m_pDiffTextWindowFrame1 = nullptr; + DiffTextWindowFrame* m_pDiffTextWindowFrame2 = nullptr; + DiffTextWindowFrame* m_pDiffTextWindowFrame3 = nullptr; + QSplitter* m_pDiffWindowSplitter = nullptr; + + MergeResultWindow* m_pMergeResultWindow = nullptr; + WindowTitleWidget* m_pMergeResultWindowTitle; + static bool m_bTripleDiff; + + QSplitter* m_pDirectoryMergeSplitter = nullptr; + DirectoryMergeWindow* m_pDirectoryMergeWindow = nullptr; + DirectoryMergeInfo* m_pDirectoryMergeInfo; + bool m_bDirCompare = false; + + Overview* m_pOverview = nullptr; + + QWidget* m_pCornerWidget = nullptr; + + TotalDiffStatus *m_totalDiffStatus = new TotalDiffStatus(); + + QSharedPointer m_sd1 = QSharedPointer::create(); + QSharedPointer m_sd2 = QSharedPointer::create(); + QSharedPointer m_sd3 = QSharedPointer::create(); + + QString m_outputFilename; + bool m_bDefaultFilename; + + DiffList m_diffList12; + DiffList m_diffList23; + DiffList m_diffList13; + + QSharedPointer m_diffBufferInfo = QSharedPointer::create(); + Diff3LineList m_diff3LineList; + Diff3LineVector m_diff3LineVector; + //ManualDiffHelpDialog* m_pManualDiffHelpDialog; + ManualDiffHelpList m_manualDiffHelpList; + + int m_neededLines; + int m_DTWHeight; + bool m_bOutputModified = false; + bool m_bFileSaved = false; + bool m_bTimerBlock = false; // Synchronization + + OptionDialog* m_pOptionDialog = nullptr; + QSharedPointer m_pOptions = nullptr; + FindDialog* m_pFindDialog = nullptr; + + bool m_bFinishMainInit = false; + bool m_bLoadFiles = false; + + KDiff3Part* m_pKDiff3Part = nullptr; + KParts::MainWindow* m_pKDiff3Shell = nullptr; + bool m_bAutoFlag = false; + bool m_bAutoMode = false; + bool m_bRecalcWordWrapPosted = false; + + int m_firstD3LIdx; // only needed during recalcWordWrap + QPointer m_pEventLoopForPrinting; + + /* + This list exists solely to auto disconnect boost signals. + */ + std::list connections; +}; + +#endif // KDIFF3_H diff --git a/src/kdiff3.ico b/src/kdiff3.ico new file mode 100644 index 0000000000000000000000000000000000000000..28756b5e9aaebb387fc13e6009e8b4626b191833 GIT binary patch literal 16958 zcmeI4+iz4=6o-dD!5jJp@xdVQ=A%9k@x=!dO!SGw_<%89V&Z>56qSIA(qI`%EfnaL zX}J}I-k{Uk8@(a5go-7EXebnX^oi~H&hQ&nk2CF@o;j_pgZa77ZSTFlwbx$zoH+*) ziB;Zzn>Ho9|F2D~do__*ok%3sdGZb=wtM1uzCZi7ZAg?<@?*11Fk~ zkJcP5cPmLS6&l~|?WfDyFPwHON*+_8{KJDiJNkROTomPeTmeQj$UWt4V`Rd*@)cb|R2p@SVSxt`vAOX`O({A0uYpA8T8I*Bo??b$weQKCKPpUSDP&pqjo<+j^<+n#l_ce%ei+rIj-CHW(DXqP+m!Fq=e?74+(hvgp~ z9&plQ{?$eC0sbg&d%@2Q>O&=dsXw^e)qb+k9roD8uk#Bn!}4Dlx$GqP%i30FV?c56 zee2UXV}RJ0D+VmT`hbgZPJO!39sTe{U)3JJe1IP+-(T+zytg5%{ob~(ZC)7=K2+P3 zVfcR;9sK<2*szntAI1my<^gL0?TrleXWJ*%#}2;Y>ONlQtLCE&KYoB;K7il)Aj^** za`4N3N|*|r|3Q9ocYXS;S*lCF>8yhJ@yMmkeherMD4Wvn_<79Q#T;kM#jY}{4;X*j zPgwq6ua3GX>g%uY=LX#PVxa3-&i07SID7!VwLc91_?4j@6XRnpir`m{E2JIr9)8gH zt5hz~Tp$l97tA#m;J5w4RA~GcgP(D={TI4ToY-7|AMgvgF^tG5w$HHq*C(#Jr4n{) zEr37W))d*6u>6zP#@$kj{KeQamQig9%m4f2gj-1p!#~iQuAI4h=iy2cOoisZt7Ahu zr|19m-)YunzlXgh3Q*ow_Tj)m^i z*6A~~N!f9+v(=?ishq;*xz4K%Tee>~hMdp5x-%<&+|On!9F=|+tGI1{5-1-_Vwfy zHsc3-4UDocSaKcgL4N&ysP=;O^6kgPulphF4923}_j0X+*B&E=Ro|Ad5yy3PHCZ*( z*EyuQfPe6(cy0aQHrK>4|65w>lfk~C?!#_>&#=$yoYS~#Udsph`qgzA{_kE}Xub>9 zQ~ry34`%Db#_w3-7rVGsib?E@ulQ|y_PVC#>SR^*w?)tYw!bLburWV^{9;yVnZz%4 zO4-0U>gf77_|JIpUyS=uCEa!|$!5#J|mdaM*q7C?C=%{c)b$sGLcDTugp^&Ki$?yFTHM zf%bzX{^EMpbNql<%l+|x)CTLE);~B{KkPj~X6;Y=>nZ&7!7ke6d@mX$c)U~>vG4kI_nAlgHAio_;G1@}E7|n7lQ0!-WwxYuxkkYaH{j(1rv% z+|*G$`HM2n@ej){cJbTTx8tvMe?ETr=BpPM|Dozk{=a=|$`vB!f9AdQqqyf?s)_yi zIP6&BN3qXWFHU~)Um@(|1IFCyUt{n2LUF9|htWzbmfh#~>MHj0#Z0mDALDQNS$mZK zRI;YSURjZRh{$C=x89?h@#o!_ox{z|O@96(2TJ5b_|zWPWX3-~Kfc0maqu($HU3)j zHAa-!hF^HjL#*?`oX0g8hD_eqING&bYdXhx-lr{m%kf-w6$98H{@VJAABwsDGyeJb z@d>dkZc1!rjg;-!Zv~syFYLGcaIkONW1seDL-$a&q%AuZ#pdT(%JO56;-37(y{O`p zQrz~K-G;;RH#ar;^@)A_!Q8Re!%Ca>nBB&n#pJj1fWED`cUA5S<~_x)=Dye-Um$>qDa z=D*?h--*!AU|V@4@tzZA#Jgg?F^D3bA;iz`KiIs`=iOkvAb(5iRyVbCjjx-#p3iRU z80C$xGMfByjguyJtaVaH;}+ju?x$1ft*)%~xySOpwc%S6D}8^J@7o)`DIxxuo8+p+ z;)iu1K7gNRB;K*{ZOJTtd=cQc-`?mOH2eJ#{IJtrjQsxmC+83KR7Dc8s$9bT5OW}k zCdNmz?Zw7_@2;C!28x6K-1*f0`!o04auBu_d;ZhrgZndXIVdjvzdZispg8#XP5tK0 z$?@eNY%O;DCx6_%eL1O^{K5O7(thdhiIrlY6a%FgSpG5KLjL(X^A8EE`LC63JBF=t K|NAoJc>V)P(4QCp literal 0 HcmV?d00001 diff --git a/src/kdiff3_part.cpp b/src/kdiff3_part.cpp new file mode 100644 index 0000000..9de1a8b --- /dev/null +++ b/src/kdiff3_part.cpp @@ -0,0 +1,165 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "kdiff3_part.h" + +#include "fileaccess.h" +#include "kdiff3.h" +#include "Logging.h" + +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +KAboutData KDiff3Part::createAboutData() +{ + QString appVersion = QString(KDIFF3_VERSION_STRING); + if(sizeof(void*) == 8) + appVersion += " (64 bit)"; + else if(sizeof(void*) == 4) + appVersion += " (32 bit)"; + + KAboutData aboutData(QLatin1String("kdiff3part"), i18n("KDiff3 Part"), + appVersion, i18n("A KPart to display SVG images"), + KAboutLicense::GPL_V2, + i18n("Copyright 2007, Aurélien Gâteau ")); + aboutData.addAuthor(i18n("Joachim Eibl"), QString(), QString("joachim.eibl at gmx.de")); + return aboutData; +} + +K_PLUGIN_FACTORY(KDiff3PartFactory, registerPlugin();) + +KDiff3Part::KDiff3Part(QWidget* parentWidget, QObject* parent, const QVariantList& args) + : KParts::ReadWritePart(parent) +{ + //set AboutData + setComponentData(createAboutData()); + if(!args.isEmpty()) + { + const QString widgetName = args[0].toString(); + + // this should be your custom internal widget + m_widget = new KDiff3App(parentWidget, widgetName, this); + } + else + m_widget = new KDiff3App(parentWidget, u8"KDiff3Part", this); + + // notify the part that this is our internal widget + setWidget(m_widget); + + // create our actions + //KStandardAction::open(this, &KDiff3Part:fileOpen, actionCollection()); + //KStandardAction::saveAs(this, &KDiff3Part:fileSaveAs, actionCollection()); + //KStandardAction::save(this, &KDiff3Part:save, actionCollection()); + + setXMLFile("kdiff3_part.rc"); + + // we are read-write by default + setReadWrite(true); + + // we are not modified since we haven't done anything yet + setModified(false); +} + +KDiff3Part::~KDiff3Part() +{ + //TODO: Is parent check needed? + if(m_widget != nullptr && qobject_cast(parent()) != nullptr ) + { + m_widget->saveOptions(KSharedConfig::openConfig()); + } +} + +void KDiff3Part::setReadWrite(bool /*rw*/) +{ + // ReadWritePart::setReadWrite(rw); +} + +void KDiff3Part::setModified(bool /*modified*/) +{ + /* + // get a handle on our Save action and make sure it is valid + QAction *save = actionCollection()->action(KStandardAction::stdName(KStandardAction::Save)); + if (!save) + return; + + // if so, we either enable or disable it based on the current + // state + if (modified) + save->setEnabled(true); + else + save->setEnabled(false); + + // in any event, we want our parent to do it's thing + ReadWritePart::setModified(modified); +*/ +} + +void KDiff3Part::getNameAndVersion(const QString& str, const QString& lineStart, QString& fileName, QString& version) +{ + if(str.left(lineStart.length()) == lineStart && fileName.isEmpty()) + { + int pos = lineStart.length(); + + while(pos < str.length() && (str[pos] == ' ' || str[pos] == '\t')) ++pos; + int pos2 = str.length() - 1; + while(pos2 > pos) + { + while(pos2 > pos && str[pos2] != ' ' && str[pos2] != '\t') --pos2; + fileName = str.mid(pos, pos2 - pos); + qCDebug(kdiffMain) << "KDiff3Part::getNameAndVersion: fileName = " << fileName << "\n"; + + if(FileAccess(fileName).exists()) break; + --pos2; + } + + int vpos = str.lastIndexOf("\t", -1); + if(vpos > 0 && vpos > pos2) + { + version = str.mid(vpos + 1); + while(!version.right(1)[0].isLetterOrNumber()) + version.truncate(version.length() - 1); + } + } +} + +bool KDiff3Part::openFile() +{ + return false; +} + +bool KDiff3Part::saveFile() +{ + /* // if we aren't read-write, return immediately + if (isReadWrite() == false) + return false; + + // localFilePath() is always local, so we use QFile + QFile file(localFilePath()); + if (file.open(IO_WriteOnly) == false) + return false; + + // use QTextStream to dump the text to the file + QTextStream stream(&file); + //stream << m_widget->text(); + + file.close(); + return true; +*/ + return false; // Not implemented +} + +#include "kdiff3_part.moc" diff --git a/src/kdiff3_part.h b/src/kdiff3_part.h new file mode 100644 index 0000000..0741ddc --- /dev/null +++ b/src/kdiff3_part.h @@ -0,0 +1,70 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KDIFF3PART_H +#define KDIFF3PART_H + +#include +#include +#include + +class QWidget; +class KDiff3App; + +/** + * This is a "Part". It that does all the real work in a KPart + * application. + * + * @short Main Part + * @author Joachim Eibl + */ +class KDiff3Part : public KParts::ReadWritePart +{ + Q_OBJECT +public: + /** + * Default constructor + */ + KDiff3Part(QWidget *parentWidget, QObject *parent, const QVariantList &args ); + + /** + * Destructor + */ + ~KDiff3Part() override; + + /** + * This is a virtual function inherited from KParts::ReadWritePart. + * A shell will use this to inform this Part if it should act + * read-only + */ + void setReadWrite(bool rw) override; + + /** + * Reimplemented to disable and enable Save action + */ + void setModified(bool modified) override; + +protected: + /** + * This must be implemented by each part + */ + bool openFile() override; + + /** + * This must be implemented by each read-write part + */ + bool saveFile() override; + +private: + void getNameAndVersion(const QString& str, const QString& lineStart, QString& fileName, QString& version); + KAboutData createAboutData(); + + KDiff3App* m_widget; +}; + +#endif // _KDIFF3PART_H_ diff --git a/src/kdiff3_part.rc b/src/kdiff3_part.rc new file mode 100644 index 0000000..fff86c0 --- /dev/null +++ b/src/kdiff3_part.rc @@ -0,0 +1,24 @@ + + + +

&KDiff3 + + + + + + + + + Configure KDiff3 + + +KDiff3 + + + + + + + + diff --git a/src/kdiff3_shell.cpp b/src/kdiff3_shell.cpp new file mode 100644 index 0000000..835acf8 --- /dev/null +++ b/src/kdiff3_shell.cpp @@ -0,0 +1,159 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#include "kdiff3_shell.h" +#include "kdiff3.h" +#include "kdiff3_part.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +KDiff3Shell::KDiff3Shell(bool bCompleteInit) +{ + m_bUnderConstruction = true; + // set the shell's ui resource file + setXMLFile("kdiff3_shell.rc"); + + // and a status bar + statusBar()->show(); + + /*const QVector plugin_offers = KPluginLoader::findPlugins( "kf5/kdiff3part" ); + for( const KPluginMetaData & service: plugin_offers ) { + KPluginFactory *factory = KPluginLoader( service.fileName() ).factory(); + m_part = factory->create( this, QVariantList() << QVariant( QLatin1String( "KDiff3Part" ) ) ); + if( m_part ) + break; + }*/ + + m_part = new KDiff3Part(this, this, {QVariant(QLatin1String("KDiff3Part"))}); + m_widget = qobject_cast(m_part->widget()); + + if(m_part) + { + // and integrate the part's GUI with the shell's + createGUI(m_part); + //toolBar()->setToolButtonStyle( Qt::ToolButtonIconOnly ); + + // tell the KParts::MainWindow that this is indeed the main widget + setCentralWidget(m_widget); + + if(bCompleteInit) + m_widget->completeInit(QString()); + chk_connect(m_widget, &KDiff3App::createNewInstance, this, &KDiff3Shell::slotNewInstance); + } + else + { + // if we couldn't find our Part, we exit since the Shell by + // itself can't do anything useful + KMessageBox::error(this, i18n("Could not initialize the KDiff3 part.\n" + "This usually happens due to an installation problem. " + "Please read the README-file in the source package for details.")); + //kapp->quit(); + + ::exit(-1); //kapp->quit() doesn't work here yet. + + // we return here, cause kapp->quit() only means "exit the + // next time we enter the event loop... + + return; + } + + // apply the saved mainwindow settings, if any, and ask the mainwindow + // to automatically save settings if changed: window size, toolbar + // position, icon size, etc. + setAutoSaveSettings(); + m_bUnderConstruction = false; +} + +KDiff3Shell::~KDiff3Shell() = default; + +bool KDiff3Shell::queryClose() +{ + if(m_widget) + return m_widget->queryClose(); + else + return true; +} + +bool KDiff3Shell::queryExit() +{ + return true; +} + +void KDiff3Shell::closeEvent(QCloseEvent* e) +{ + if(queryClose()) + { + e->accept(); + bool bFileSaved = m_widget->isFileSaved(); + bool bDirCompare = m_widget->isDirComparison(); + QApplication::exit(bFileSaved || bDirCompare ? 0 : 1); + } + else + e->ignore(); +} + +void KDiff3Shell::optionsShowToolbar() +{ + // this is all very cut and paste code for showing/hiding the + // toolbar + if(m_toolbarAction->isChecked()) + toolBar()->show(); + else + toolBar()->hide(); +} + +void KDiff3Shell::optionsShowStatusbar() +{ + // this is all very cut and paste code for showing/hiding the + // statusbar + if(m_statusbarAction->isChecked()) + statusBar()->show(); + else + statusBar()->hide(); +} + +void KDiff3Shell::optionsConfigureKeys() +{ + KShortcutsDialog::configure(actionCollection() /*, "kdiff3_shell.rc" */); +} + +void KDiff3Shell::optionsConfigureToolbars() +{ + KConfigGroup mainWindowGroup(KSharedConfig::openConfig(), "MainWindow"); + saveMainWindowSettings(mainWindowGroup); + + // use the standard toolbar editor + KEditToolBar dlg(factory()); + chk_connect(&dlg, &KEditToolBar::newToolBarConfig, this, &KDiff3Shell::applyNewToolbarConfig); + dlg.exec(); +} + +void KDiff3Shell::applyNewToolbarConfig() +{ + KConfigGroup mainWindowGroup(KSharedConfig::openConfig(), "MainWindow"); + applyMainWindowSettings(mainWindowGroup); +} + +void KDiff3Shell::slotNewInstance(const QString& fn1, const QString& fn2, const QString& fn3) +{ + static KDiff3Shell* pKDiff3Shell = new KDiff3Shell(false); + pKDiff3Shell->m_widget->completeInit(fn1, fn2, fn3); +} + +//#include "kdiff3_shell.moc" diff --git a/src/kdiff3_shell.h b/src/kdiff3_shell.h new file mode 100644 index 0000000..011236a --- /dev/null +++ b/src/kdiff3_shell.h @@ -0,0 +1,71 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef KDIFF3SHELL_H +#define KDIFF3SHELL_H + +#include +#include +#include + +class KToggleAction; + +namespace KParts { + class ReadWritePart; +} + +class KDiff3App; + +/** + * This is the application "Shell". It has a menubar, toolbar, and + * statusbar but relies on the "Part" to do all the real work. + * + * @short Application Shell + * @author Joachim Eibl + */ +class KDiff3Shell : public KParts::MainWindow +{ + Q_OBJECT +public: + /** + * Default Constructor + */ + explicit KDiff3Shell(bool bCompleteInit=true); + + /** + * Default Destructor + */ + ~KDiff3Shell() override; + + bool queryClose() override; + bool queryExit(); + void closeEvent(QCloseEvent*e) override; + + static inline QCommandLineParser* getParser(){ + static QCommandLineParser *parser = new QCommandLineParser(); + return parser; + }; +private Q_SLOTS: + void optionsShowToolbar(); + void optionsShowStatusbar(); + void optionsConfigureKeys(); + void optionsConfigureToolbars(); + + void applyNewToolbarConfig(); + void slotNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 ); + +private: + KParts::ReadWritePart *m_part; + KDiff3App *m_widget; + + KToggleAction *m_toolbarAction; + KToggleAction *m_statusbarAction; + bool m_bUnderConstruction; +}; + +#endif // _KDIFF3_H_ diff --git a/src/kdiff3_shell.rc b/src/kdiff3_shell.rc new file mode 100644 index 0000000..736d4cd --- /dev/null +++ b/src/kdiff3_shell.rc @@ -0,0 +1,128 @@ + + + + &File + + + F&older + + + + + + + + + + + + + + + + + + + + + + Current Item Merge Operation + + + + + + + + Current Item Sync Operation + + + + + + + + + + + + M&ovement + + + + + + + + + + + D&iffview + + + + + + + + + + + + M&erge + + + + + + + + + + + + + + + + + + + + + + &Window + + + + + + + + + + +Main Toolbar + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/kdiff3win.rc b/src/kdiff3win.rc new file mode 100644 index 0000000..5b38078 --- /dev/null +++ b/src/kdiff3win.rc @@ -0,0 +1 @@ +IDI_ICON1 ICON DISCARDABLE "kdiff3.ico" diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..56fc6cf --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,197 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "kdiff3_shell.h" +#include "UTF8BOMCodec.h" +#include "version.h" + +#include "Logging.h" + +#include // for fileno, stderr +#include // for exit + +#ifndef Q_OS_WIN +#include +#endif + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +void initialiseCmdLineArgs(QCommandLineParser* cmdLineParser) +{ + QString configFileName = QStandardPaths::locate(QStandardPaths::GenericConfigLocation, "kdiff3rc"); + QFile configFile(configFileName); + QString ignorableOptionsLine = "-u;-query;-html;-abort"; + if(configFile.open(QIODevice::ReadOnly)) + { + QTextStream ts(&configFile); + while(!ts.atEnd()) + { + QString line = ts.readLine(); + if(line.startsWith(QLatin1String("IgnorableCmdLineOptions="))) + { + int pos = line.indexOf('='); + if(pos >= 0) + { + ignorableOptionsLine = line.mid(pos + 1); + } + break; + } + } + } + //support our own old preferences this is obsolete + QStringList sl = ignorableOptionsLine.split(','); + + if(!sl.isEmpty()) + { + const QStringList ignorableOptions = sl.front().split(';'); + for(QString ignorableOption : ignorableOptions) + { + ignorableOption.remove('-'); + if(!ignorableOption.isEmpty()) + { + if(ignorableOption.length() == 1) { + cmdLineParser->addOption(QCommandLineOption({ignorableOption, QLatin1String("ignore")}, i18n("Ignored. (User defined.)"))); + } + else + { + cmdLineParser->addOption(QCommandLineOption(ignorableOption, i18n("Ignored. (User defined.)"))); + } + } + } + } +} + +int main(int argc, char* argv[]) +{ + constexpr QLatin1String appName("kdiff3", sizeof("kdiff3") - 1); + /* + QTextCodec auto registers text codecs in its constructor. + Do this now because we only need one codec object. + This object is Qt's domain once created and must be on the heap. + */ + const UTF8BOMCodec *textCodec = new UTF8BOMCodec(); + Q_UNUSED(textCodec) + + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + QApplication app(argc, argv); // KAboutData and QCommandLineParser depend on this being setup. + KLocalizedString::setApplicationDomain(appName.data()); + + KCrash::initialize(); + + const QString i18nName = i18n("KDiff3"); + QString appVersion(KDIFF3_VERSION_STRING); + + if(sizeof(void*) == 8) + appVersion += i18n(" (64 bit)"); + else if(sizeof(void*) == 4) + appVersion += i18n(" (32 bit)"); + const QString description = i18n("Tool for Comparison and Merge of Files and Folders"); + const QString copyright = i18n("(c) 2002-2014 Joachim Eibl, (c) 2017 Michael Reeves KF5/Qt5 port"); + const QString homePage = QStringLiteral("https://kde.org/applications/development/kdiff3"); + + KAboutData aboutData(appName, i18nName, + appVersion, description, KAboutLicense::GPL_V2, copyright, QString(), + homePage); + + KAboutData::setApplicationData(aboutData); + + QCommandLineParser* cmdLineParser = KDiff3Shell::getParser(); + cmdLineParser->setApplicationDescription(aboutData.shortDescription()); + + aboutData.setupCommandLine(cmdLineParser); + + initialiseCmdLineArgs(cmdLineParser); + // ignorable command options + cmdLineParser->addOption(QCommandLineOption({QLatin1String("m"), QLatin1String("merge")}, i18n("Merge the input."))); + cmdLineParser->addOption(QCommandLineOption({QLatin1String("b"), QLatin1String("base")}, i18n("Explicit base file. For compatibility with certain tools."), QLatin1String("file"))); + cmdLineParser->addOption(QCommandLineOption({QLatin1String("o"), QLatin1String("output")}, i18n("Output file. Implies -m. E.g.: -o newfile.txt"), QLatin1String("file"))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("out"), i18n("Output file, again. (For compatibility with certain tools.)"), QLatin1String("file"))); +#ifdef ENABLE_AUTO + cmdLineParser->addOption(QCommandLineOption(QLatin1String("auto"), i18n("No GUI if all conflicts are auto-solvable. (Needs -o file)"))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("noauto"), i18n("Ignore --auto and always show GUI."))); +#else + cmdLineParser->addOption(QCommandLineOption(QLatin1String("noauto"), i18n("Ignored."))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("auto"), i18n("Ignored."))); +#endif + cmdLineParser->addOption(QCommandLineOption(QLatin1String("L1"), i18n("Visible name replacement for input file 1 (base)."), QLatin1String("alias1"))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("L2"), i18n("Visible name replacement for input file 2."), QLatin1String("alias2"))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("L3"), i18n("Visible name replacement for input file 3."), QLatin1String("alias3"))); + cmdLineParser->addOption(QCommandLineOption({QLatin1String("L"), QLatin1String("fname")}, i18n("Alternative visible name replacement. Supply this once for every input."), QLatin1String("alias"))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("cs"), i18n("Override a config setting. Use once for every setting. E.g.: --cs \"AutoAdvance=1\""), QLatin1String("string"))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("confighelp"), i18n("Show list of config settings and current values."))); + cmdLineParser->addOption(QCommandLineOption(QLatin1String("config"), i18n("Use a different config file."), QLatin1String("file"))); + + // other command options + cmdLineParser->addPositionalArgument(QLatin1String("[File1]"), i18n("file1 to open (base, if not specified via --base)")); + cmdLineParser->addPositionalArgument(QLatin1String("[File2]"), i18n("file2 to open")); + cmdLineParser->addPositionalArgument(QLatin1String("[File3]"), i18n("file3 to open")); + + bool isAtty = true; + +#ifndef Q_OS_WIN + isAtty = isatty(fileno(stderr)) == 1;//will be true for redirected output as well +#endif + /* + QCommandLineParser::process does what is expected on windows or when running from a commandline. + However, it only accounts for a lack of terminal output on windows. + */ + if(isAtty) + { + cmdLineParser->process(QCoreApplication::arguments()); + } + else + { + /* + There is no terminal connected so don't just exit mysteriously on error. + */ + if(!cmdLineParser->parse(QCoreApplication::arguments())) + { + QString errorMessage = cmdLineParser->errorText(); + + KMessageBox::error(nullptr, "

" + errorMessage + "

" + i18n("See kdiff3 --help for supported options.") + "
", aboutData.displayName()); + exit(1); + } + + if(cmdLineParser->isSet(QStringLiteral("version"))) { + KMessageBox::information(nullptr, + aboutData.displayName() + ' ' + aboutData.version(), aboutData.displayName()); + exit(0); + } + if(cmdLineParser->isSet(QStringLiteral("help"))) { + KMessageBox::information(nullptr, "
" + cmdLineParser->helpText() + "
", aboutData.displayName()); + + exit(0); + } + } + + aboutData.processCommandLine(cmdLineParser); + + /* + Do not attempt to call show here that will be done later. + This variable exists solely to insure the KDiff3Shell is deleted on exit. + */ + QPointer p(new KDiff3Shell()); + Q_UNUSED(p); + + int retVal = QApplication::exec(); + p.clear(); + return retVal; +} + diff --git a/src/merger.cpp b/src/merger.cpp new file mode 100644 index 0000000..33d6826 --- /dev/null +++ b/src/merger.cpp @@ -0,0 +1,73 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "merger.h" + +#include + +Merger::Merger(const DiffList* pDiffList1, const DiffList* pDiffList2) + : md1(pDiffList1, 0), md2(pDiffList2, 1) +{ +} + +Merger::MergeData::MergeData(const DiffList* p, int i) +{ + idx = i; + pDiffList = p; + if(p != nullptr) + { + it = p->begin(); + update(); + } +} + +bool Merger::MergeData::eq() const +{ + return pDiffList == nullptr || d.numberOfEquals() > 0; +} + +bool Merger::MergeData::isEnd() const +{ + return (pDiffList == nullptr || (it == pDiffList->end() && d.numberOfEquals() == 0 && + (idx == 0 ? d.diff1() == 0 : d.diff2() == 0))); +} + +void Merger::MergeData::update() +{ + if(d.numberOfEquals() > 0) + d.adjustNumberOfEquals(-1); + else if(idx == 0 && d.diff1() > 0) + d.adjustDiff1(-1); + else if(idx == 1 && d.diff2() > 0) + d.adjustDiff2(-1); + + while(d.numberOfEquals() == 0 && ((idx == 0 && d.diff1() == 0) || (idx == 1 && d.diff2() == 0)) && pDiffList != nullptr && it != pDiffList->end()) + { + d = *it; + ++it; + } +} + +void Merger::next() +{ + md1.update(); + md2.update(); +} + +ChangeFlags Merger::whatChanged() +{ + ChangeFlags changed = ChangeFlag::NoChange; + changed |= md1.eq() ? ChangeFlag::NoChange : ChangeFlag::AChanged; + changed |= md2.eq() ? ChangeFlag::NoChange : ChangeFlag::BChanged; + return changed; +} + +bool Merger::isEndReached() +{ + return md1.isEnd() && md2.isEnd(); +} diff --git a/src/merger.h b/src/merger.h new file mode 100644 index 0000000..caf9177 --- /dev/null +++ b/src/merger.h @@ -0,0 +1,52 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef MERGER_H +#define MERGER_H + +#include "diff.h" + +class Merger +{ + public: + Merger(const DiffList* pDiffList1, const DiffList* pDiffList2); + + /** Go one step. */ + void next(); + + /** Information about what changed. Can be used for coloring. + The return value is 0 if nothing changed here, + bit 1 is set if a difference from pDiffList1 was detected, + bit 2 is set if a difference from pDiffList2 was detected. + */ + ChangeFlags whatChanged(); + + /** End of both diff lists reached. */ + bool isEndReached(); + + private: + class MergeData + { + private: + DiffList::const_iterator it; + const DiffList* pDiffList = nullptr; + Diff d; + int idx; + + public: + MergeData(const DiffList* p, int i); + bool eq() const; + void update(); + bool isEnd() const; + }; + + MergeData md1; + MergeData md2; +}; + +#endif diff --git a/src/mergeresultwindow.cpp b/src/mergeresultwindow.cpp new file mode 100644 index 0000000..9da3c4f --- /dev/null +++ b/src/mergeresultwindow.cpp @@ -0,0 +1,3324 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#include "mergeresultwindow.h" + +#include "defmac.h" +#include "kdiff3.h" +#include "options.h" +#include "RLPainter.h" +#include "guiutils.h" +#include "Utils.h" // for Utils + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +QScrollBar* MergeResultWindow::mVScrollBar = nullptr; +QPointer MergeResultWindow::chooseAEverywhere; +QPointer MergeResultWindow::chooseBEverywhere; +QPointer MergeResultWindow::chooseCEverywhere; +QPointer MergeResultWindow::chooseAForUnsolvedConflicts; +QPointer MergeResultWindow::chooseBForUnsolvedConflicts; +QPointer MergeResultWindow::chooseCForUnsolvedConflicts; +QPointer MergeResultWindow::chooseAForUnsolvedWhiteSpaceConflicts; +QPointer MergeResultWindow::chooseBForUnsolvedWhiteSpaceConflicts; +QPointer MergeResultWindow::chooseCForUnsolvedWhiteSpaceConflicts; + +MergeResultWindow::MergeResultWindow( + QWidget* pParent, + const QSharedPointer& pOptions, + QStatusBar* pStatusBar) + : QWidget(pParent) +{ + setObjectName("MergeResultWindow"); + setFocusPolicy(Qt::ClickFocus); + + mOverviewMode = e_OverviewMode::eOMNormal; + + m_pStatusBar = pStatusBar; + if(m_pStatusBar != nullptr) + chk_connect(m_pStatusBar, &QStatusBar::messageChanged, this, &MergeResultWindow::slotStatusMessageChanged); + + m_pOptions = pOptions; + setUpdatesEnabled(false); + + chk_connect(&m_cursorTimer, &QTimer::timeout, this, &MergeResultWindow::slotCursorUpdate); + m_cursorTimer.setSingleShot(true); + m_cursorTimer.start(500 /*ms*/); + m_selection.reset(); + + setMinimumSize(QSize(20, 20)); + setFont(m_pOptions->m_font); +} + +void MergeResultWindow::init( + const QVector* pLineDataA, LineRef sizeA, + const QVector* pLineDataB, LineRef sizeB, + const QVector* pLineDataC, LineRef sizeC, + const Diff3LineList* pDiff3LineList, + TotalDiffStatus* pTotalDiffStatus, + bool bAutoSolve) +{ + m_firstLine = 0; + m_horizScrollOffset = 0; + m_nofLines = 0; + m_bMyUpdate = false; + m_bInsertMode = true; + m_scrollDeltaX = 0; + m_scrollDeltaY = 0; + setModified(false); + + m_pldA = pLineDataA; + m_pldB = pLineDataB; + m_pldC = pLineDataC; + m_sizeA = sizeA; + m_sizeB = sizeB; + m_sizeC = sizeC; + + m_pDiff3LineList = pDiff3LineList; + m_pTotalDiffStatus = pTotalDiffStatus; + + m_selection.reset(); + m_cursorXPos = 0; + m_cursorOldXPixelPos = 0; + m_cursorYPos = 0; + + m_maxTextWidth = -1; + + merge(bAutoSolve, e_SrcSelector::Invalid); + update(); + updateSourceMask(); + + showUnsolvedConflictsStatusMessage(); +} + +//This must be called before KXMLGui::SetXMLFile and friends or the actions will not be shown in the menu. +//At that point in startup we don't have a MergeResultWindow object so we cannot connect the signals yet. +void MergeResultWindow::initActions(KActionCollection* ac) +{ + if(ac == nullptr) + { + KMessageBox::error(nullptr, "actionCollection==0"); + exit(-1);//we cannot recover from this. + } + + chooseAEverywhere = GuiUtils::createAction(i18n("Choose A Everywhere"), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_1), ac, "merge_choose_a_everywhere"); + chooseBEverywhere = GuiUtils::createAction(i18n("Choose B Everywhere"), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_2), ac, "merge_choose_b_everywhere"); + chooseCEverywhere = GuiUtils::createAction(i18n("Choose C Everywhere"), QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_3), ac, "merge_choose_c_everywhere"); + chooseAForUnsolvedConflicts = GuiUtils::createAction(i18n("Choose A for All Unsolved Conflicts"), ac, "merge_choose_a_for_unsolved_conflicts"); + chooseBForUnsolvedConflicts = GuiUtils::createAction(i18n("Choose B for All Unsolved Conflicts"), ac, "merge_choose_b_for_unsolved_conflicts"); + chooseCForUnsolvedConflicts = GuiUtils::createAction(i18n("Choose C for All Unsolved Conflicts"), ac, "merge_choose_c_for_unsolved_conflicts"); + chooseAForUnsolvedWhiteSpaceConflicts = GuiUtils::createAction(i18n("Choose A for All Unsolved Whitespace Conflicts"), ac, "merge_choose_a_for_unsolved_whitespace_conflicts"); + chooseBForUnsolvedWhiteSpaceConflicts = GuiUtils::createAction(i18n("Choose B for All Unsolved Whitespace Conflicts"), ac, "merge_choose_b_for_unsolved_whitespace_conflicts"); + chooseCForUnsolvedWhiteSpaceConflicts = GuiUtils::createAction(i18n("Choose C for All Unsolved Whitespace Conflicts"), ac, "merge_choose_c_for_unsolved_whitespace_conflicts"); +} + +void MergeResultWindow::connectActions() const +{ + chk_connect(chooseAEverywhere, &QAction::triggered, this, &MergeResultWindow::slotChooseAEverywhere); + chk_connect(chooseBEverywhere, &QAction::triggered, this, &MergeResultWindow::slotChooseBEverywhere); + chk_connect(chooseCEverywhere, &QAction::triggered, this, &MergeResultWindow::slotChooseCEverywhere); + + chk_connect(chooseAForUnsolvedConflicts, &QAction::triggered, this, &MergeResultWindow::slotChooseAForUnsolvedConflicts); + chk_connect(chooseBForUnsolvedConflicts, &QAction::triggered, this, &MergeResultWindow::slotChooseBForUnsolvedConflicts); + chk_connect(chooseCForUnsolvedConflicts, &QAction::triggered, this, &MergeResultWindow::slotChooseCForUnsolvedConflicts); + + chk_connect(chooseAForUnsolvedWhiteSpaceConflicts, &QAction::triggered, this, &MergeResultWindow::slotChooseAForUnsolvedWhiteSpaceConflicts); + chk_connect(chooseBForUnsolvedWhiteSpaceConflicts, &QAction::triggered, this, &MergeResultWindow::slotChooseBForUnsolvedWhiteSpaceConflicts); + chk_connect(chooseCForUnsolvedWhiteSpaceConflicts, &QAction::triggered, this, &MergeResultWindow::slotChooseCForUnsolvedWhiteSpaceConflicts); +} + +void MergeResultWindow::setupConnections(const KDiff3App* app) +{ + chk_connect(app, &KDiff3App::cut, this, &MergeResultWindow::slotCut); + chk_connect(app, &KDiff3App::copy, this, &MergeResultWindow::slotCopy); + chk_connect(app, &KDiff3App::selectAll, this, &MergeResultWindow::slotSelectAll); + + chk_connect(this, &MergeResultWindow::scrollMergeResultWindow, app, &KDiff3App::scrollMergeResultWindow); + chk_connect(this, &MergeResultWindow::sourceMask, app, &KDiff3App::sourceMask); + chk_connect(this, &MergeResultWindow::resizeSignal, app, &KDiff3App::setHScrollBarRange); + chk_connect(this, &MergeResultWindow::resizeSignal, this, &MergeResultWindow::slotResize); + + chk_connect(this, &MergeResultWindow::selectionEnd, app, &KDiff3App::slotSelectionEnd); + chk_connect(this, &MergeResultWindow::newSelection, app, &KDiff3App::slotSelectionStart); + chk_connect(this, &MergeResultWindow::modifiedChanged, app, &KDiff3App::slotOutputModified); + chk_connect(this, &MergeResultWindow::updateAvailabilities, app, &KDiff3App::slotUpdateAvailabilities); + chk_connect(this, &MergeResultWindow::showPopupMenu, app, &KDiff3App::showPopupMenu); + chk_connect(this, &MergeResultWindow::noRelevantChangesDetected, app, &KDiff3App::slotNoRelevantChangesDetected); + chk_connect(this, &MergeResultWindow::statusBarMessage, app, &KDiff3App::slotStatusMsg); + //connect menu actions + chk_connect(app, &KDiff3App::showWhiteSpaceToggled, this, static_cast(&MergeResultWindow::update)); + chk_connect(app, &KDiff3App::doRefresh, this, &MergeResultWindow::slotRefresh); + + chk_connect(app, &KDiff3App::autoSolve, this, &MergeResultWindow::slotAutoSolve); + chk_connect(app, &KDiff3App::unsolve, this, &MergeResultWindow::slotUnsolve); + chk_connect(app, &KDiff3App::mergeHistory, this, &MergeResultWindow::slotMergeHistory); + chk_connect(app, &KDiff3App::regExpAutoMerge, this, &MergeResultWindow::slotRegExpAutoMerge); + + chk_connect(app, &KDiff3App::goCurrent, this, &MergeResultWindow::slotGoCurrent); + chk_connect(app, &KDiff3App::goTop, this, &MergeResultWindow::slotGoTop); + chk_connect(app, &KDiff3App::goBottom, this, &MergeResultWindow::slotGoBottom); + chk_connect(app, &KDiff3App::goPrevUnsolvedConflict, this, &MergeResultWindow::slotGoPrevUnsolvedConflict); + chk_connect(app, &KDiff3App::goNextUnsolvedConflict, this, &MergeResultWindow::slotGoNextUnsolvedConflict); + chk_connect(app, &KDiff3App::goPrevConflict, this, &MergeResultWindow::slotGoPrevConflict); + chk_connect(app, &KDiff3App::goNextConflict, this, &MergeResultWindow::slotGoNextConflict); + chk_connect(app, &KDiff3App::goPrevDelta, this, &MergeResultWindow::slotGoPrevDelta); + chk_connect(app, &KDiff3App::goNextDelta, this, &MergeResultWindow::slotGoNextDelta); + + chk_connect(app, &KDiff3App::changeOverViewMode, this, &MergeResultWindow::setOverviewMode); + + connections.push_back(KDiff3App::allowCut.connect(boost::bind(&MergeResultWindow::canCut, this))); + connections.push_back(KDiff3App::allowCopy.connect(boost::bind(&MergeResultWindow::canCopy, this))); + connections.push_back(KDiff3App::getSelection.connect(boost::bind(&MergeResultWindow::getSelection, this))); +} + +void MergeResultWindow::slotResize() +{ + mVScrollBar->setRange(0, std::max(0, getNofLines() - getNofVisibleLines())); + mVScrollBar->setPageStep(getNofVisibleLines()); +} + +void MergeResultWindow::slotCut() +{ + const QString curSelection = getSelection(); + Q_ASSERT(!curSelection.isEmpty() && hasFocus()); + deleteSelection(); + update(); + + QApplication::clipboard()->setText(curSelection, QClipboard::Clipboard); +} + +void MergeResultWindow::slotCopy() +{ + if(!hasFocus()) + return; + + const QString curSelection = getSelection(); + + if(!curSelection.isEmpty()) + { + QApplication::clipboard()->setText(curSelection, QClipboard::Clipboard); + } +} + +void MergeResultWindow::slotSelectAll() +{ + if(hasFocus()) + { + setSelection(0, 0, getNofLines(), 0); + } +} + +void MergeResultWindow::showUnsolvedConflictsStatusMessage() +{ + if(m_pStatusBar != nullptr) + { + int wsc; + int nofUnsolved = getNrOfUnsolvedConflicts(&wsc); + + m_persistentStatusMessage = i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)", nofUnsolved, wsc); + + Q_EMIT statusBarMessage(m_persistentStatusMessage); + } +} + +void MergeResultWindow::slotRefresh() +{ + setFont(m_pOptions->m_font); + update(); +} + +void MergeResultWindow::slotUpdateAvailabilities() +{ + const QWidget* frame = qobject_cast(parent()); + Q_ASSERT(frame != nullptr); + const bool bMergeEditorVisible = frame->isVisible(); + const bool bTripleDiff = KDiff3App::isTripleDiff(); + + chooseAEverywhere->setEnabled(bMergeEditorVisible); + chooseBEverywhere->setEnabled(bMergeEditorVisible); + chooseCEverywhere->setEnabled(bMergeEditorVisible && bTripleDiff); + chooseAForUnsolvedConflicts->setEnabled(bMergeEditorVisible); + chooseBForUnsolvedConflicts->setEnabled(bMergeEditorVisible); + chooseCForUnsolvedConflicts->setEnabled(bMergeEditorVisible && bTripleDiff); + chooseAForUnsolvedWhiteSpaceConflicts->setEnabled(bMergeEditorVisible); + chooseBForUnsolvedWhiteSpaceConflicts->setEnabled(bMergeEditorVisible); + chooseCForUnsolvedWhiteSpaceConflicts->setEnabled(bMergeEditorVisible && bTripleDiff); +} + +void MergeResultWindow::slotStatusMessageChanged(const QString& s) +{ + if(s.isEmpty() && !m_persistentStatusMessage.isEmpty()) + { + Q_EMIT statusBarMessage(m_persistentStatusMessage); + } +} + +void MergeResultWindow::reset() +{ + m_pDiff3LineList = nullptr; + m_pTotalDiffStatus = nullptr; + m_pldA = nullptr; + m_pldB = nullptr; + m_pldC = nullptr; + if(!m_persistentStatusMessage.isEmpty()) + { + m_persistentStatusMessage = QString(); + } +} + +// Calculate the merge information for the given Diff3Line. +// Results will be stored in mergeDetails, bConflict, bLineRemoved and src. +void Diff3Line::mergeOneLine( + e_MergeDetails& mergeDetails, bool& bConflict, + bool& bLineRemoved, e_SrcSelector& src, bool bTwoInputs) const +{ + mergeDetails = e_MergeDetails::eDefault; + bConflict = false; + bLineRemoved = false; + src = e_SrcSelector::None; + + if(bTwoInputs) // Only two input files + { + if(getLineA().isValid() && getLineB().isValid()) + { + if(pFineAB == nullptr) + { + mergeDetails = e_MergeDetails::eNoChange; + src = e_SrcSelector::A; + } + else + { + mergeDetails = e_MergeDetails::eBChanged; + bConflict = true; + } + } + else + { + mergeDetails = e_MergeDetails::eBDeleted; + bConflict = true; + } + return; + } + + // A is base. + if(getLineA().isValid() && getLineB().isValid() && getLineC().isValid()) + { + if(pFineAB == nullptr && pFineBC == nullptr && pFineCA == nullptr) + { + mergeDetails = e_MergeDetails::eNoChange; + src = e_SrcSelector::A; + } + else if(pFineAB == nullptr && pFineBC != nullptr && pFineCA != nullptr) + { + mergeDetails = e_MergeDetails::eCChanged; + src = e_SrcSelector::C; + } + else if(pFineAB != nullptr && pFineBC != nullptr && pFineCA == nullptr) + { + mergeDetails = e_MergeDetails::eBChanged; + src = e_SrcSelector::B; + } + else if(pFineAB != nullptr && pFineBC == nullptr && pFineCA != nullptr) + { + mergeDetails = e_MergeDetails::eBCChangedAndEqual; + src = e_SrcSelector::C; + } + else if(pFineAB != nullptr && pFineBC != nullptr && pFineCA != nullptr) + { + mergeDetails = e_MergeDetails::eBCChanged; + bConflict = true; + } + else + Q_ASSERT(true); + } + else if(getLineA().isValid() && getLineB().isValid() && !getLineC().isValid()) + { + if(pFineAB != nullptr) + { + mergeDetails = e_MergeDetails::eBChanged_CDeleted; + bConflict = true; + } + else + { + mergeDetails = e_MergeDetails::eCDeleted; + bLineRemoved = true; + src = e_SrcSelector::C; + } + } + else if(getLineA().isValid() && !getLineB().isValid() && getLineC().isValid()) + { + if(pFineCA != nullptr) + { + mergeDetails = e_MergeDetails::eCChanged_BDeleted; + bConflict = true; + } + else + { + mergeDetails = e_MergeDetails::eBDeleted; + bLineRemoved = true; + src = e_SrcSelector::B; + } + } + else if(!getLineA().isValid() && getLineB().isValid() && getLineC().isValid()) + { + if(pFineBC != nullptr) + { + mergeDetails = e_MergeDetails::eBCAdded; + bConflict = true; + } + else // B==C + { + mergeDetails = e_MergeDetails::eBCAddedAndEqual; + src = e_SrcSelector::C; + } + } + else if(!getLineA().isValid() && !getLineB().isValid() && getLineC().isValid()) + { + mergeDetails = e_MergeDetails::eCAdded; + src = e_SrcSelector::C; + } + else if(!getLineA().isValid() && getLineB().isValid() && !getLineC().isValid()) + { + mergeDetails = e_MergeDetails::eBAdded; + src = e_SrcSelector::B; + } + else if(getLineA().isValid() && !getLineB().isValid() && !getLineC().isValid()) + { + mergeDetails = e_MergeDetails::eBCDeleted; + bLineRemoved = true; + src = e_SrcSelector::C; + } + else + Q_ASSERT(true); +} + +bool MergeResultWindow::sameKindCheck(const MergeLine& ml1, const MergeLine& ml2) +{ + if(ml1.bConflict && ml2.bConflict) + { + // Both lines have conflicts: If one is only a white space conflict and + // the other one is a real conflict, then this line returns false. + return ml1.id3l->isEqualAC() == ml2.id3l->isEqualAC() && ml1.id3l->isEqualAB() == ml2.id3l->isEqualAB(); + } + else + return ( + (!ml1.bConflict && !ml2.bConflict && ml1.bDelta && ml2.bDelta && ml1.srcSelect == ml2.srcSelect && (ml1.mergeDetails == ml2.mergeDetails || (ml1.mergeDetails != e_MergeDetails::eBCAddedAndEqual && ml2.mergeDetails != e_MergeDetails::eBCAddedAndEqual))) || + (!ml1.bDelta && !ml2.bDelta)); +} + +void MergeResultWindow::merge(bool bAutoSolve, e_SrcSelector defaultSelector, bool bConflictsOnly, bool bWhiteSpaceOnly) +{ + if(!bConflictsOnly) + { + if(m_bModified) + { + int result = KMessageBox::warningYesNo(this, + i18n("The output has been modified.\n" + "If you continue your changes will be lost."), + i18n("Warning"), + KStandardGuiItem::cont(), + KStandardGuiItem::cancel()); + if(result == KMessageBox::No) + return; + } + + m_mergeLineList.clear(); + + int lineIdx = 0; + Diff3LineList::const_iterator it; + for(it = m_pDiff3LineList->begin(); it != m_pDiff3LineList->end(); ++it, ++lineIdx) + { + const Diff3Line& d = *it; + + MergeLine ml; + bool bLineRemoved; + d.mergeOneLine(ml.mergeDetails, ml.bConflict, bLineRemoved, ml.srcSelect, m_pldC == nullptr); + + // Automatic solving for only whitespace changes. + if(ml.bConflict && + ((m_pldC == nullptr && (d.isEqualAB() || (d.isWhiteLine(e_SrcSelector::A) && d.isWhiteLine(e_SrcSelector::B)))) || + (m_pldC != nullptr && ((d.isEqualAB() && d.isEqualAC()) || (d.isWhiteLine(e_SrcSelector::A) && d.isWhiteLine(e_SrcSelector::B) && d.isWhiteLine(e_SrcSelector::C)))))) + { + ml.bWhiteSpaceConflict = true; + } + + ml.d3lLineIdx = lineIdx; + ml.bDelta = ml.srcSelect != e_SrcSelector::A; + ml.id3l = it; + ml.srcRangeLength = 1; + + MergeLine* back = m_mergeLineList.empty() ? nullptr : &m_mergeLineList.back(); + + bool bSame = back != nullptr && sameKindCheck(ml, *back); + if(bSame) + { + ++back->srcRangeLength; + if(back->bWhiteSpaceConflict && !ml.bWhiteSpaceConflict) + back->bWhiteSpaceConflict = false; + } + else + { + m_mergeLineList.push_back(ml); + } + + if(!ml.bConflict) + { + MergeLine& tmpBack = m_mergeLineList.back(); + MergeEditLine mel(ml.id3l); + mel.setSource(ml.srcSelect, bLineRemoved); + tmpBack.mergeEditLineList.push_back(mel); + } + else if(back == nullptr || !back->bConflict || !bSame) + { + MergeLine& tmpBack = m_mergeLineList.back(); + MergeEditLine mel(ml.id3l); + mel.setConflict(); + tmpBack.mergeEditLineList.push_back(mel); + } + } + } + + bool bSolveWhiteSpaceConflicts = false; + if(bAutoSolve) // when true, then the other params are not used and we can change them here. (see all invocations of merge()) + { + if(m_pldC == nullptr && m_pOptions->m_whiteSpace2FileMergeDefault != (int)e_SrcSelector::None) // Only two inputs + { + Q_ASSERT(m_pOptions->m_whiteSpace2FileMergeDefault <= (int)e_SrcSelector::Max && m_pOptions->m_whiteSpace2FileMergeDefault >= (int)e_SrcSelector::Min); + defaultSelector = (e_SrcSelector)m_pOptions->m_whiteSpace2FileMergeDefault; + bWhiteSpaceOnly = true; + bSolveWhiteSpaceConflicts = true; + } + else if(m_pldC != nullptr && m_pOptions->m_whiteSpace3FileMergeDefault != (int)e_SrcSelector::None) + { + Q_ASSERT(m_pOptions->m_whiteSpace3FileMergeDefault <= (int)e_SrcSelector::Max && m_pOptions->m_whiteSpace2FileMergeDefault >= (int)e_SrcSelector::Min); + defaultSelector = (e_SrcSelector)m_pOptions->m_whiteSpace3FileMergeDefault; + bWhiteSpaceOnly = true; + bSolveWhiteSpaceConflicts = true; + } + } + + if(!bAutoSolve || bSolveWhiteSpaceConflicts) + { + // Change all auto selections + MergeLineList::iterator mlIt; + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + bool bConflict = ml.mergeEditLineList.empty() || ml.mergeEditLineList.begin()->isConflict(); + if(ml.bDelta && (!bConflictsOnly || bConflict) && (!bWhiteSpaceOnly || ml.bWhiteSpaceConflict)) + { + ml.mergeEditLineList.clear(); + if(defaultSelector == e_SrcSelector::Invalid && ml.bDelta) + { + MergeEditLine mel(ml.id3l); + + mel.setConflict(); + ml.bConflict = true; + ml.mergeEditLineList.push_back(mel); + } + else + { + Diff3LineList::const_iterator d3llit = ml.id3l; + int j; + + for(j = 0; j < ml.srcRangeLength; ++j) + { + MergeEditLine mel(d3llit); + mel.setSource(defaultSelector, false); + + LineRef srcLine = defaultSelector == e_SrcSelector::A ? d3llit->getLineA() : defaultSelector == e_SrcSelector::B ? d3llit->getLineB() : defaultSelector == e_SrcSelector::C ? d3llit->getLineC() : LineRef(); + + if(srcLine.isValid()) + { + ml.mergeEditLineList.push_back(mel); + } + + ++d3llit; + } + + if(ml.mergeEditLineList.empty()) // Make a line nevertheless + { + MergeEditLine mel(ml.id3l); + mel.setRemoved(defaultSelector); + ml.mergeEditLineList.push_back(mel); + } + } + } + } + } + + MergeLineList::iterator mlIt; + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + // Remove all lines that are empty, because no src lines are there. + + LineRef oldSrcLine; + e_SrcSelector oldSrc = e_SrcSelector::Invalid; + MergeEditLineList::iterator melIt; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end();) + { + MergeEditLine& mel = *melIt; + e_SrcSelector melsrc = mel.src(); + + LineRef srcLine = mel.isRemoved() ? LineRef() : melsrc == e_SrcSelector::A ? mel.id3l()->getLineA() : melsrc == e_SrcSelector::B ? mel.id3l()->getLineB() : melsrc == e_SrcSelector::C ? mel.id3l()->getLineC() : LineRef(); + + // At least one line remains because oldSrc != melsrc for first line in list + // Other empty lines will be removed + if(!srcLine.isValid() && !oldSrcLine.isValid() && oldSrc == melsrc) + melIt = ml.mergeEditLineList.erase(melIt); + else + ++melIt; + + oldSrcLine = srcLine; + oldSrc = melsrc; + } + } + + if(bAutoSolve && !bConflictsOnly) + { + if(m_pOptions->m_bRunHistoryAutoMergeOnMergeStart) + slotMergeHistory(); + if(m_pOptions->m_bRunRegExpAutoMergeOnMergeStart) + slotRegExpAutoMerge(); + if(m_pldC != nullptr && !doRelevantChangesExist()) + Q_EMIT noRelevantChangesDetected(); + } + + int nrOfSolvedConflicts = 0; + int nrOfUnsolvedConflicts = 0; + int nrOfWhiteSpaceConflicts = 0; + + MergeLineList::iterator i; + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + if(i->bConflict) + ++nrOfUnsolvedConflicts; + else if(i->bDelta) + ++nrOfSolvedConflicts; + + if(i->bWhiteSpaceConflict) + ++nrOfWhiteSpaceConflicts; + } + + m_pTotalDiffStatus->setUnsolvedConflicts(nrOfUnsolvedConflicts); + m_pTotalDiffStatus->setSolvedConflicts(nrOfSolvedConflicts); + m_pTotalDiffStatus->setWhitespaceConflicts(nrOfWhiteSpaceConflicts); + + m_cursorXPos = 0; + m_cursorOldXPixelPos = 0; + m_cursorYPos = 0; + m_maxTextWidth = -1; + + //m_firstLine = 0; // Must not set line/column without scrolling there + //m_horizScrollOffset = 0; + + setModified(false); + + m_currentMergeLineIt = m_mergeLineList.begin(); + slotGoTop(); + + Q_EMIT updateAvailabilities(); + update(); +} + +void MergeResultWindow::setFirstLine(QtNumberType firstLine) +{ + m_firstLine = std::max(0, firstLine); + update(); +} + +void MergeResultWindow::setHorizScrollOffset(int horizScrollOffset) +{ + m_horizScrollOffset = std::max(0, horizScrollOffset); + update(); +} + +int MergeResultWindow::getMaxTextWidth() +{ + if(m_maxTextWidth < 0) + { + m_maxTextWidth = 0; + + MergeLineList::iterator mlIt = m_mergeLineList.begin(); + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + MergeEditLineList::iterator melIt; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt) + { + MergeEditLine& mel = *melIt; + QString s = mel.getString(m_pldA, m_pldB, m_pldC); + + QTextLayout textLayout(s, font(), this); + textLayout.beginLayout(); + textLayout.createLine(); + textLayout.endLayout(); + if(m_maxTextWidth < textLayout.maximumWidth()) + { + m_maxTextWidth = qCeil(textLayout.maximumWidth()); + } + } + } + m_maxTextWidth += 5; // cursorwidth + } + return m_maxTextWidth; +} + +int MergeResultWindow::getNofLines() const +{ + return m_nofLines; +} + +int MergeResultWindow::getVisibleTextAreaWidth() +{ + return width() - getTextXOffset(); +} + +int MergeResultWindow::getNofVisibleLines() +{ + QFontMetrics fm = fontMetrics(); + return (height() - 3) / fm.lineSpacing() - 2; +} + +int MergeResultWindow::getTextXOffset() +{ + QFontMetrics fm = fontMetrics(); + return 3 * Utils::getHorizontalAdvance(fm, '0'); +} + +void MergeResultWindow::resizeEvent(QResizeEvent* e) +{ + QWidget::resizeEvent(e); + Q_EMIT resizeSignal(); +} + +e_OverviewMode MergeResultWindow::getOverviewMode() +{ + return mOverviewMode; +} + +void MergeResultWindow::setOverviewMode(e_OverviewMode eOverviewMode) +{ + mOverviewMode = eOverviewMode; +} + +// Check whether we should ignore current delta when moving to next/previous delta +bool MergeResultWindow::checkOverviewIgnore(MergeLineList::iterator& i) +{ + if(mOverviewMode == e_OverviewMode::eOMNormal) return false; + if(mOverviewMode == e_OverviewMode::eOMAvsB) + return i->mergeDetails == e_MergeDetails::eCAdded || i->mergeDetails == e_MergeDetails::eCDeleted || i->mergeDetails == e_MergeDetails::eCChanged; + if(mOverviewMode == e_OverviewMode::eOMAvsC) + return i->mergeDetails == e_MergeDetails::eBAdded || i->mergeDetails == e_MergeDetails::eBDeleted || i->mergeDetails == e_MergeDetails::eBChanged; + if(mOverviewMode == e_OverviewMode::eOMBvsC) + return i->mergeDetails == e_MergeDetails::eBCAddedAndEqual || i->mergeDetails == e_MergeDetails::eBCDeleted || i->mergeDetails == e_MergeDetails::eBCChangedAndEqual; + return false; +} + +// Go to prev/next delta/conflict or first/last delta. +void MergeResultWindow::go(e_Direction eDir, e_EndPoint eEndPoint) +{ + Q_ASSERT(eDir == eUp || eDir == eDown); + MergeLineList::iterator i = m_currentMergeLineIt; + bool bSkipWhiteConflicts = !m_pOptions->m_bShowWhiteSpace; + if(eEndPoint == eEnd) + { + if(eDir == eUp) + i = m_mergeLineList.begin(); // first mergeline + else + i = --m_mergeLineList.end(); // last mergeline + + while(isItAtEnd(eDir == eUp, i) && !i->bDelta) + { + if(eDir == eUp) + ++i; // search downwards + else + --i; // search upwards + } + } + else if(eEndPoint == eDelta && isItAtEnd(eDir != eUp, i)) + { + do + { + if(eDir == eUp) + --i; + else + ++i; + } while(isItAtEnd(eDir != eUp, i) && (!i->bDelta || checkOverviewIgnore(i) || (bSkipWhiteConflicts && i->bWhiteSpaceConflict))); + } + else if(eEndPoint == eConflict && isItAtEnd(eDir != eUp, i)) + { + do + { + if(eDir == eUp) + --i; + else + ++i; + } while(isItAtEnd(eDir != eUp, i) && (!i->bConflict || (bSkipWhiteConflicts && i->bWhiteSpaceConflict))); + } + else if(isItAtEnd(eDir != eUp, i) && eEndPoint == eUnsolvedConflict) + { + do + { + if(eDir == eUp) + --i; + else + ++i; + } while(isItAtEnd(eDir != eUp, i) && !i->mergeEditLineList.begin()->isConflict()); + } + + if(isVisible()) + setFocus(); + + setFastSelector(i); +} + +bool MergeResultWindow::isDeltaAboveCurrent() +{ + bool bSkipWhiteConflicts = !m_pOptions->m_bShowWhiteSpace; + if(m_mergeLineList.empty()) return false; + MergeLineList::iterator i = m_currentMergeLineIt; + if(i == m_mergeLineList.begin()) return false; + do + { + --i; + if(i->bDelta && !checkOverviewIgnore(i) && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict)) return true; + } while(i != m_mergeLineList.begin()); + + return false; +} + +bool MergeResultWindow::isDeltaBelowCurrent() +{ + bool bSkipWhiteConflicts = !m_pOptions->m_bShowWhiteSpace; + if(m_mergeLineList.empty()) return false; + + MergeLineList::iterator i = m_currentMergeLineIt; + if(i != m_mergeLineList.end()) + { + ++i; + for(; i != m_mergeLineList.end(); ++i) + { + if(i->bDelta && !checkOverviewIgnore(i) && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict)) return true; + } + } + return false; +} + +bool MergeResultWindow::isConflictAboveCurrent() +{ + if(m_mergeLineList.empty()) return false; + MergeLineList::iterator i = m_currentMergeLineIt; + if(i == m_mergeLineList.begin()) return false; + + bool bSkipWhiteConflicts = !m_pOptions->m_bShowWhiteSpace; + + do + { + --i; + if(i->bConflict && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict)) return true; + } while(i != m_mergeLineList.begin()); + + return false; +} + +bool MergeResultWindow::isConflictBelowCurrent() +{ + MergeLineList::iterator i = m_currentMergeLineIt; + if(m_mergeLineList.empty()) return false; + + bool bSkipWhiteConflicts = !m_pOptions->m_bShowWhiteSpace; + + if(i != m_mergeLineList.end()) + { + ++i; + for(; i != m_mergeLineList.end(); ++i) + { + if(i->bConflict && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict)) return true; + } + } + return false; +} + +bool MergeResultWindow::isUnsolvedConflictAtCurrent() +{ + if(m_mergeLineList.empty()) return false; + MergeLineList::iterator i = m_currentMergeLineIt; + return i->mergeEditLineList.begin()->isConflict(); +} + +bool MergeResultWindow::isUnsolvedConflictAboveCurrent() +{ + if(m_mergeLineList.empty()) return false; + MergeLineList::iterator i = m_currentMergeLineIt; + if(i == m_mergeLineList.begin()) return false; + + do + { + --i; + if(i->mergeEditLineList.begin()->isConflict()) return true; + } while(i != m_mergeLineList.begin()); + + return false; +} + +bool MergeResultWindow::isUnsolvedConflictBelowCurrent() +{ + MergeLineList::iterator i = m_currentMergeLineIt; + if(m_mergeLineList.empty()) return false; + + if(i != m_mergeLineList.end()) + { + ++i; + for(; i != m_mergeLineList.end(); ++i) + { + if(i->mergeEditLineList.begin()->isConflict()) return true; + } + } + return false; +} + +void MergeResultWindow::slotGoTop() +{ + go(eUp, eEnd); +} + +void MergeResultWindow::slotGoCurrent() +{ + setFastSelector(m_currentMergeLineIt); +} + +void MergeResultWindow::slotGoBottom() +{ + go(eDown, eEnd); +} + +void MergeResultWindow::slotGoPrevDelta() +{ + go(eUp, eDelta); +} + +void MergeResultWindow::slotGoNextDelta() +{ + go(eDown, eDelta); +} + +void MergeResultWindow::slotGoPrevConflict() +{ + go(eUp, eConflict); +} + +void MergeResultWindow::slotGoNextConflict() +{ + go(eDown, eConflict); +} + +void MergeResultWindow::slotGoPrevUnsolvedConflict() +{ + go(eUp, eUnsolvedConflict); +} + +void MergeResultWindow::slotGoNextUnsolvedConflict() +{ + go(eDown, eUnsolvedConflict); +} + +/** The line is given as a index in the Diff3LineList. + The function calculates the corresponding iterator. */ +void MergeResultWindow::slotSetFastSelectorLine(LineIndex line) +{ + MergeLineList::iterator i; + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + if(line >= i->d3lLineIdx && line < i->d3lLineIdx + i->srcRangeLength) + { + //if ( i->bDelta ) + { + setFastSelector(i); + } + break; + } + } +} + +int MergeResultWindow::getNrOfUnsolvedConflicts(int* pNrOfWhiteSpaceConflicts) +{ + int nrOfUnsolvedConflicts = 0; + if(pNrOfWhiteSpaceConflicts != nullptr) + *pNrOfWhiteSpaceConflicts = 0; + + MergeLineList::iterator mlIt = m_mergeLineList.begin(); + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + MergeEditLineList::iterator melIt = ml.mergeEditLineList.begin(); + if(melIt->isConflict()) + { + ++nrOfUnsolvedConflicts; + if(ml.bWhiteSpaceConflict && pNrOfWhiteSpaceConflicts != nullptr) + ++*pNrOfWhiteSpaceConflicts; + } + } + + return nrOfUnsolvedConflicts; +} + +void MergeResultWindow::showNrOfConflicts() +{ + if(!m_pOptions->m_bShowInfoDialogs) + return; + int nrOfConflicts = 0; + MergeLineList::iterator i; + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + if(i->bConflict || i->bDelta) + ++nrOfConflicts; + } + QString totalInfo; + if(m_pTotalDiffStatus->isBinaryEqualAB() && m_pTotalDiffStatus->isBinaryEqualAC()) + totalInfo += i18n("All input files are binary equal."); + else if(m_pTotalDiffStatus->isTextEqualAB() && m_pTotalDiffStatus->isTextEqualAC()) + totalInfo += i18n("All input files contain the same text."); + else + { + if(m_pTotalDiffStatus->isBinaryEqualAB()) + totalInfo += i18n("Files %1 and %2 are binary equal.\n", i18n("A"), i18n("B")); + else if(m_pTotalDiffStatus->isTextEqualAB()) + totalInfo += i18n("Files %1 and %2 have equal text.\n", i18n("A"), i18n("B")); + if(m_pTotalDiffStatus->isBinaryEqualAC()) + totalInfo += i18n("Files %1 and %2 are binary equal.\n", i18n("A"), i18n("C")); + else if(m_pTotalDiffStatus->isTextEqualAC()) + totalInfo += i18n("Files %1 and %2 have equal text.\n", i18n("A"), i18n("C")); + if(m_pTotalDiffStatus->isBinaryEqualBC()) + totalInfo += i18n("Files %1 and %2 are binary equal.\n", i18n("B"), i18n("C")); + else if(m_pTotalDiffStatus->isTextEqualBC()) + totalInfo += i18n("Files %1 and %2 have equal text.\n", i18n("B"), i18n("C")); + } + + int nrOfUnsolvedConflicts = getNrOfUnsolvedConflicts(); + + KMessageBox::information(this, + i18n("Total number of conflicts: %1\n" + "Number of automatically solved conflicts: %2\n" + "Number of unsolved conflicts: %3\n" + "%4", + nrOfConflicts, nrOfConflicts - nrOfUnsolvedConflicts, + nrOfUnsolvedConflicts, totalInfo), + i18n("Conflicts")); +} + +void MergeResultWindow::setFastSelector(MergeLineList::iterator i) +{ + if(i == m_mergeLineList.end()) + return; + m_currentMergeLineIt = i; + Q_EMIT setFastSelectorRange(i->d3lLineIdx, i->srcRangeLength); + + int line1 = 0; + + MergeLineList::iterator mlIt = m_mergeLineList.begin(); + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + if(mlIt == m_currentMergeLineIt) + break; + line1 += mlIt->mergeEditLineList.size(); + } + + int nofLines = m_currentMergeLineIt->mergeEditLineList.size(); + int newFirstLine = getBestFirstLine(line1, nofLines, m_firstLine, getNofVisibleLines()); + if(newFirstLine != m_firstLine) + { + scrollVertically(newFirstLine - m_firstLine); + } + + if(m_selection.isEmpty()) + { + m_cursorXPos = 0; + m_cursorOldXPixelPos = 0; + m_cursorYPos = line1; + } + + update(); + updateSourceMask(); + Q_EMIT updateAvailabilities(); +} + +void MergeResultWindow::choose(e_SrcSelector selector) +{ + if(m_currentMergeLineIt == m_mergeLineList.end()) + return; + + setModified(); + + // First find range for which this change works. + MergeLine& ml = *m_currentMergeLineIt; + + MergeEditLineList::iterator melIt; + + // Now check if selector is active for this range already. + bool bActive = false; + + // Remove unneeded lines in the range. + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end();) + { + MergeEditLine& mel = *melIt; + if(mel.src() == selector) + bActive = true; + + if(mel.src() == selector || !mel.isEditableText() || mel.isModified()) + melIt = ml.mergeEditLineList.erase(melIt); + else + ++melIt; + } + + if(!bActive) // Selected source wasn't active. + { // Append the lines from selected source here at rangeEnd. + Diff3LineList::const_iterator d3llit = ml.id3l; + int j; + + for(j = 0; j < ml.srcRangeLength; ++j) + { + MergeEditLine mel(d3llit); + mel.setSource(selector, false); + ml.mergeEditLineList.push_back(mel); + + ++d3llit; + } + } + + if(!ml.mergeEditLineList.empty()) + { + // Remove all lines that are empty, because no src lines are there. + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end();) + { + MergeEditLine& mel = *melIt; + + LineRef srcLine = mel.src() == e_SrcSelector::A ? mel.id3l()->getLineA() : mel.src() == e_SrcSelector::B ? mel.id3l()->getLineB() : mel.src() == e_SrcSelector::C ? mel.id3l()->getLineC() : LineRef(); + + if(!srcLine.isValid()) + melIt = ml.mergeEditLineList.erase(melIt); + else + ++melIt; + } + } + + if(ml.mergeEditLineList.empty()) + { + // Insert a dummy line: + MergeEditLine mel(ml.id3l); + + if(bActive) + mel.setConflict(); // All src entries deleted => conflict + else + mel.setRemoved(selector); // No lines in corresponding src found. + + ml.mergeEditLineList.push_back(mel); + } + + if(m_cursorYPos >= m_nofLines) + { + m_cursorYPos = m_nofLines - 1; + m_cursorXPos = 0; + } + + m_maxTextWidth = -1; + update(); + updateSourceMask(); + Q_EMIT updateAvailabilities(); + showUnsolvedConflictsStatusMessage(); +} + +// bConflictsOnly: automatically choose for conflicts only (true) or for everywhere (false) +void MergeResultWindow::chooseGlobal(e_SrcSelector selector, bool bConflictsOnly, bool bWhiteSpaceOnly) +{ + resetSelection(); + + merge(false, selector, bConflictsOnly, bWhiteSpaceOnly); + setModified(true); + update(); + showUnsolvedConflictsStatusMessage(); +} + +void MergeResultWindow::slotAutoSolve() +{ + resetSelection(); + merge(true, e_SrcSelector::Invalid); + setModified(true); + update(); + showUnsolvedConflictsStatusMessage(); + showNrOfConflicts(); +} + +void MergeResultWindow::slotUnsolve() +{ + resetSelection(); + merge(false, e_SrcSelector::Invalid); + setModified(true); + update(); + showUnsolvedConflictsStatusMessage(); +} + +bool findParenthesesGroups(const QString& s, QStringList& sl) +{ + sl.clear(); + int i = 0; + std::list startPosStack; + int length = s.length(); + for(i = 0; i < length; ++i) + { + if(s[i] == '\\' && i + 1 < length && (s[i + 1] == '\\' || s[i + 1] == '(' || s[i + 1] == ')')) + { + ++i; + continue; + } + if(s[i] == '(') + { + startPosStack.push_back(i); + } + else if(s[i] == ')') + { + if(startPosStack.empty()) + return false; // Parentheses don't match + int startPos = startPosStack.back(); + startPosStack.pop_back(); + sl.push_back(s.mid(startPos + 1, i - startPos - 1)); + } + } + return startPosStack.empty(); // false if parentheses don't match +} + +QString calcHistorySortKey(const QString& keyOrder, QRegExp& matchedRegExpr, const QStringList& parenthesesGroupList) +{ + const QStringList keyOrderList = keyOrder.split(','); + QString key; + + for(const QString& keyIt : keyOrderList) + { + if(keyIt.isEmpty()) + continue; + bool bOk = false; + int groupIdx = keyIt.toInt(&bOk); + if(!bOk || groupIdx < 0 || groupIdx > parenthesesGroupList.size()) + continue; + QString s = matchedRegExpr.cap(groupIdx); + if(groupIdx == 0) + { + key += s + ' '; + continue; + } + + QString groupRegExp = parenthesesGroupList[groupIdx - 1]; + if(groupRegExp.indexOf('|') < 0 || groupRegExp.indexOf('(') >= 0) + { + bOk = false; + int i = s.toInt(&bOk); + if(bOk && i >= 0 && i < 10000) + { + s += QString(4 - s.size(), '0'); // This should help for correct sorting of numbers. + } + key += s + ' '; + } + else + { + // Assume that the groupRegExp consists of something like "Jan|Feb|Mar|Apr" + // s is the string that managed to match. + // Now we want to know at which position it occurred. e.g. Jan=0, Feb=1, Mar=2, etc. + QStringList sl = groupRegExp.split('|'); + int idx = sl.indexOf(s); + if(idx >= 0) + { + QString sIdx; + sIdx.setNum(idx); + Q_ASSERT(sIdx.size() <= 2); + sIdx += QString(2 - sIdx.size(), '0'); // Up to 99 words in the groupRegExp (more than 12 aren't expected) + key += sIdx + ' '; + } + } + } + return key; +} + +void MergeResultWindow::collectHistoryInformation( + e_SrcSelector src, Diff3LineList::const_iterator& iHistoryBegin, Diff3LineList::const_iterator& iHistoryEnd, + HistoryMap& historyMap, + std::list& hitList // list of iterators +) +{ + std::list::iterator itHitListFront = hitList.begin(); + Diff3LineList::const_iterator id3l = iHistoryBegin; + QString historyLead; + { + const LineData* pld = id3l->getLineData(src); + + historyLead = Utils::calcHistoryLead(pld->getLine()); + } + QRegExp historyStart(m_pOptions->m_historyStartRegExp); + if(id3l == iHistoryEnd) + return; + ++id3l; // Skip line with "$Log ... $" + QRegExp newHistoryEntry(m_pOptions->m_historyEntryStartRegExp); + QStringList parenthesesGroups; + findParenthesesGroups(m_pOptions->m_historyEntryStartRegExp, parenthesesGroups); + QString key; + MergeEditLineList melList; + bool bPrevLineIsEmpty = true; + bool bUseRegExp = !m_pOptions->m_historyEntryStartRegExp.isEmpty(); + for(; id3l != iHistoryEnd; ++id3l) + { + const LineData* pld = id3l->getLineData(src); + if(!pld) continue; + + const QString& oriLine = pld->getLine(); + if(historyLead.isEmpty()) historyLead = Utils::calcHistoryLead(oriLine); + QString sLine = oriLine.mid(historyLead.length()); + if((!bUseRegExp && !sLine.trimmed().isEmpty() && bPrevLineIsEmpty) || (bUseRegExp && newHistoryEntry.exactMatch(sLine))) + { + if(!key.isEmpty() && !melList.empty()) + { + // Only insert new HistoryMapEntry if key not found; in either case p.first is a valid iterator to element key. + std::pair p = historyMap.insert(HistoryMap::value_type(key, HistoryMapEntry())); + HistoryMapEntry& hme = p.first->second; + if(src == e_SrcSelector::A) hme.mellA = melList; + if(src == e_SrcSelector::B) hme.mellB = melList; + if(src == e_SrcSelector::C) hme.mellC = melList; + if(p.second) // Not in list yet? + { + hitList.insert(itHitListFront, p.first); + } + } + + if(!bUseRegExp) + key = sLine; + else + key = calcHistorySortKey(m_pOptions->m_historyEntryStartSortKeyOrder, newHistoryEntry, parenthesesGroups); + + melList.clear(); + melList.push_back(MergeEditLine(id3l, src)); + } + else if(!historyStart.exactMatch(oriLine)) + { + melList.push_back(MergeEditLine(id3l, src)); + } + + bPrevLineIsEmpty = sLine.trimmed().isEmpty(); + } + if(!key.isEmpty()) + { + // Only insert new HistoryMapEntry if key not found; in either case p.first is a valid iterator to element key. + std::pair p = historyMap.insert(HistoryMap::value_type(key, HistoryMapEntry())); + HistoryMapEntry& hme = p.first->second; + if(src == e_SrcSelector::A) hme.mellA = melList; + if(src == e_SrcSelector::B) hme.mellB = melList; + if(src == e_SrcSelector::C) hme.mellC = melList; + if(p.second) // Not in list yet? + { + hitList.insert(itHitListFront, p.first); + } + } + // End of the history +} + +MergeEditLineList& MergeResultWindow::HistoryMapEntry::choice(bool bThreeInputs) +{ + if(!bThreeInputs) + return mellA.empty() ? mellB : mellA; + else + { + if(mellA.empty()) + return mellC.empty() ? mellB : mellC; // A doesn't exist, return one that exists + else if(!mellB.empty() && !mellC.empty()) + { // A, B and C exist + return mellA; + } + else + return mellB.empty() ? mellB : mellC; // A exists, return the one that doesn't exist + } +} + +bool MergeResultWindow::HistoryMapEntry::staysInPlace(bool bThreeInputs, Diff3LineList::const_iterator& iHistoryEnd) +{ + // The entry should stay in place if the decision made by the automerger is correct. + Diff3LineList::const_iterator& iHistoryLast = iHistoryEnd; + --iHistoryLast; + if(!bThreeInputs) + { + if(!mellA.empty() && !mellB.empty() && mellA.begin()->id3l() == mellB.begin()->id3l() && + mellA.back().id3l() == iHistoryLast && mellB.back().id3l() == iHistoryLast) + { + iHistoryEnd = mellA.begin()->id3l(); + return true; + } + else + { + return false; + } + } + else + { + if(!mellA.empty() && !mellB.empty() && !mellC.empty() && mellA.begin()->id3l() == mellB.begin()->id3l() && mellA.begin()->id3l() == mellC.begin()->id3l() && mellA.back().id3l() == iHistoryLast && mellB.back().id3l() == iHistoryLast && mellC.back().id3l() == iHistoryLast) + { + iHistoryEnd = mellA.begin()->id3l(); + return true; + } + else + { + return false; + } + } +} + +void MergeResultWindow::slotMergeHistory() +{ + Diff3LineList::const_iterator iD3LHistoryBegin; + Diff3LineList::const_iterator iD3LHistoryEnd; + int d3lHistoryBeginLineIdx = -1; + int d3lHistoryEndLineIdx = -1; + + // Search for history start, history end in the diff3LineList + m_pDiff3LineList->findHistoryRange(QRegExp(m_pOptions->m_historyStartRegExp), m_pldC != nullptr, iD3LHistoryBegin, iD3LHistoryEnd, d3lHistoryBeginLineIdx, d3lHistoryEndLineIdx); + + if(iD3LHistoryBegin != m_pDiff3LineList->end()) + { + // Now collect the historyMap information + HistoryMap historyMap; + std::list hitList; + if(m_pldC == nullptr) + { + collectHistoryInformation(e_SrcSelector::A, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList); + collectHistoryInformation(e_SrcSelector::B, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList); + } + else + { + collectHistoryInformation(e_SrcSelector::A, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList); + collectHistoryInformation(e_SrcSelector::B, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList); + collectHistoryInformation(e_SrcSelector::C, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList); + } + + Diff3LineList::const_iterator iD3LHistoryOrigEnd = iD3LHistoryEnd; + + bool bHistoryMergeSorting = m_pOptions->m_bHistoryMergeSorting && !m_pOptions->m_historyEntryStartSortKeyOrder.isEmpty() && + !m_pOptions->m_historyEntryStartRegExp.isEmpty(); + + if(m_pOptions->m_maxNofHistoryEntries == -1) + { + // Remove parts from the historyMap and hitList that stay in place + if(bHistoryMergeSorting) + { + while(!historyMap.empty()) + { + HistoryMap::iterator hMapIt = historyMap.begin(); + if(hMapIt->second.staysInPlace(m_pldC != nullptr, iD3LHistoryEnd)) + historyMap.erase(hMapIt); + else + break; + } + } + else + { + while(!hitList.empty()) + { + HistoryMap::iterator hMapIt = hitList.back(); + if(hMapIt->second.staysInPlace(m_pldC != nullptr, iD3LHistoryEnd)) + hitList.pop_back(); + else + break; + } + } + while(iD3LHistoryOrigEnd != iD3LHistoryEnd) + { + --iD3LHistoryOrigEnd; + --d3lHistoryEndLineIdx; + } + } + + MergeLineList::iterator iMLLStart = splitAtDiff3LineIdx(d3lHistoryBeginLineIdx); + MergeLineList::iterator iMLLEnd = splitAtDiff3LineIdx(d3lHistoryEndLineIdx); + // Now join all MergeLines in the history + MergeLineList::iterator i = iMLLStart; + if(i != iMLLEnd) + { + ++i; + while(i != iMLLEnd) + { + iMLLStart->join(*i); + i = m_mergeLineList.erase(i); + } + } + iMLLStart->mergeEditLineList.clear(); + // Now insert the complete history into the first MergeLine of the history + iMLLStart->mergeEditLineList.push_back(MergeEditLine(iD3LHistoryBegin, m_pldC == nullptr ? e_SrcSelector::B : e_SrcSelector::C)); + QString lead = Utils::calcHistoryLead(iD3LHistoryBegin->getString(e_SrcSelector::A)); + MergeEditLine mel(m_pDiff3LineList->end()); + mel.setString(lead); + iMLLStart->mergeEditLineList.push_back(mel); + + int historyCount = 0; + if(bHistoryMergeSorting) + { + // Create a sorted history + HistoryMap::reverse_iterator hmit; + for(hmit = historyMap.rbegin(); hmit != historyMap.rend(); ++hmit) + { + if(historyCount == m_pOptions->m_maxNofHistoryEntries) + break; + ++historyCount; + HistoryMapEntry& hme = hmit->second; + MergeEditLineList& mell = hme.choice(m_pldC != nullptr); + if(!mell.empty()) + iMLLStart->mergeEditLineList.splice(iMLLStart->mergeEditLineList.end(), mell, mell.begin(), mell.end()); + } + } + else + { + // Create history in order of appearance + std::list::iterator hlit; + for(hlit = hitList.begin(); hlit != hitList.end(); ++hlit) + { + if(historyCount == m_pOptions->m_maxNofHistoryEntries) + break; + ++historyCount; + HistoryMapEntry& hme = (*hlit)->second; + MergeEditLineList& mell = hme.choice(m_pldC != nullptr); + if(!mell.empty()) + iMLLStart->mergeEditLineList.splice(iMLLStart->mergeEditLineList.end(), mell, mell.begin(), mell.end()); + } + // If the end of start is empty and the first line at the end is empty remove the last line of start + if(!iMLLStart->mergeEditLineList.empty() && !iMLLEnd->mergeEditLineList.empty()) + { + QString lastLineOfStart = iMLLStart->mergeEditLineList.back().getString(m_pldA, m_pldB, m_pldC); + QString firstLineOfEnd = iMLLEnd->mergeEditLineList.front().getString(m_pldA, m_pldB, m_pldC); + if(lastLineOfStart.mid(lead.length()).trimmed().isEmpty() && firstLineOfEnd.mid(lead.length()).trimmed().isEmpty()) + iMLLStart->mergeEditLineList.pop_back(); + } + } + setFastSelector(iMLLStart); + update(); + } +} + +void MergeResultWindow::slotRegExpAutoMerge() +{ + if(m_pOptions->m_autoMergeRegExp.isEmpty()) + return; + + QRegExp vcsKeywords(m_pOptions->m_autoMergeRegExp); + MergeLineList::iterator i; + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + if(i->bConflict) + { + Diff3LineList::const_iterator id3l = i->id3l; + if(vcsKeywords.exactMatch(id3l->getString(e_SrcSelector::A)) && + vcsKeywords.exactMatch(id3l->getString(e_SrcSelector::B)) && + (m_pldC == nullptr || vcsKeywords.exactMatch(id3l->getString(e_SrcSelector::C)))) + { + MergeEditLine& mel = *i->mergeEditLineList.begin(); + mel.setSource(m_pldC == nullptr ? e_SrcSelector::B : e_SrcSelector::C, false); + splitAtDiff3LineIdx(i->d3lLineIdx + 1); + } + } + } + update(); +} + +// This doesn't detect user modifications and should only be called after automatic merge +// This will only do something for three file merge. +// Irrelevant changes are those where all contributions from B are already contained in C. +// Also irrelevant are conflicts automatically solved (automerge regexp and history automerge) +// Precondition: The VCS-keyword would also be C. +bool MergeResultWindow::doRelevantChangesExist() +{ + if(m_pldC == nullptr || m_mergeLineList.size() <= 1) + return true; + + MergeLineList::iterator i; + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + if((i->bConflict && i->mergeEditLineList.begin()->src() != e_SrcSelector::C) || i->srcSelect == e_SrcSelector::B) + { + return true; + } + } + + return false; +} + +// Returns the iterator to the MergeLine after the split +MergeLineList::iterator MergeResultWindow::splitAtDiff3LineIdx(int d3lLineIdx) +{ + MergeLineList::iterator i; + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + if(i->d3lLineIdx == d3lLineIdx) + { + // No split needed, this is the beginning of a MergeLine + return i; + } + else if(i->d3lLineIdx > d3lLineIdx) + { + // The split must be in the previous MergeLine + --i; + MergeLine& ml = *i; + MergeLine newML; + ml.split(newML, d3lLineIdx); + ++i; + return m_mergeLineList.insert(i, newML); + } + } + // The split must be in the previous MergeLine + --i; + MergeLine& ml = *i; + MergeLine newML; + ml.split(newML, d3lLineIdx); + ++i; + return m_mergeLineList.insert(i, newML); +} + +void MergeResultWindow::slotSplitDiff(int firstD3lLineIdx, int lastD3lLineIdx) +{ + if(lastD3lLineIdx >= 0) + splitAtDiff3LineIdx(lastD3lLineIdx + 1); + setFastSelector(splitAtDiff3LineIdx(firstD3lLineIdx)); +} + +void MergeResultWindow::slotJoinDiffs(int firstD3lLineIdx, int lastD3lLineIdx) +{ + MergeLineList::iterator i; + MergeLineList::iterator iMLLStart = m_mergeLineList.end(); + MergeLineList::iterator iMLLEnd = m_mergeLineList.end(); + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + MergeLine& ml = *i; + if(firstD3lLineIdx >= ml.d3lLineIdx && firstD3lLineIdx < ml.d3lLineIdx + ml.srcRangeLength) + { + iMLLStart = i; + } + if(lastD3lLineIdx >= ml.d3lLineIdx && lastD3lLineIdx < ml.d3lLineIdx + ml.srcRangeLength) + { + iMLLEnd = i; + ++iMLLEnd; + break; + } + } + + bool bJoined = false; + for(i = iMLLStart; i != iMLLEnd && i != m_mergeLineList.end();) + { + if(i == iMLLStart) + { + ++i; + } + else + { + iMLLStart->join(*i); + i = m_mergeLineList.erase(i); + bJoined = true; + } + } + if(bJoined) + { + iMLLStart->mergeEditLineList.clear(); + // Insert a conflict line as placeholder + iMLLStart->mergeEditLineList.push_back(MergeEditLine(iMLLStart->id3l)); + } + setFastSelector(iMLLStart); +} + +void MergeResultWindow::myUpdate(int afterMilliSecs) +{ + if(m_delayedDrawTimer) + killTimer(m_delayedDrawTimer); + m_bMyUpdate = true; + m_delayedDrawTimer = startTimer(afterMilliSecs); +} + +void MergeResultWindow::timerEvent(QTimerEvent*) +{ + killTimer(m_delayedDrawTimer); + m_delayedDrawTimer = 0; + + if(m_bMyUpdate) + { + update(); + m_bMyUpdate = false; + } + + if(m_scrollDeltaX != 0 || m_scrollDeltaY != 0) + { + m_selection.end(m_selection.getLastLine() + m_scrollDeltaY, m_selection.getLastPos() + m_scrollDeltaX); + Q_EMIT scrollMergeResultWindow(m_scrollDeltaX, m_scrollDeltaY); + killTimer(m_delayedDrawTimer); + m_delayedDrawTimer = startTimer(50); + } +} + +QVector MergeResultWindow::getTextLayoutForLine(int line, const QString& str, QTextLayout& textLayout) +{ + // tabs + QTextOption textOption; +#if QT_VERSION < QT_VERSION_CHECK(5, 10, 0) + textOption.setTabStop(QFontMetricsF(font()).width(' ') * m_pOptions->m_tabSize); +#elif QT_VERSION < QT_VERSION_CHECK(5, 12, 0) + textOption.setTabStopDistance(QFontMetricsF(font()).width(' ') * m_pOptions->m_tabSize); +#else + textOption.setTabStopDistance(QFontMetricsF(font()).horizontalAdvance(' ') * m_pOptions->m_tabSize); +#endif + + if(m_pOptions->m_bShowWhiteSpaceCharacters) + { + textOption.setFlags(QTextOption::ShowTabsAndSpaces); + } + textLayout.setTextOption(textOption); + + if(m_pOptions->m_bShowWhiteSpaceCharacters) + { + // This additional format is only necessary for the tab arrow + QVector formats; + QTextLayout::FormatRange formatRange; + formatRange.start = 0; + formatRange.length = str.length(); + formatRange.format.setFont(font()); + formats.append(formatRange); + textLayout.setFormats(formats); + } + QVector selectionFormat; + textLayout.beginLayout(); + if(m_selection.lineWithin(line)) + { + int firstPosInText = m_selection.firstPosInLine(line); + int lastPosInText = m_selection.lastPosInLine(line); + int lengthInText = std::max(0, lastPosInText - firstPosInText); + if(lengthInText > 0) + m_selection.bSelectionContainsData = true; + + QTextLayout::FormatRange selection; + selection.start = firstPosInText; + selection.length = lengthInText; + selection.format.setBackground(palette().highlight()); + selection.format.setForeground(palette().highlightedText().color()); + selectionFormat.push_back(selection); + } + QTextLine textLine = textLayout.createLine(); + textLine.setPosition(QPointF(0, fontMetrics().leading())); + textLayout.endLayout(); + int cursorWidth = 5; + if(m_pOptions->m_bRightToLeftLanguage) + textLayout.setPosition(QPointF(width() - textLayout.maximumWidth() - getTextXOffset() + m_horizScrollOffset - cursorWidth, 0)); + else + textLayout.setPosition(QPointF(getTextXOffset() - m_horizScrollOffset, 0)); + return selectionFormat; +} + +void MergeResultWindow::writeLine( + RLPainter& p, int line, const QString& str, + e_SrcSelector srcSelect, e_MergeDetails mergeDetails, int rangeMark, bool bUserModified, bool bLineRemoved, bool bWhiteSpaceConflict) +{ + const QFontMetrics& fm = fontMetrics(); + int fontHeight = fm.lineSpacing(); + int fontAscent = fm.ascent(); + + int topLineYOffset = 0; + int xOffset = getTextXOffset(); + + int yOffset = (line - m_firstLine) * fontHeight; + if(yOffset < 0 || yOffset > height()) + return; + + yOffset += topLineYOffset; + + QString srcName = QChar(' '); + if(bUserModified) + srcName = QChar('m'); + else if(srcSelect == e_SrcSelector::A && mergeDetails != e_MergeDetails::eNoChange) + srcName = i18n("A"); + else if(srcSelect == e_SrcSelector::B) + srcName = i18n("B"); + else if(srcSelect == e_SrcSelector::C) + srcName = i18n("C"); + + if(rangeMark & 4) + { + p.fillRect(xOffset, yOffset, width(), fontHeight, m_pOptions->m_currentRangeBgColor); + } + + if((srcSelect > e_SrcSelector::None || bUserModified) && !bLineRemoved) + { + if(!m_pOptions->m_bRightToLeftLanguage) + p.setClipRect(QRectF(xOffset, 0, width() - xOffset, height())); + else + p.setClipRect(QRectF(0, 0, width() - xOffset, height())); + + int outPos = 0; + QString s; + int size = str.length(); + for(int i = 0; i < size; ++i) + { + int spaces = 1; + if(str[i] == '\t') + { + spaces = tabber(outPos, m_pOptions->m_tabSize); + for(int j = 0; j < spaces; ++j) + s += ' '; + } + else + { + s += str[i]; + } + outPos += spaces; + } + + p.setPen(m_pOptions->m_fgColor); + + QTextLayout textLayout(str, font(), this); + QVector selectionFormat = getTextLayoutForLine(line, str, textLayout); + textLayout.draw(&p, QPointF(0, yOffset), selectionFormat); + + if(line == m_cursorYPos) + { + m_cursorXPixelPos = qCeil(textLayout.lineAt(0).cursorToX(m_cursorXPos)); + if(m_pOptions->m_bRightToLeftLanguage) + m_cursorXPixelPos += qCeil(textLayout.position().x() - m_horizScrollOffset); + } + + p.setClipping(false); + + p.setPen(m_pOptions->m_fgColor); + + p.drawText(1, yOffset + fontAscent, srcName, true); + } + else if(bLineRemoved) + { + p.setPen(m_pOptions->m_colorForConflict); + p.drawText(xOffset, yOffset + fontAscent, i18n("")); + p.drawText(1, yOffset + fontAscent, srcName); + if(m_cursorYPos == line) m_cursorXPos = 0; + } + else if(srcSelect == e_SrcSelector::None) + { + p.setPen(m_pOptions->m_colorForConflict); + if(bWhiteSpaceConflict) + p.drawText(xOffset, yOffset + fontAscent, i18n("")); + else + p.drawText(xOffset, yOffset + fontAscent, i18n("")); + p.drawText(1, yOffset + fontAscent, "?"); + if(m_cursorYPos == line) m_cursorXPos = 0; + } + else + Q_ASSERT(true); + + xOffset -= Utils::getHorizontalAdvance(fm, '0'); + p.setPen(m_pOptions->m_fgColor); + if(rangeMark & 1) // begin mark + { + p.drawLine(xOffset, yOffset + 1, xOffset, yOffset + fontHeight / 2); + p.drawLine(xOffset, yOffset + 1, xOffset - 2, yOffset + 1); + } + else + { + p.drawLine(xOffset, yOffset, xOffset, yOffset + fontHeight / 2); + } + + if(rangeMark & 2) // end mark + { + p.drawLine(xOffset, yOffset + fontHeight / 2, xOffset, yOffset + fontHeight - 1); + p.drawLine(xOffset, yOffset + fontHeight - 1, xOffset - 2, yOffset + fontHeight - 1); + } + else + { + p.drawLine(xOffset, yOffset + fontHeight / 2, xOffset, yOffset + fontHeight); + } + + if(rangeMark & 4) + { + p.fillRect(xOffset + 3, yOffset, 3, fontHeight, m_pOptions->m_fgColor); + /* p.setPen( blue ); + p.drawLine( xOffset+2, yOffset, xOffset+2, yOffset+fontHeight-1 ); + p.drawLine( xOffset+3, yOffset, xOffset+3, yOffset+fontHeight-1 );*/ + } +} + +void MergeResultWindow::setPaintingAllowed(bool bPaintingAllowed) +{ + setUpdatesEnabled(bPaintingAllowed); + if(!bPaintingAllowed) + { + m_currentMergeLineIt = m_mergeLineList.end(); + reset(); + } + else + update(); +} + +void MergeResultWindow::paintEvent(QPaintEvent*) +{ + if(m_pDiff3LineList == nullptr) + return; + + bool bOldSelectionContainsData = m_selection.selectionContainsData(); + const QFontMetrics& fm = fontMetrics(); + int fontWidth = Utils::getHorizontalAdvance(fm, '0'); + + if(!m_bCursorUpdate) // Don't redraw everything for blinking cursor? + { + m_selection.bSelectionContainsData = false; + const auto dpr = devicePixelRatioF(); + if(size() * dpr != m_pixmap.size()) + { + m_pixmap = QPixmap(size() * dpr); + m_pixmap.setDevicePixelRatio(dpr); + } + + RLPainter p(&m_pixmap, m_pOptions->m_bRightToLeftLanguage, width(), fontWidth); + p.setFont(font()); + p.QPainter::fillRect(rect(), m_pOptions->m_bgColor); + + //int visibleLines = height() / fontHeight; + + int lastVisibleLine = m_firstLine + getNofVisibleLines() + 5; + LineRef line = 0; + MergeLineList::iterator mlIt = m_mergeLineList.begin(); + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + if(line > lastVisibleLine || line + ml.mergeEditLineList.size() < m_firstLine) + { + line += ml.mergeEditLineList.size(); + } + else + { + MergeEditLineList::iterator melIt; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt) + { + if(line >= m_firstLine && line <= lastVisibleLine) + { + MergeEditLine& mel = *melIt; + MergeEditLineList::iterator melIt1 = melIt; + ++melIt1; + + int rangeMark = 0; + if(melIt == ml.mergeEditLineList.begin()) rangeMark |= 1; // Begin range mark + if(melIt1 == ml.mergeEditLineList.end()) rangeMark |= 2; // End range mark + + if(mlIt == m_currentMergeLineIt) rangeMark |= 4; // Mark of the current line + + QString s; + s = mel.getString(m_pldA, m_pldB, m_pldC); + + writeLine(p, line, s, mel.src(), ml.mergeDetails, rangeMark, + mel.isModified(), mel.isRemoved(), ml.bWhiteSpaceConflict); + } + ++line; + } + } + } + + if(line != m_nofLines) + { + m_nofLines = line; + + Q_EMIT resizeSignal(); + } + + p.end(); + } + + QPainter painter(this); + + if(!m_bCursorUpdate) + painter.drawPixmap(0, 0, m_pixmap); + else + { + painter.drawPixmap(0, 0, m_pixmap); // Draw everything. (Internally cursor rect is clipped anyway.) + m_bCursorUpdate = false; + } + + if(m_bCursorOn && hasFocus() && m_cursorYPos >= m_firstLine) + { + painter.setPen(m_pOptions->m_fgColor); + + QString str = getString(m_cursorYPos); + QTextLayout textLayout(str, font(), this); + getTextLayoutForLine(m_cursorYPos, str, textLayout); + textLayout.drawCursor(&painter, QPointF(0, (m_cursorYPos - m_firstLine) * fontMetrics().lineSpacing()), m_cursorXPos); + } + + painter.end(); + + if(!bOldSelectionContainsData && m_selection.selectionContainsData()) + Q_EMIT newSelection(); +} + +void MergeResultWindow::updateSourceMask() +{ + int srcMask = 0; + int enabledMask = 0; + if(!hasFocus() || m_pDiff3LineList == nullptr || !updatesEnabled() || m_currentMergeLineIt == m_mergeLineList.end()) + { + srcMask = 0; + enabledMask = 0; + } + else + { + enabledMask = m_pldC == nullptr ? 3 : 7; + MergeLine& ml = *m_currentMergeLineIt; + + srcMask = 0; + bool bModified = false; + MergeEditLineList::iterator melIt; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt) + { + MergeEditLine& mel = *melIt; + if(mel.src() == e_SrcSelector::A) srcMask |= 1; + if(mel.src() == e_SrcSelector::B) srcMask |= 2; + if(mel.src() == e_SrcSelector::C) srcMask |= 4; + if(mel.isModified() || !mel.isEditableText()) bModified = true; + } + + if(ml.mergeDetails == e_MergeDetails::eNoChange) + { + srcMask = 0; + enabledMask = bModified ? 1 : 0; + } + } + + Q_EMIT sourceMask(srcMask, enabledMask); +} + +void MergeResultWindow::focusInEvent(QFocusEvent* e) +{ + updateSourceMask(); + QWidget::focusInEvent(e); +} + +LineRef MergeResultWindow::convertToLine(int y) +{ + const QFontMetrics& fm = fontMetrics(); + int fontHeight = fm.lineSpacing(); + int topLineYOffset = 0; + + int yOffset = topLineYOffset - m_firstLine * fontHeight; + + LineRef line = std::min((y - yOffset) / fontHeight, m_nofLines - 1); + return line; +} + +void MergeResultWindow::mousePressEvent(QMouseEvent* e) +{ + m_bCursorOn = true; + + int xOffset = getTextXOffset(); + + LineRef line = convertToLine(e->y()); + QString s = getString(line); + QTextLayout textLayout(s, font(), this); + getTextLayoutForLine(line, s, textLayout); + QtNumberType pos = textLayout.lineAt(0).xToCursor(e->x() - textLayout.position().x()); + + bool bLMB = e->button() == Qt::LeftButton; + bool bMMB = e->button() == Qt::MiddleButton; + bool bRMB = e->button() == Qt::RightButton; + + if((bLMB && (e->x() < xOffset)) || bRMB) // Fast range selection + { + m_cursorXPos = 0; + m_cursorOldXPixelPos = 0; + m_cursorYPos = std::max((LineRef::LineType)line, 0); + int l = 0; + MergeLineList::iterator i = m_mergeLineList.begin(); + for(i = m_mergeLineList.begin(); i != m_mergeLineList.end(); ++i) + { + if(l == line) + break; + + l += i->mergeEditLineList.size(); + if(l > line) + break; + } + m_selection.reset(); // Disable current selection + + m_bCursorOn = true; + setFastSelector(i); + + if(bRMB) + { + Q_EMIT showPopupMenu(QCursor::pos()); + } + } + else if(bLMB) // Normal cursor placement + { + pos = std::max(pos, 0); + line = std::max((LineRef::LineType)line, 0); + if(e->QInputEvent::modifiers() & Qt::ShiftModifier) + { + if(!m_selection.isValidFirstLine()) + m_selection.start(line, pos); + m_selection.end(line, pos); + } + else + { + // Selection + m_selection.reset(); + m_selection.start(line, pos); + m_selection.end(line, pos); + } + m_cursorXPos = pos; + m_cursorXPixelPos = qCeil(textLayout.lineAt(0).cursorToX(pos)); + if(m_pOptions->m_bRightToLeftLanguage) + m_cursorXPixelPos += qCeil(textLayout.position().x() - m_horizScrollOffset); + m_cursorOldXPixelPos = m_cursorXPixelPos; + m_cursorYPos = line; + + update(); + //showStatusLine( line, m_winIdx, m_pFilename, m_pDiff3LineList, m_pStatusBar ); + } + else if(bMMB) // Paste clipboard + { + pos = std::max(pos, 0); + line = std::max((LineRef::LineType)line, 0); + + m_selection.reset(); + m_cursorXPos = pos; + m_cursorOldXPixelPos = m_cursorXPixelPos; + m_cursorYPos = line; + + pasteClipboard(true); + } +} + +void MergeResultWindow::mouseDoubleClickEvent(QMouseEvent* e) +{ + if(e->button() == Qt::LeftButton) + { + LineRef line = convertToLine(e->y()); + QString s = getString(line); + QTextLayout textLayout(s, font(), this); + getTextLayoutForLine(line, s, textLayout); + int pos = textLayout.lineAt(0).xToCursor(e->x() - textLayout.position().x()); + m_cursorXPos = pos; + m_cursorOldXPixelPos = m_cursorXPixelPos; + m_cursorYPos = line; + + if(!s.isEmpty()) + { + int pos1, pos2; + + Utils::calcTokenPos(s, pos, pos1, pos2); + + resetSelection(); + m_selection.start(line, pos1); + m_selection.end(line, pos2); + + update(); + // Q_EMIT selectionEnd() happens in the mouseReleaseEvent. + } + } +} + +void MergeResultWindow::mouseReleaseEvent(QMouseEvent* e) +{ + if(e->button() == Qt::LeftButton) + { + if(m_delayedDrawTimer) + { + killTimer(m_delayedDrawTimer); + m_delayedDrawTimer = 0; + } + + if(m_selection.isValidFirstLine()) + { + Q_EMIT selectionEnd(); + } + + Q_EMIT updateAvailabilities(); + } +} + +void MergeResultWindow::mouseMoveEvent(QMouseEvent* e) +{ + LineRef line = convertToLine(e->y()); + QString s = getString(line); + QTextLayout textLayout(s, font(), this); + getTextLayoutForLine(line, s, textLayout); + int pos = textLayout.lineAt(0).xToCursor(e->x() - textLayout.position().x()); + m_cursorXPos = pos; + m_cursorOldXPixelPos = m_cursorXPixelPos; + m_cursorYPos = line; + if(m_selection.isValidFirstLine()) + { + m_selection.end(line, pos); + myUpdate(0); + + //showStatusLine( line, m_winIdx, m_pFilename, m_pDiff3LineList, m_pStatusBar ); + + // Scroll because mouse moved out of the window + const QFontMetrics& fm = fontMetrics(); + int fontWidth = Utils::getHorizontalAdvance(fm, '0'); + int topLineYOffset = 0; + int deltaX = 0; + int deltaY = 0; + if(!m_pOptions->m_bRightToLeftLanguage) + { + if(e->x() < getTextXOffset()) deltaX = -1; + if(e->x() > width()) deltaX = +1; + } + else + { + if(e->x() > width() - 1 - getTextXOffset()) deltaX = -1; + if(e->x() < fontWidth) deltaX = +1; + } + if(e->y() < topLineYOffset) deltaY = -1; + if(e->y() > height()) deltaY = +1; + m_scrollDeltaX = deltaX; + m_scrollDeltaY = deltaY; + if(deltaX != 0 || deltaY != 0) + { + Q_EMIT scrollMergeResultWindow(deltaX, deltaY); + } + } +} + +void MergeResultWindow::slotCursorUpdate() +{ + m_cursorTimer.stop(); + m_bCursorOn = !m_bCursorOn; + + if(isVisible()) + { + m_bCursorUpdate = true; + + const QFontMetrics& fm = fontMetrics(); + int topLineYOffset = 0; + int yOffset = (m_cursorYPos - m_firstLine) * fm.lineSpacing() + topLineYOffset; + + repaint(0, yOffset, width(), fm.lineSpacing() + 2); + + m_bCursorUpdate = false; + } + + m_cursorTimer.start(500); +} + +void MergeResultWindow::wheelEvent(QWheelEvent* pWheelEvent) +{ + QPoint delta = pWheelEvent->angleDelta(); + //Block diagonal scrolling easily generated unintentionally with track pads. + if(delta.y() != 0 && abs(delta.y()) > abs(delta.x()) && mVScrollBar != nullptr) + { + pWheelEvent->accept(); + QCoreApplication::postEvent(mVScrollBar, new QWheelEvent(*pWheelEvent)); + } +} + +bool MergeResultWindow::event(QEvent* e) +{ + if(e->type() == QEvent::KeyPress) + { + QKeyEvent* ke = static_cast(e); + if(ke->key() == Qt::Key_Tab) + { + // special tab handling here to avoid moving focus + keyPressEvent(ke); + return true; + } + } + return QWidget::event(e); +} +void MergeResultWindow::keyPressEvent(QKeyEvent* e) +{ + int y = m_cursorYPos; + MergeLineList::iterator mlIt; + MergeEditLineList::iterator melIt; + if(!calcIteratorFromLineNr(y, mlIt, melIt)) + { + // no data loaded or y out of bounds + e->ignore(); + return; + } + + QString str = melIt->getString(m_pldA, m_pldB, m_pldC); + int x = m_cursorXPos; + + QTextLayout textLayoutOrig(str, font(), this); + getTextLayoutForLine(y, str, textLayoutOrig); + + bool bCtrl = (e->QInputEvent::modifiers() & Qt::ControlModifier) != 0; + bool bShift = (e->QInputEvent::modifiers() & Qt::ShiftModifier) != 0; +#ifdef Q_OS_WIN + bool bAlt = (e->QInputEvent::modifiers() & Qt::AltModifier) != 0; + if(bCtrl && bAlt) + { + bCtrl = false; + bAlt = false; + } // AltGr-Key pressed. +#endif + + bool bYMoveKey = false; + // Special keys + switch(e->key()) + { + case Qt::Key_Escape: + //case Qt::Key_Tab: + case Qt::Key_Backtab: + break; + case Qt::Key_Delete: { + if(deleteSelection2(str, x, y, mlIt, melIt) || !melIt->isEditableText()) break; + + if(x >= str.length()) + { + if(y < m_nofLines - 1) + { + setModified(); + MergeLineList::iterator mlIt1; + MergeEditLineList::iterator melIt1; + if(calcIteratorFromLineNr(y + 1, mlIt1, melIt1) && melIt1->isEditableText()) + { + QString s2 = melIt1->getString(m_pldA, m_pldB, m_pldC); + melIt->setString(str + s2); + + // Remove the line + if(mlIt1->mergeEditLineList.size() > 1) + mlIt1->mergeEditLineList.erase(melIt1); + else + melIt1->setRemoved(); + } + } + } + else + { + QString s = str.left(x); + s += str.midRef(x + 1); + melIt->setString(s); + setModified(); + } + break; + } + case Qt::Key_Backspace: { + if(deleteSelection2(str, x, y, mlIt, melIt)) break; + if(!melIt->isEditableText()) break; + if(x == 0) + { + if(y > 0) + { + setModified(); + MergeLineList::iterator mlIt1; + MergeEditLineList::iterator melIt1; + if(calcIteratorFromLineNr(y - 1, mlIt1, melIt1) && melIt1->isEditableText()) + { + QString s1 = melIt1->getString(m_pldA, m_pldB, m_pldC); + melIt1->setString(s1 + str); + + // Remove the previous line + if(mlIt->mergeEditLineList.size() > 1) + mlIt->mergeEditLineList.erase(melIt); + else + melIt->setRemoved(); + + --y; + x = str.length(); + } + } + } + else + { + QString s = str.left(x - 1); + s += str.midRef(x); + --x; + melIt->setString(s); + setModified(); + } + break; + } + case Qt::Key_Return: + case Qt::Key_Enter: { + if(!melIt->isEditableText()) break; + deleteSelection2(str, x, y, mlIt, melIt); + setModified(); + QString indentation; + if(m_pOptions->m_bAutoIndentation) + { // calc last indentation + MergeLineList::iterator mlIt1 = mlIt; + MergeEditLineList::iterator melIt1 = melIt; + for(;;) + { + const QString s = melIt1->getString(m_pldA, m_pldB, m_pldC); + if(!s.isEmpty()) + { + int i; + for(i = 0; i < s.length(); ++i) + { + if(s[i] != ' ' && s[i] != '\t') break; + } + if(i < s.length()) + { + indentation = s.left(i); + break; + } + } + // Go back one line + if(melIt1 != mlIt1->mergeEditLineList.begin()) + --melIt1; + else + { + if(mlIt1 == m_mergeLineList.begin()) break; + --mlIt1; + melIt1 = mlIt1->mergeEditLineList.end(); + --melIt1; + } + } + } + MergeEditLine mel(mlIt->id3l); // Associate every mel with an id3l, even if not really valid. + mel.setString(indentation + str.mid(x)); + + if(x < str.length()) // Cut off the old line. + { + // Since ps possibly points into melIt->str, first copy it into a temporary. + QString temp = str.left(x); + melIt->setString(temp); + } + + ++melIt; + mlIt->mergeEditLineList.insert(melIt, mel); + x = indentation.length(); + ++y; + break; + } + case Qt::Key_Insert: + m_bInsertMode = !m_bInsertMode; + break; + case Qt::Key_Pause: + case Qt::Key_Print: + case Qt::Key_SysReq: + break; + case Qt::Key_Home: + x = 0; + if(bCtrl) + { + y = 0; + } + break; // cursor movement + case Qt::Key_End: + x = TYPE_MAX(int); + if(bCtrl) + { + y = TYPE_MAX(int); + } + break; + + case Qt::Key_Left: + case Qt::Key_Right: + if((e->key() == Qt::Key_Left) != m_pOptions->m_bRightToLeftLanguage) + { + if(!bCtrl) + { + int newX = textLayoutOrig.previousCursorPosition(x); + if(newX == x && y > 0) + { + --y; + x = TYPE_MAX(int); + } + else + { + x = newX; + } + } + else + { + while(x > 0 && (str[x - 1] == ' ' || str[x - 1] == '\t')) + { + int newX = textLayoutOrig.previousCursorPosition(x); + if(newX == x) break; + x = newX; + } + while(x > 0 && (str[x - 1] != ' ' && str[x - 1] != '\t')) + { + int newX = textLayoutOrig.previousCursorPosition(x); + if(newX == x) break; + x = newX; + } + } + } + else + { + if(!bCtrl) + { + int newX = textLayoutOrig.nextCursorPosition(x); + if(newX == x && y < m_nofLines - 1) + { + ++y; + x = 0; + } + else + { + x = newX; + } + } + else + { + while(x < str.length() && (str[x] == ' ' || str[x] == '\t')) + { + int newX = textLayoutOrig.nextCursorPosition(x); + if(newX == x) break; + x = newX; + } + while(x < str.length() && (str[x] != ' ' && str[x] != '\t')) + { + int newX = textLayoutOrig.nextCursorPosition(x); + if(newX == x) break; + x = newX; + } + } + } + break; + + case Qt::Key_Up: + if(!bCtrl) + { + --y; + bYMoveKey = true; + } + break; + case Qt::Key_Down: + if(!bCtrl) + { + ++y; + bYMoveKey = true; + } + break; + case Qt::Key_PageUp: + if(!bCtrl) + { + y -= getNofVisibleLines(); + bYMoveKey = true; + } + break; + case Qt::Key_PageDown: + if(!bCtrl) + { + y += getNofVisibleLines(); + bYMoveKey = true; + } + break; + default: { + QString t = e->text(); + if(t.isEmpty() || bCtrl) + { + e->ignore(); + return; + } + if(!melIt->isEditableText()) break; + deleteSelection2(str, x, y, mlIt, melIt); + + setModified(); + // Characters to insert + QString s = str; + if(t[0] == '\t' && m_pOptions->m_bReplaceTabs) + { + int spaces = (m_cursorXPos / m_pOptions->m_tabSize + 1) * m_pOptions->m_tabSize - m_cursorXPos; + t.fill(' ', spaces); + } + if(m_bInsertMode) + s.insert(x, t); + else + s.replace(x, t.length(), t); + + melIt->setString(s); + x += t.length(); + bShift = false; + } // default case + } // switch(e->key()) + + + y = qBound(0, y, m_nofLines - 1); + + str = calcIteratorFromLineNr(y, mlIt, melIt) + ? melIt->getString(m_pldA, m_pldB, m_pldC) + : QString(); + + x = qBound(0, x, (int)str.length()); + + int newFirstLine = m_firstLine; + int newHorizScrollOffset = m_horizScrollOffset; + + if(y < m_firstLine) + newFirstLine = y; + else if(y > m_firstLine + getNofVisibleLines()) + newFirstLine = y - getNofVisibleLines(); + + QTextLayout textLayout(str, font(), this); + getTextLayoutForLine(m_cursorYPos, str, textLayout); + + // try to preserve cursor x pixel position when moving to another line + if(bYMoveKey) + { + if(m_pOptions->m_bRightToLeftLanguage) + x = textLayout.lineAt(0).xToCursor(m_cursorOldXPixelPos - (textLayout.position().x() - m_horizScrollOffset)); + else + x = textLayout.lineAt(0).xToCursor(m_cursorOldXPixelPos); + } + + m_cursorXPixelPos = qCeil(textLayout.lineAt(0).cursorToX(x)); + int hF = 1; // horizontal factor + if(m_pOptions->m_bRightToLeftLanguage) + { + m_cursorXPixelPos += qCeil(textLayout.position().x() - m_horizScrollOffset); + hF = -1; + } + int cursorWidth = 5; + if(m_cursorXPixelPos < hF * m_horizScrollOffset) + newHorizScrollOffset = hF * m_cursorXPixelPos; + else if(m_cursorXPixelPos > hF * m_horizScrollOffset + getVisibleTextAreaWidth() - cursorWidth) + newHorizScrollOffset = hF * (m_cursorXPixelPos - (getVisibleTextAreaWidth() - cursorWidth)); + + int newCursorX = x; + if(bShift) + { + if(!m_selection.isValidFirstLine()) + m_selection.start(m_cursorYPos, m_cursorXPos); + + m_selection.end(y, newCursorX); + } + else + m_selection.reset(); + + m_cursorYPos = y; + m_cursorXPos = newCursorX; + + // TODO if width of current line exceeds the current maximum width then force recalculating the scrollbars + if(textLayout.maximumWidth() > getMaxTextWidth()) + { + m_maxTextWidth = qCeil(textLayout.maximumWidth()); + Q_EMIT resizeSignal(); + } + if(!bYMoveKey) + m_cursorOldXPixelPos = m_cursorXPixelPos; + + m_bCursorOn = true; + m_cursorTimer.start(500); + + Q_EMIT updateAvailabilities(); + update(); + if(newFirstLine != m_firstLine || newHorizScrollOffset != m_horizScrollOffset) + { + Q_EMIT scrollMergeResultWindow(newHorizScrollOffset - m_horizScrollOffset, newFirstLine - m_firstLine); + return; + } +} + +/** + * Determine MergeLine and MergeEditLine from line number + * + * @param line + * line number to look up + * @param[out] mlIt + * iterator to merge-line + * or m_mergeLineList.end() if not available + * @param[out] melIt + * iterator to MergeEditLine + * or mlIt->mergeEditLineList.end() if not available + * @warning uninitialized if mlIt is not available! + * @return whether line is available; + * when true, @p mlIt and @p melIt are set to valid iterators + */ +bool MergeResultWindow::calcIteratorFromLineNr( + int line, + MergeLineList::iterator& mlIt, + MergeEditLineList::iterator& melIt) +{ + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + if(line > ml.mergeEditLineList.size()) + { + line -= ml.mergeEditLineList.size(); + } + else + { + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt) + { + --line; + if(line < 0) return true; + } + } + } + return false; +} + +QString MergeResultWindow::getSelection() +{ + QString selectionString; + + int line = 0; + MergeLineList::iterator mlIt = m_mergeLineList.begin(); + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + MergeEditLineList::iterator melIt; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt) + { + MergeEditLine& mel = *melIt; + + if(m_selection.lineWithin(line)) + { + int outPos = 0; + if(mel.isEditableText()) + { + const QString str = mel.getString(m_pldA, m_pldB, m_pldC); + + // Consider tabs + + for(int i = 0; i < str.length(); ++i) + { + int spaces = 1; + if(str[i] == '\t') + { + spaces = tabber(outPos, m_pOptions->m_tabSize); + } + + if(m_selection.within(line, outPos)) + { + selectionString += str[i]; + } + + outPos += spaces; + } + } + else if(mel.isConflict()) + { + selectionString += i18n(""); + } + + if(m_selection.within(line, outPos)) + { +#ifdef Q_OS_WIN + selectionString += '\r'; +#endif + selectionString += '\n'; + } + } + + ++line; + } + } + + return selectionString; +} + +bool MergeResultWindow::deleteSelection2(QString& s, int& x, int& y, + MergeLineList::iterator& mlIt, MergeEditLineList::iterator& melIt) +{ + if(m_selection.selectionContainsData()) + { + Q_ASSERT(m_selection.isValidFirstLine()); + deleteSelection(); + y = m_cursorYPos; + if(!calcIteratorFromLineNr(y, mlIt, melIt)) + { + // deleteSelection() should never remove or empty the first line, so + // resolving m_cursorYPos shall always succeed + Q_ASSERT(false); + } + + s = melIt->getString(m_pldA, m_pldB, m_pldC); + x = m_cursorXPos; + return true; + } + + return false; +} + +void MergeResultWindow::deleteSelection() +{ + if(!m_selection.selectionContainsData()) + { + return; + } + Q_ASSERT(m_selection.isValidFirstLine()); + + setModified(); + + LineRef line = 0; + MergeLineList::iterator mlItFirst; + MergeEditLineList::iterator melItFirst; + QString firstLineString; + + LineRef firstLine; + LineRef lastLine; + + MergeLineList::iterator mlIt; + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + MergeEditLineList::iterator melIt; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt) + { + MergeEditLine& mel = *melIt; + + if(mel.isEditableText() && m_selection.lineWithin(line)) + { + if(!firstLine.isValid()) + firstLine = line; + lastLine = line; + } + + ++line; + } + } + + if(!firstLine.isValid()) + { + return; // Nothing to delete. + } + + line = 0; + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + MergeEditLineList::iterator melIt, melIt1; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end();) + { + MergeEditLine& mel = *melIt; + melIt1 = melIt; + ++melIt1; + + if(mel.isEditableText() && m_selection.lineWithin(line)) + { + QString lineString = mel.getString(m_pldA, m_pldB, m_pldC); + + int firstPosInLine = m_selection.firstPosInLine(line); + int lastPosInLine = m_selection.lastPosInLine(line); + + if(line == firstLine) + { + mlItFirst = mlIt; + melItFirst = melIt; + int pos = firstPosInLine; + firstLineString = lineString.left(pos); + } + + if(line == lastLine) + { + // This is the last line in the selection + int pos = lastPosInLine; + firstLineString += lineString.midRef(pos); // rest of line + melItFirst->setString(firstLineString); + } + + if(line != firstLine || (m_selection.endPos() - m_selection.beginPos()) == lineString.length()) + { + // Remove the line + if(mlIt->mergeEditLineList.size() > 1) + mlIt->mergeEditLineList.erase(melIt); + else + melIt->setRemoved(); + } + } + + ++line; + melIt = melIt1; + } + } + + m_cursorYPos = m_selection.beginLine(); + m_cursorXPos = m_selection.beginPos(); + m_cursorOldXPixelPos = m_cursorXPixelPos; + + m_selection.reset(); +} + +void MergeResultWindow::pasteClipboard(bool bFromSelection) +{ + //checking of m_selection if needed is done by deleteSelection no need for check here. + deleteSelection(); + + setModified(); + + int y = m_cursorYPos; + MergeLineList::iterator mlIt; + MergeEditLineList::iterator melIt, melItAfter; + if (!calcIteratorFromLineNr(y, mlIt, melIt)) + { + return; + } + melItAfter = melIt; + ++melItAfter; + QString str = melIt->getString(m_pldA, m_pldB, m_pldC); + int x = m_cursorXPos; + + if(!QApplication::clipboard()->supportsSelection()) + bFromSelection = false; + + QString clipBoard = QApplication::clipboard()->text(bFromSelection ? QClipboard::Selection : QClipboard::Clipboard); + + QString currentLine = str.left(x); + QString endOfLine = str.mid(x); + int i; + int len = clipBoard.length(); + for(i = 0; i < len; ++i) + { + QChar c = clipBoard[i]; + if(c == '\n' || (c == '\r' && clipBoard[i + 1] != '\n')) + { + melIt->setString(currentLine); + MergeEditLine mel(mlIt->id3l); // Associate every mel with an id3l, even if not really valid. + melIt = mlIt->mergeEditLineList.insert(melItAfter, mel); + currentLine = ""; + x = 0; + ++y; + } + else + { + if(c == '\r') continue; + + currentLine += c; + ++x; + } + } + + currentLine += endOfLine; + melIt->setString(currentLine); + + m_cursorYPos = y; + m_cursorXPos = x; + m_cursorOldXPixelPos = m_cursorXPixelPos; + + update(); +} + +void MergeResultWindow::resetSelection() +{ + m_selection.reset(); + update(); +} + +void MergeResultWindow::setModified(bool bModified) +{ + if(bModified != m_bModified) + { + m_bModified = bModified; + Q_EMIT modifiedChanged(m_bModified); + } +} + +/// Saves and returns true when successful. +bool MergeResultWindow::saveDocument(const QString& fileName, QTextCodec* pEncoding, e_LineEndStyle eLineEndStyle) +{ + // Are still conflicts somewhere? + if(getNrOfUnsolvedConflicts() > 0) + { + KMessageBox::error(this, + i18n("Not all conflicts are solved yet.\n" + "File not saved."), + i18n("Conflicts Left")); + return false; + } + + if(eLineEndStyle == eLineEndStyleConflict || eLineEndStyle == eLineEndStyleUndefined) + { + KMessageBox::error(this, + i18n("There is a line end style conflict. Please choose the line end style manually.\n" + "File not saved."), + i18n("Conflicts Left")); + return false; + } + + update(); + + FileAccess file(fileName, true /*bWantToWrite*/); + if(m_pOptions->m_bDmCreateBakFiles && file.exists()) + { + bool bSuccess = file.createBackup(".orig"); + if(!bSuccess) + { + KMessageBox::error(this, file.getStatusText() + i18n("\n\nCreating backup failed. File not saved."), i18n("File Save Error")); + return false; + } + } + + QByteArray dataArray; + QTextStream textOutStream(&dataArray, QIODevice::WriteOnly); + if(pEncoding->name() == "UTF-8") + textOutStream.setGenerateByteOrderMark(false); // Shouldn't be necessary. Bug in Qt or docs + else + textOutStream.setGenerateByteOrderMark(true); // Only for UTF-16 + textOutStream.setCodec(pEncoding); + + // Determine the line feed for this file + const QString lineFeed(eLineEndStyle == eLineEndStyleDos ? QString("\r\n") : QString("\n")); + + int line = 0; + MergeLineList::iterator mlIt = m_mergeLineList.begin(); + for(mlIt = m_mergeLineList.begin(); mlIt != m_mergeLineList.end(); ++mlIt) + { + MergeLine& ml = *mlIt; + MergeEditLineList::iterator melIt; + for(melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt) + { + MergeEditLine& mel = *melIt; + + if(mel.isEditableText()) + { + const QString str = mel.getString(m_pldA, m_pldB, m_pldC); + + if(line > 0 && !mel.isRemoved()) + { + // Put line feed between lines, but not for the first line + // or between lines that have been removed (because there + // isn't a line there). + textOutStream << lineFeed; + } + + textOutStream << str; + ++line; + } + } + } + textOutStream.flush(); + bool bSuccess = file.writeFile(dataArray.data(), dataArray.size()); + if(!bSuccess) + { + KMessageBox::error(this, i18n("Error while writing."), i18n("File Save Error")); + return false; + } + + setModified(false); + update(); + + return true; +} + +QString MergeResultWindow::getString(int lineIdx) +{ + MergeLineList::iterator mlIt; + MergeEditLineList::iterator melIt; + if(!calcIteratorFromLineNr(lineIdx, mlIt, melIt)) + { + return QString(); + } + return melIt->getString(m_pldA, m_pldB, m_pldC); +} + +bool MergeResultWindow::findString(const QString& s, LineRef& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive) +{ + int it = d3vLine; + int endIt = bDirDown ? getNofLines() : -1; + int step = bDirDown ? 1 : -1; + int startPos = posInLine; + + for(; it != endIt; it += step) + { + QString line = getString(it); + if(!line.isEmpty()) + { + int pos = line.indexOf(s, startPos, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); + if(pos != -1) + { + d3vLine = it; + posInLine = pos; + return true; + } + + startPos = 0; + } + } + return false; +} + +void MergeResultWindow::setSelection(int firstLine, int startPos, int lastLine, int endPos) +{ + if(lastLine >= getNofLines()) + { + lastLine = getNofLines() - 1; + QString s = getString(lastLine); + endPos = s.length(); + } + m_selection.reset(); + m_selection.start(firstLine, startPos); + m_selection.end(lastLine, endPos); + update(); +} + +void MergeResultWindow::scrollVertically(QtNumberType deltaY) +{ + mVScrollBar->setValue(mVScrollBar->value() + deltaY); +} + +WindowTitleWidget::WindowTitleWidget(const QSharedPointer& pOptions) +{ + m_pOptions = pOptions; + setAutoFillBackground(true); + + QHBoxLayout* pHLayout = new QHBoxLayout(this); + pHLayout->setContentsMargins(2, 2, 2, 2); + pHLayout->setSpacing(2); + + m_pLabel = new QLabel(i18n("Output:")); + pHLayout->addWidget(m_pLabel); + + m_pFileNameLineEdit = new FileNameLineEdit(); + pHLayout->addWidget(m_pFileNameLineEdit, 6); + m_pFileNameLineEdit->installEventFilter(this);//for focus tracking + m_pFileNameLineEdit->setAcceptDrops(true); + m_pFileNameLineEdit->setReadOnly(true); + + //m_pBrowseButton = new QPushButton("..."); + //pHLayout->addWidget( m_pBrowseButton, 0 ); + //chk_connect( m_pBrowseButton, &QPushButton::clicked), this, &MergeResultWindow::slotBrowseButtonClicked); + + m_pModifiedLabel = new QLabel(i18n("[Modified]")); + pHLayout->addWidget(m_pModifiedLabel); + m_pModifiedLabel->setMinimumSize(m_pModifiedLabel->sizeHint()); + m_pModifiedLabel->setText(""); + + pHLayout->addStretch(1); + + m_pEncodingLabel = new QLabel(i18n("Encoding for saving:")); + pHLayout->addWidget(m_pEncodingLabel); + + m_pEncodingSelector = new QComboBox(); + m_pEncodingSelector->setSizeAdjustPolicy(QComboBox::AdjustToContents); + pHLayout->addWidget(m_pEncodingSelector, 2); + setEncodings(nullptr, nullptr, nullptr); + + m_pLineEndStyleLabel = new QLabel(i18n("Line end style:")); + pHLayout->addWidget(m_pLineEndStyleLabel); + m_pLineEndStyleSelector = new QComboBox(); + m_pLineEndStyleSelector->setSizeAdjustPolicy(QComboBox::AdjustToContents); + pHLayout->addWidget(m_pLineEndStyleSelector); + setLineEndStyles(eLineEndStyleUndefined, eLineEndStyleUndefined, eLineEndStyleUndefined); +} + +void WindowTitleWidget::setFileName(const QString& fileName) +{ + m_pFileNameLineEdit->setText(QDir::toNativeSeparators(fileName)); +} + +QString WindowTitleWidget::getFileName() +{ + return m_pFileNameLineEdit->text(); +} + +//static QString getLineEndStyleName( e_LineEndStyle eLineEndStyle ) +//{ +// if ( eLineEndStyle == eLineEndStyleDos ) +// return "DOS"; +// else if ( eLineEndStyle == eLineEndStyleUnix ) +// return "Unix"; +// return QString(); +//} + +void WindowTitleWidget::setLineEndStyles(e_LineEndStyle eLineEndStyleA, e_LineEndStyle eLineEndStyleB, e_LineEndStyle eLineEndStyleC) +{ + m_pLineEndStyleSelector->clear(); + QString dosUsers; + if(eLineEndStyleA == eLineEndStyleDos) + dosUsers += i18n("A"); + if(eLineEndStyleB == eLineEndStyleDos) + dosUsers += QLatin1String(dosUsers.isEmpty() ? "" : ", ") + i18n("B"); + if(eLineEndStyleC == eLineEndStyleDos) + dosUsers += QLatin1String(dosUsers.isEmpty() ? "" : ", ") + i18n("C"); + QString unxUsers; + if(eLineEndStyleA == eLineEndStyleUnix) + unxUsers += i18n("A"); + if(eLineEndStyleB == eLineEndStyleUnix) + unxUsers += QLatin1String(unxUsers.isEmpty() ? "" : ", ") + i18n("B"); + if(eLineEndStyleC == eLineEndStyleUnix) + unxUsers += QLatin1String(unxUsers.isEmpty() ? "" : ", ") + i18n("C"); + + m_pLineEndStyleSelector->addItem(i18n("Unix") + (unxUsers.isEmpty() ? QString("") : QLatin1String(" (") + unxUsers + QLatin1String(")"))); + m_pLineEndStyleSelector->addItem(i18n("DOS") + (dosUsers.isEmpty() ? QString("") : QLatin1String(" (") + dosUsers + QLatin1String(")"))); + + e_LineEndStyle autoChoice = (e_LineEndStyle)m_pOptions->m_lineEndStyle; + + if(m_pOptions->m_lineEndStyle == eLineEndStyleAutoDetect) + { + if(eLineEndStyleA != eLineEndStyleUndefined && eLineEndStyleB != eLineEndStyleUndefined && eLineEndStyleC != eLineEndStyleUndefined) + { + if(eLineEndStyleA == eLineEndStyleB) + autoChoice = eLineEndStyleC; + else if(eLineEndStyleA == eLineEndStyleC) + autoChoice = eLineEndStyleB; + else + autoChoice = eLineEndStyleConflict; //conflict (not likely while only two values exist) + } + else + { + e_LineEndStyle c1, c2; + if(eLineEndStyleA == eLineEndStyleUndefined) + { + c1 = eLineEndStyleB; + c2 = eLineEndStyleC; + } + else if(eLineEndStyleB == eLineEndStyleUndefined) + { + c1 = eLineEndStyleA; + c2 = eLineEndStyleC; + } + else /*if( eLineEndStyleC == eLineEndStyleUndefined )*/ + { + c1 = eLineEndStyleA; + c2 = eLineEndStyleB; + } + if(c1 == c2 && c1 != eLineEndStyleUndefined) + autoChoice = c1; + else + autoChoice = eLineEndStyleConflict; + } + } + + if(autoChoice == eLineEndStyleUnix) + m_pLineEndStyleSelector->setCurrentIndex(0); + else if(autoChoice == eLineEndStyleDos) + m_pLineEndStyleSelector->setCurrentIndex(1); + else if(autoChoice == eLineEndStyleConflict) + { + m_pLineEndStyleSelector->addItem(i18n("Conflict")); + m_pLineEndStyleSelector->setCurrentIndex(2); + } +} + +e_LineEndStyle WindowTitleWidget::getLineEndStyle() +{ + + int current = m_pLineEndStyleSelector->currentIndex(); + if(current == 0) + return eLineEndStyleUnix; + else if(current == 1) + return eLineEndStyleDos; + else + return eLineEndStyleConflict; +} + +void WindowTitleWidget::setEncodings(QTextCodec* pCodecForA, QTextCodec* pCodecForB, QTextCodec* pCodecForC) +{ + m_pEncodingSelector->clear(); + + // First sort codec names: + std::map names; + const QList mibs = QTextCodec::availableMibs(); + for(int i: mibs) + { + QTextCodec* c = QTextCodec::codecForMib(i); + if(c != nullptr) + names[QLatin1String(c->name())] = c; + } + + if(pCodecForA != nullptr) + m_pEncodingSelector->addItem(i18n("Codec from A: %1", QLatin1String(pCodecForA->name())), QVariant::fromValue((void*)pCodecForA)); + if(pCodecForB != nullptr) + m_pEncodingSelector->addItem(i18n("Codec from B: %1", QLatin1String(pCodecForB->name())), QVariant::fromValue((void*)pCodecForB)); + if(pCodecForC != nullptr) + m_pEncodingSelector->addItem(i18n("Codec from C: %1", QLatin1String(pCodecForC->name())), QVariant::fromValue((void*)pCodecForC)); + + std::map::const_iterator it; + for(it = names.begin(); it != names.end(); ++it) + { + m_pEncodingSelector->addItem(it->first, QVariant::fromValue((void*)it->second)); + } + m_pEncodingSelector->setMinimumSize(m_pEncodingSelector->sizeHint()); + + if(pCodecForC != nullptr && pCodecForB != nullptr && pCodecForA != nullptr) + { + if(pCodecForA == pCodecForC) + m_pEncodingSelector->setCurrentIndex(1); // B + else + m_pEncodingSelector->setCurrentIndex(2); // C + } + else if(pCodecForA != nullptr && pCodecForB != nullptr) + m_pEncodingSelector->setCurrentIndex(1); // B + else + m_pEncodingSelector->setCurrentIndex(0); +} + +QTextCodec* WindowTitleWidget::getEncoding() +{ + return (QTextCodec*)m_pEncodingSelector->itemData(m_pEncodingSelector->currentIndex()).value(); +} + +void WindowTitleWidget::setEncoding(QTextCodec* pEncoding) +{ + int idx = m_pEncodingSelector->findText(QLatin1String(pEncoding->name())); + if(idx >= 0) + m_pEncodingSelector->setCurrentIndex(idx); +} + +//void WindowTitleWidget::slotBrowseButtonClicked() +//{ +// QString current = m_pFileNameLineEdit->text(); +// +// QUrl newURL = KFileDialog::getSaveUrl( current, 0, this, i18n("Select file (not saving yet)")); +// if ( !newURL.isEmpty() ) +// { +// m_pFileNameLineEdit->setText( newURL.url() ); +// } +//} + +void WindowTitleWidget::slotSetModified(bool bModified) +{ + m_pModifiedLabel->setText(bModified ? i18n("[Modified]") : ""); +} + +bool WindowTitleWidget::eventFilter(QObject* o, QEvent* e) +{ + Q_UNUSED(o); + if(e->type() == QEvent::FocusIn || e->type() == QEvent::FocusOut) + { + QPalette p = m_pLabel->palette(); + + QColor c1 = m_pOptions->m_fgColor; + QColor c2 = Qt::lightGray; + if(e->type() == QEvent::FocusOut) + c2 = m_pOptions->m_bgColor; + + p.setColor(QPalette::Window, c2); + setPalette(p); + + p.setColor(QPalette::WindowText, c1); + m_pLabel->setPalette(p); + m_pEncodingLabel->setPalette(p); + m_pEncodingSelector->setPalette(p); + } + return false; +} + +//#include "mergeresultwindow.moc" diff --git a/src/mergeresultwindow.h b/src/mergeresultwindow.h new file mode 100644 index 0000000..91136d1 --- /dev/null +++ b/src/mergeresultwindow.h @@ -0,0 +1,324 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef MERGERESULTWINDOW_H +#define MERGERESULTWINDOW_H + +#include "diff.h" +#include "FileNameLineEdit.h" +#include "MergeEditLine.h" +#include "Overview.h" + +#include "selection.h" + +#include + +#include +#include +#include +#include +#include +#include + +class QPainter; +class RLPainter; +class QScrollBar; +class KActionCollection; +class KToggleAction; + +class KDiff3App; + +class MergeResultWindow: public QWidget +{ + Q_OBJECT + public: + static QScrollBar* mVScrollBar; + + MergeResultWindow(QWidget* pParent, const QSharedPointer& pOptions, QStatusBar* pStatusBar); + + void init( + const QVector* pLineDataA, LineRef sizeA, + const QVector* pLineDataB, LineRef sizeB, + const QVector* pLineDataC, LineRef sizeC, + const Diff3LineList* pDiff3LineList, + TotalDiffStatus* pTotalDiffStatus, + bool bAutoSolve + ); + + void setupConnections(const KDiff3App* app); + + inline void clearMergeList() + { + m_mergeLineList.clear(); + } + + static void initActions(KActionCollection* ac); + + void connectActions() const; + void reset(); + + bool saveDocument(const QString& fileName, QTextCodec* pEncoding, e_LineEndStyle eLineEndStyle); + int getNrOfUnsolvedConflicts(int* pNrOfWhiteSpaceConflicts = nullptr); + void choose(e_SrcSelector selector); + void chooseGlobal(e_SrcSelector selector, bool bConflictsOnly, bool bWhiteSpaceOnly); + + int getMaxTextWidth(); // width of longest text line + int getNofLines() const; + int getVisibleTextAreaWidth(); // text area width without the border + int getNofVisibleLines(); + QString getSelection(); + void resetSelection(); + void showNrOfConflicts(); + bool isDeltaAboveCurrent(); + bool isDeltaBelowCurrent(); + bool isConflictAboveCurrent(); + bool isConflictBelowCurrent(); + bool isUnsolvedConflictAtCurrent(); + bool isUnsolvedConflictAboveCurrent(); + bool isUnsolvedConflictBelowCurrent(); + bool findString(const QString& s, LineRef& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive); + void setSelection(int firstLine, int startPos, int lastLine, int endPos); + e_OverviewMode getOverviewMode(); + + void slotUpdateAvailabilities(); + + public Q_SLOTS: + void setOverviewMode(e_OverviewMode eOverviewMode); + void setFirstLine(QtNumberType firstLine); + void setHorizScrollOffset(int horizScrollOffset); + + void slotGoCurrent(); + void slotGoTop(); + void slotGoBottom(); + void slotGoPrevDelta(); + void slotGoNextDelta(); + void slotGoPrevUnsolvedConflict(); + void slotGoNextUnsolvedConflict(); + void slotGoPrevConflict(); + void slotGoNextConflict(); + void slotAutoSolve(); + void slotUnsolve(); + void slotMergeHistory(); + void slotRegExpAutoMerge(); + void slotSplitDiff(LineIndex firstD3lLineIdx, LineIndex lastD3lLineIdx); + void slotJoinDiffs(LineIndex firstD3lLineIdx, LineIndex lastD3lLineIdx); + void slotSetFastSelectorLine(LineIndex); + void setPaintingAllowed(bool); + void updateSourceMask(); + void slotStatusMessageChanged(const QString&); + + void slotChooseAEverywhere() { chooseGlobal(e_SrcSelector::A, false, false); } + void slotChooseBEverywhere() { chooseGlobal(e_SrcSelector::B, false, false); } + void slotChooseCEverywhere() { chooseGlobal(e_SrcSelector::C, false, false); } + void slotChooseAForUnsolvedConflicts() { chooseGlobal(e_SrcSelector::A, true, false); } + void slotChooseBForUnsolvedConflicts() { chooseGlobal(e_SrcSelector::B, true, false); } + void slotChooseCForUnsolvedConflicts() { chooseGlobal(e_SrcSelector::C, true, false); } + void slotChooseAForUnsolvedWhiteSpaceConflicts() { chooseGlobal(e_SrcSelector::A, true, true); } + void slotChooseBForUnsolvedWhiteSpaceConflicts() { chooseGlobal(e_SrcSelector::B, true, true); } + void slotChooseCForUnsolvedWhiteSpaceConflicts() { chooseGlobal(e_SrcSelector::C, true, true); } + void slotRefresh(); + + void slotResize(); + + void slotCut(); + + void slotCopy(); + + void slotSelectAll(); + + void scrollVertically(QtNumberType deltaY); + + Q_SIGNALS: + void statusBarMessage(const QString& message); + void scrollMergeResultWindow(int deltaX, int deltaY); + void modifiedChanged(bool bModified); + void setFastSelectorRange(LineRef line1, LineCount nofLines); + void sourceMask(int srcMask, int enabledMask); + void resizeSignal(); + void selectionEnd(); + void newSelection(); + void updateAvailabilities(); + void showPopupMenu(const QPoint& point); + void noRelevantChangesDetected(); + + private: + void merge(bool bAutoSolve, e_SrcSelector defaultSelector, bool bConflictsOnly = false, bool bWhiteSpaceOnly = false); + QString getString(int lineIdx); + void showUnsolvedConflictsStatusMessage(); + + static QPointer chooseAEverywhere; + static QPointer chooseBEverywhere; + static QPointer chooseCEverywhere; + static QPointer chooseAForUnsolvedConflicts; + static QPointer chooseBForUnsolvedConflicts; + static QPointer chooseCForUnsolvedConflicts; + static QPointer chooseAForUnsolvedWhiteSpaceConflicts; + static QPointer chooseBForUnsolvedWhiteSpaceConflicts; + static QPointer chooseCForUnsolvedWhiteSpaceConflicts; + + QSharedPointer m_pOptions = nullptr; + + const QVector* m_pldA = nullptr; + const QVector* m_pldB = nullptr; + const QVector* m_pldC = nullptr; + LineRef m_sizeA = 0; + LineRef m_sizeB = 0; + LineRef m_sizeC = 0; + + const Diff3LineList* m_pDiff3LineList = nullptr; + TotalDiffStatus* m_pTotalDiffStatus = nullptr; + + int m_delayedDrawTimer = 0; + e_OverviewMode mOverviewMode; + QString m_persistentStatusMessage; + + private: + static bool sameKindCheck(const MergeLine& ml1, const MergeLine& ml2); + struct HistoryMapEntry { + MergeEditLineList mellA; + MergeEditLineList mellB; + MergeEditLineList mellC; + MergeEditLineList& choice(bool bThreeInputs); + bool staysInPlace(bool bThreeInputs, Diff3LineList::const_iterator& iHistoryEnd); + }; + typedef std::map HistoryMap; + void collectHistoryInformation(e_SrcSelector src, Diff3LineList::const_iterator& iHistoryBegin, Diff3LineList::const_iterator& iHistoryEnd, HistoryMap& historyMap, std::list& hitList); + + MergeLineList m_mergeLineList; + MergeLineList::iterator m_currentMergeLineIt; + bool isItAtEnd(bool bIncrement, MergeLineList::iterator i) + { + if(bIncrement) + return i != m_mergeLineList.end(); + else + return i != m_mergeLineList.begin(); + } + + int m_currentPos; + bool checkOverviewIgnore(MergeLineList::iterator& i); + + enum e_Direction + { + eUp, + eDown + }; + enum e_EndPoint + { + eDelta, + eConflict, + eUnsolvedConflict, + eLine, + eEnd + }; + void go(e_Direction eDir, e_EndPoint eEndPoint); + bool calcIteratorFromLineNr( + int line, + MergeLineList::iterator& mlIt, + MergeEditLineList::iterator& melIt); + MergeLineList::iterator splitAtDiff3LineIdx(int d3lLineIdx); + + void paintEvent(QPaintEvent* e) override; + + int getTextXOffset(); + QVector getTextLayoutForLine(int line, const QString& s, QTextLayout& textLayout); + void myUpdate(int afterMilliSecs); + void timerEvent(QTimerEvent*) override; + void writeLine( + RLPainter& p, int line, const QString& str, + enum e_SrcSelector srcSelect, e_MergeDetails mergeDetails, int rangeMark, bool bUserModified, bool bLineRemoved, bool bWhiteSpaceConflict + ); + void setFastSelector(MergeLineList::iterator i); + LineRef convertToLine(QtNumberType y); + bool event(QEvent*) override; + void mousePressEvent(QMouseEvent* e) override; + void mouseDoubleClickEvent(QMouseEvent* e) override; + void mouseReleaseEvent(QMouseEvent*) override; + void mouseMoveEvent(QMouseEvent*) override; + void resizeEvent(QResizeEvent* e) override; + void keyPressEvent(QKeyEvent* e) override; + void wheelEvent(QWheelEvent* pWheelEvent) override; + void focusInEvent(QFocusEvent* e) override; + + bool canCut() { return hasFocus() && !getSelection().isEmpty(); } + bool canCopy() { return hasFocus() && !getSelection().isEmpty(); } + + QPixmap m_pixmap; + LineRef m_firstLine = 0; + int m_horizScrollOffset = 0; + LineCount m_nofLines = 0; + int m_maxTextWidth = -1; + bool m_bMyUpdate = false; + bool m_bInsertMode = true; + bool m_bModified = false; + void setModified(bool bModified = true); + + int m_scrollDeltaX = 0; + int m_scrollDeltaY = 0; + int m_cursorXPos = 0; + int m_cursorXPixelPos; + int m_cursorYPos = 0; + int m_cursorOldXPixelPos = 0; + bool m_bCursorOn = true; // blinking on and off each second + QTimer m_cursorTimer; + bool m_bCursorUpdate = false; + QStatusBar* m_pStatusBar; + + Selection m_selection; + + bool deleteSelection2(QString& str, int& x, int& y, + MergeLineList::iterator& mlIt, MergeEditLineList::iterator& melIt); + bool doRelevantChangesExist(); + + /* + This list exists solely to auto disconnect boost signals. + */ + std::list connections; + public Q_SLOTS: + void deleteSelection(); + void pasteClipboard(bool bFromSelection); + private Q_SLOTS: + void slotCursorUpdate(); +}; + +class QLineEdit; +class QTextCodec; +class QComboBox; +class QLabel; + +class WindowTitleWidget: public QWidget +{ + Q_OBJECT + private: + QLabel* m_pLabel; + FileNameLineEdit* m_pFileNameLineEdit; + //QPushButton* m_pBrowseButton; + QLabel* m_pModifiedLabel; + QLabel* m_pLineEndStyleLabel; + QComboBox* m_pLineEndStyleSelector; + QLabel* m_pEncodingLabel; + QComboBox* m_pEncodingSelector; + QSharedPointer m_pOptions; + + public: + explicit WindowTitleWidget(const QSharedPointer& pOptions); + QTextCodec* getEncoding(); + void setFileName(const QString& fileName); + QString getFileName(); + void setEncodings(QTextCodec* pCodecForA, QTextCodec* pCodecForB, QTextCodec* pCodecForC); + void setEncoding(QTextCodec* pEncoding); + void setLineEndStyles(e_LineEndStyle eLineEndStyleA, e_LineEndStyle eLineEndStyleB, e_LineEndStyle eLineEndStyleC); + e_LineEndStyle getLineEndStyle(); + + bool eventFilter(QObject* o, QEvent* e) override; + public Q_SLOTS: + void slotSetModified(bool bModified); + //private Q_SLOTS: + // void slotBrowseButtonClicked(); +}; + +#endif diff --git a/src/opendialog.ui b/src/opendialog.ui new file mode 100644 index 0000000..95f2cc7 --- /dev/null +++ b/src/opendialog.ui @@ -0,0 +1,323 @@ + + + OpenDialog + + + + 0 + 0 + 655 + 262 + + + + + 0 + 0 + + + + Dialog + + + + 5 + + + 5 + + + 5 + + + 5 + + + + + 0 + + + + + B: + + + + + + + A (Base): + + + + + + + Output (Optional): + + + + + + + Merge + + + + + + + File... + + + + .. + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + Swap/Copy Names... + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + C (Optional): + + + + + + + + 10 + 0 + + + + + 200 + 0 + + + + true + + + true + + + + + + + + 10 + 0 + + + + + 200 + 0 + + + + true + + + true + + + + + + + + 10 + 0 + + + + + 200 + 0 + + + + true + + + true + + + + + + + File... + + + + .. + + + + + + + Folder... + + + + .. + + + + + + + Folder... + + + + .. + + + + + + + Folder... + + + + .. + + + + + + + File... + + + + .. + + + + + + + File... + + + + .. + + + + + + + + 10 + 0 + + + + + 200 + 0 + + + + true + + + true + + + + + + + Folder... + + + + .. + + + + + + + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + lineA + fileSelectA + folderSelectA + lineB + fileSelectB + folderSelectB + lineC + fileSelectC + folderSelectC + mergeCheckBox + swapCopy + lineOut + selectOutputFile + selectOutputFolder + + + + diff --git a/src/optiondialog.cpp b/src/optiondialog.cpp new file mode 100644 index 0000000..d7e8caa --- /dev/null +++ b/src/optiondialog.cpp @@ -0,0 +1,1592 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#include "optiondialog.h" +#include "OptionItems.h" +#include "ui_scroller.h" + +#include "common.h" +#include "defmac.h" +#include "smalldialogs.h" + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +const QString OptionDialog::s_historyEntryStartRegExpToolTip = i18n("A version control history entry consists of several lines.\n" + "Specify the regular expression to detect the first line (without the leading comment).\n" + "Use parentheses to group the keys you want to use for sorting.\n" + "If left empty, then KDiff3 assumes that empty lines separate history entries.\n" + "See the documentation for details."); +const QString OptionDialog::s_historyEntryStartSortKeyOrderToolTip = i18n("Each pair of parentheses used in the regular expression for the history start entry\n" + "groups a key that can be used for sorting.\n" + "Specify the list of keys (that are numbered in order of occurrence\n" + "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" + "If left empty, then no sorting will be done.\n" + "See the documentation for details."); +const QString OptionDialog::s_autoMergeRegExpToolTip = i18n("Regular expression for lines where KDiff3 should automatically choose one source.\n" + "When a line with a conflict matches the regular expression then\n" + "- if available - C, otherwise B will be chosen."); +const QString OptionDialog::s_historyStartRegExpToolTip = i18n("Regular expression for the start of the version control history entry.\n" + "Usually this line contains the \"$Log$\" keyword.\n" + "Default value: \".*\\$Log.*\\$.*\""); + +class OptionCheckBox : public QCheckBox, public OptionBool +{ + public: + OptionCheckBox(const QString& text, bool bDefaultVal, const QString& saveName, bool* pbVar, + QWidget* pParent) + : QCheckBox(text, pParent), OptionBool(pbVar, bDefaultVal, saveName) + {} + void setToDefault() override { setChecked(getDefault()); } + void setToCurrent() override { setChecked(getCurrent()); } + + using OptionBool::apply; + void apply() override { apply(isChecked()); } + + private: + Q_DISABLE_COPY(OptionCheckBox) +}; + +class OptionRadioButton : public QRadioButton, public OptionBool +{ + public: + OptionRadioButton(const QString& text, bool bDefaultVal, const QString& saveName, bool* pbVar, + QWidget* pParent) + : QRadioButton(text, pParent), OptionBool(pbVar, bDefaultVal, saveName) + {} + void setToDefault() override { setChecked(getDefault()); } + void setToCurrent() override { setChecked(getCurrent()); } + + using OptionBool::apply; + void apply() override { apply(isChecked()); } + + private: + Q_DISABLE_COPY(OptionRadioButton) +}; + +FontChooser::FontChooser(QWidget* pParent) + : QGroupBox(pParent) +{ + QVBoxLayout* pLayout = new QVBoxLayout(this); + m_pLabel = new QLabel(QString()); + pLayout->addWidget(m_pLabel); + + QChar visualTab(0x2192); + QChar visualSpace((ushort)0xb7); + m_pExampleTextEdit = new QPlainTextEdit(i18n("The quick brown fox jumps over the river\n" + "but the little red hen escapes with a shiver.\n" + ":-)") + + visualTab + visualSpace, + this); + m_pExampleTextEdit->setFont(m_font); + m_pExampleTextEdit->setReadOnly(true); + pLayout->addWidget(m_pExampleTextEdit); + + m_pSelectFont = new QPushButton(i18n("Change Font")); + m_pSelectFont->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); + chk_connect(m_pSelectFont, &QPushButton::clicked, this, &FontChooser::slotSelectFont); + pLayout->addWidget(m_pSelectFont); + pLayout->setAlignment(m_pSelectFont, Qt::AlignRight); +} + +QFont FontChooser::font() +{ + return m_font; //QFont("courier",10); +} + +void FontChooser::setFont(const QFont& font, bool) +{ + m_font = font; + m_pExampleTextEdit->setFont(m_font); + m_pLabel->setText(i18n("Font: %1, %2, %3\n\nExample:", m_font.family(), m_font.styleName(), m_font.pointSize())); + + //update(); +} + +void FontChooser::slotSelectFont() +{ + bool bOk; + m_font = QFontDialog::getFont(&bOk, m_font); + m_pExampleTextEdit->setFont(m_font); + m_pLabel->setText(i18n("Font: %1, %2, %3\n\nExample:", m_font.family(), m_font.styleName(), m_font.pointSize())); +} + +class OptionFontChooser : public FontChooser, public OptionFont +{ + public: + OptionFontChooser(const QFont& defaultVal, const QString& saveName, QFont* pVar, QWidget* pParent) : FontChooser(pParent), + OptionFont(pVar, defaultVal, saveName) + {} + + void setToDefault() override { setFont(getDefault(), false); } + void setToCurrent() override { setFont(getCurrent(), false); } + using OptionFont::apply; + void apply() override { apply(font()); } + private: + Q_DISABLE_COPY(OptionFontChooser) +}; + +class OptionColorButton : public KColorButton, public OptionColor +{ + public: + OptionColorButton(const QColor &defaultVal, const QString& saveName, QColor* pVar, QWidget* pParent) + : KColorButton(pParent), OptionColor(pVar, defaultVal, saveName) + {} + + void setToDefault() override { setColor(getDefault()); } + void setToCurrent() override { setColor(getCurrent()); } + using OptionColor::apply; + void apply() override { apply(color()); } + + private: + Q_DISABLE_COPY(OptionColorButton) +}; + +class OptionLineEdit : public QComboBox, public OptionString +{ + public: + OptionLineEdit(const QString& defaultVal, const QString& saveName, QString* pVar, + QWidget* pParent) + : QComboBox(pParent), OptionString(pVar, defaultVal, saveName) + { + setMinimumWidth(50); + setEditable(true); + m_list.push_back(defaultVal); + insertText(); + } + void setToDefault() override + { + setEditText(getDefault()); + } + void setToCurrent() override + { + setEditText(getCurrent()); + } + + using OptionString::apply; + void apply() override + { + apply(currentText()); + insertText(); + } + void write(ValueMap* config) const override + { + config->writeEntry(m_saveName, m_list); + } + void read(ValueMap* config) override + { + m_list = config->readEntry(m_saveName, QStringList(m_defaultVal)); + if(!m_list.empty()) setCurrent(m_list.front()); + clear(); + insertItems(0, m_list); + } + + private: + void insertText() + { // Check if the text exists. If yes remove it and push it in as first element + QString current = currentText(); + m_list.removeAll(current); + m_list.push_front(current); + clear(); + if(m_list.size() > 10) + m_list.erase(m_list.begin() + 10, m_list.end()); + insertItems(0, m_list); + } + + Q_DISABLE_COPY(OptionLineEdit) + QStringList m_list; +}; + +class OptionIntEdit : public QLineEdit, public OptionNum +{ + public: + OptionIntEdit(int defaultVal, const QString& saveName, int* pVar, int rangeMin, int rangeMax, + QWidget* pParent) + : QLineEdit(pParent), OptionNum(pVar, defaultVal, saveName) + { + QIntValidator* v = new QIntValidator(this); + v->setRange(rangeMin, rangeMax); + setValidator(v); + } + void setToDefault() override + { + //QString::setNum does not account for locale settings + setText(OptionNum::toString(getDefault())); + } + + void setToCurrent() override + { + setText(getString()); + } + + using OptionNum::apply; + void apply() override + { + const QIntValidator* v = static_cast(validator()); + setCurrent( qBound(v->bottom(), text().toInt(), v->top()) ); + + setText(getString()); + } + + private: + Q_DISABLE_COPY(OptionIntEdit) +}; + +class OptionComboBox : public QComboBox, public OptionItemBase +{ + public: + OptionComboBox(int defaultVal, const QString& saveName, int* pVarNum, + QWidget* pParent) + : QComboBox(pParent), OptionItemBase(saveName) + { + setMinimumWidth(50); + m_pVarNum = pVarNum; + m_pVarStr = nullptr; + m_defaultVal = defaultVal; + setEditable(false); + } + OptionComboBox(int defaultVal, const QString& saveName, QString* pVarStr, + QWidget* pParent) + : QComboBox(pParent), OptionItemBase(saveName) + { + m_pVarNum = nullptr; + m_pVarStr = pVarStr; + m_defaultVal = defaultVal; + setEditable(false); + } + void setToDefault() override + { + setCurrentIndex(m_defaultVal); + if(m_pVarStr != nullptr) { + *m_pVarStr = currentText(); + } + } + void setToCurrent() override + { + if(m_pVarNum != nullptr) + setCurrentIndex(*m_pVarNum); + else + setText(*m_pVarStr); + } + using OptionItemBase::apply; + void apply() override + { + if(m_pVarNum != nullptr) { + *m_pVarNum = currentIndex(); + } + else + { + *m_pVarStr = currentText(); + } + } + void write(ValueMap* config) const override + { + if(m_pVarStr != nullptr) + config->writeEntry(m_saveName, *m_pVarStr); + else + config->writeEntry(m_saveName, *m_pVarNum); + } + void read(ValueMap* config) override + { + if(m_pVarStr != nullptr) + setText(config->readEntry(m_saveName, currentText())); + else + *m_pVarNum = config->readEntry(m_saveName, *m_pVarNum); + } + void preserve() override + { + if(m_pVarStr != nullptr) { + m_preservedStrVal = *m_pVarStr; + } + else + { + m_preservedNumVal = *m_pVarNum; + } + } + void unpreserve() override + { + if(m_pVarStr != nullptr) { + *m_pVarStr = m_preservedStrVal; + } + else + { + *m_pVarNum = m_preservedNumVal; + } + } + + private: + Q_DISABLE_COPY(OptionComboBox) + int* m_pVarNum; + int m_preservedNumVal = 0; + QString* m_pVarStr; + QString m_preservedStrVal; + int m_defaultVal; + + void setText(const QString& s) + { + // Find the string in the combobox-list, don't change the value if nothing fits. + for(int i = 0; i < count(); ++i) + { + if(itemText(i) == s) + { + if(m_pVarNum != nullptr) *m_pVarNum = i; + if(m_pVarStr != nullptr) *m_pVarStr = s; + setCurrentIndex(i); + return; + } + } + } +}; + +class OptionEncodingComboBox : public QComboBox, public OptionCodec +{ + Q_OBJECT + QVector m_codecVec; + QTextCodec** m_ppVarCodec; + + public: + OptionEncodingComboBox(const QString& saveName, QTextCodec** ppVarCodec, + QWidget* pParent) + : QComboBox(pParent), OptionCodec(saveName) + { + m_ppVarCodec = ppVarCodec; + insertCodec(i18n("Unicode, 8 bit"), QTextCodec::codecForName("UTF-8")); + insertCodec(i18n("Unicode"), QTextCodec::codecForName("iso-10646-UCS-2")); + insertCodec(i18n("Latin1"), QTextCodec::codecForName("iso 8859-1")); + + // First sort codec names: + std::map names; + const QList mibs = QTextCodec::availableMibs(); + for(int i: mibs) + { + QTextCodec* c = QTextCodec::codecForMib(i); + if(c != nullptr) + names[QString(QLatin1String(c->name())).toUpper()] = c; + } + + std::map::const_iterator it; + for(const auto& pair: names) + { + insertCodec("", pair.second); + } + + setToolTip(i18n( + "Change this if non-ASCII characters are not displayed correctly.")); + } + void insertCodec(const QString& visibleCodecName, QTextCodec* c) + { + if(c != nullptr) + { + const QByteArray nameArray = c->name(); + const QLatin1String codecName = QLatin1String(nameArray); + + for(int i = 0; i < m_codecVec.size(); ++i) + { + if(c == m_codecVec[i]) + return; // don't insert any codec twice + } + + // The m_codecVec.size will at this point return the value we need for the index. + if(codecName == defaultName()) + saveDefaultIndex(m_codecVec.size()); + QString itemText = visibleCodecName.isEmpty() ? codecName : visibleCodecName + QLatin1String(" (") + codecName + QLatin1String(")"); + addItem(itemText, m_codecVec.size()); + m_codecVec.push_back(c); + } + } + void setToDefault() override + { + int index = getDefaultIndex(); + + setCurrentIndex(index); + if(m_ppVarCodec != nullptr) + { + *m_ppVarCodec = m_codecVec[index]; + } + } + void setToCurrent() override + { + if(m_ppVarCodec != nullptr) + { + for(int i = 0; i < m_codecVec.size(); ++i) + { + if(*m_ppVarCodec == m_codecVec[i]) + { + setCurrentIndex(i); + break; + } + } + } + } + using OptionCodec::apply; + void apply() override + { + if(m_ppVarCodec != nullptr) + { + *m_ppVarCodec = m_codecVec[currentIndex()]; + } + } + void write(ValueMap* config) const override + { + if(m_ppVarCodec != nullptr) config->writeEntry(m_saveName, (const char*)(*m_ppVarCodec)->name()); + } + void read(ValueMap* config) override + { + QString codecName = config->readEntry(m_saveName, (const char*)m_codecVec[currentIndex()]->name()); + for(int i = 0; i < m_codecVec.size(); ++i) + { + if(codecName == QLatin1String(m_codecVec[i]->name())) + { + setCurrentIndex(i); + if(m_ppVarCodec != nullptr) *m_ppVarCodec = m_codecVec[i]; + break; + } + } + } + + protected: + void preserve() override { m_preservedVal = currentIndex(); } + void unpreserve() override { setCurrentIndex(m_preservedVal); } + int m_preservedVal; +}; + +void OptionDialog::addOptionItem(OptionItemBase* p) +{ + m_options->addOptionItem(p); +} + +OptionDialog::OptionDialog(bool bShowDirMergeSettings, QWidget* parent) : KPageDialog(parent) +{ + setFaceType(List); + setWindowTitle(i18n("Configure")); + setStandardButtons(QDialogButtonBox::Help | QDialogButtonBox::RestoreDefaults | QDialogButtonBox::Apply | QDialogButtonBox::Ok | QDialogButtonBox::Cancel); + + setModal(true); + setMinimumSize(600, 500); + + //showButtonSeparator( true ); + //setHelp( "kdiff3/index.html", QString::null ); + + m_options->init(); + setupFontPage(); + setupColorPage(); + setupEditPage(); + setupDiffPage(); + setupMergePage(); + setupOtherOptions(); + if(bShowDirMergeSettings) + setupDirectoryMergePage(); + + setupRegionalPage(); + setupIntegrationPage(); + + // Initialize all values in the dialog + resetToDefaults(); + slotApply(); + chk_connect(button(QDialogButtonBox::Apply), &QPushButton::clicked, this, &OptionDialog::slotApply); + chk_connect(button(QDialogButtonBox::Ok), &QPushButton::clicked, this, &OptionDialog::slotOk); + chk_connect(button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, this, &OptionDialog::slotDefault); + chk_connect(button(QDialogButtonBox::Cancel), &QPushButton::clicked, this, &QDialog::reject); + chk_connect(button(QDialogButtonBox::Help), &QPushButton::clicked, this, &OptionDialog::helpRequested); +} + +void OptionDialog::helpRequested() +{ + KHelpClient::invokeHelp(); +} + +OptionDialog::~OptionDialog() = default; + +void OptionDialog::setupOtherOptions() +{ + //TODO move to Options class + addOptionItem(new OptionToggleAction(false, "AutoAdvance", &m_options->m_bAutoAdvance)); + addOptionItem(new OptionToggleAction(true, "ShowWhiteSpaceCharacters", &m_options->m_bShowWhiteSpaceCharacters)); + addOptionItem(new OptionToggleAction(true, "ShowWhiteSpace", &m_options->m_bShowWhiteSpace)); + addOptionItem(new OptionToggleAction(false, "ShowLineNumbers", &m_options->m_bShowLineNumbers)); + addOptionItem(new OptionToggleAction(true, "HorizDiffWindowSplitting", &m_options->m_bHorizDiffWindowSplitting)); + addOptionItem(new OptionToggleAction(false, "WordWrap", &m_options->m_bWordWrap)); + + addOptionItem(new OptionToggleAction(true, "ShowIdenticalFiles", &m_options->m_bDmShowIdenticalFiles)); + + addOptionItem(new OptionStringList(&m_options->m_recentAFiles, "RecentAFiles")); + addOptionItem(new OptionStringList(&m_options->m_recentBFiles, "RecentBFiles")); + addOptionItem(new OptionStringList(&m_options->m_recentCFiles, "RecentCFiles")); + addOptionItem(new OptionStringList(&m_options->m_recentOutputFiles, "RecentOutputFiles")); + addOptionItem(new OptionStringList(&m_options->m_recentEncodings, "RecentEncodings")); +} + +void OptionDialog::setupFontPage() +{ + QFrame* page = new QFrame(); + KPageWidgetItem* pageItem = new KPageWidgetItem(page, i18n("Font")); + + pageItem->setHeader(i18n("Editor & Diff Output Font")); + //not all themes have this icon + if(QIcon::hasThemeIcon(QStringLiteral("font-select-symbolic"))) + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("font-select-symbolic"))); + else + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-font"))); + addPage(pageItem); + + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + //requires QT 5.2 or later. + static const QFont defaultFont = QFontDatabase::systemFont(QFontDatabase::FixedFont); + static QFont defaultAppFont = QApplication::font(); + + OptionFontChooser* pAppFontChooser = new OptionFontChooser(defaultAppFont, "ApplicationFont", &m_options->m_appFont, page); + addOptionItem(pAppFontChooser); + topLayout->addWidget(pAppFontChooser); + pAppFontChooser->setTitle(i18n("Application font")); + + OptionFontChooser* pFontChooser = new OptionFontChooser(defaultFont, "Font", &m_options->m_font, page); + addOptionItem(pFontChooser); + topLayout->addWidget(pFontChooser); + pFontChooser->setTitle(i18n("File view font")); + + QGridLayout* gbox = new QGridLayout(); + topLayout->addLayout(gbox); + //int line=0; + + // This currently does not work (see rendering in class DiffTextWindow) + //OptionCheckBox* pItalicDeltas = new OptionCheckBox( i18n("Italic font for deltas"), false, "ItalicForDeltas", &m_options->m_bItalicForDeltas, page, this ); + //addOptionItem(pItalicDeltas); + //gbox->addWidget( pItalicDeltas, line, 0, 1, 2 ); + //pItalicDeltas->setToolTip( i18n( + // "Selects the italic version of the font for differences.\n" + // "If the font doesn't support italic characters, then this does nothing.") + // ); +} + +void OptionDialog::setupColorPage() +{ + QScrollArea* pageFrame = new QScrollArea(); + KPageWidgetItem* pageItem = new KPageWidgetItem(pageFrame, i18nc("Title for color settings page","Color")); + pageItem->setHeader(i18n("Colors Settings")); + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("colormanagement"))); + addPage(pageItem); + + QVBoxLayout* scrollLayout = new QVBoxLayout(); + scrollLayout->setContentsMargins(2, 2, 2, 2); + scrollLayout->addWidget(pageFrame); + + QScopedPointer scrollArea(new Ui::ScrollArea()); + scrollArea->setupUi(pageFrame); + + QWidget* page = pageFrame->findChild("contents"); + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + QGridLayout* gbox = new QGridLayout(); + gbox->setColumnStretch(1, 5); + topLayout->addLayout(gbox); + + QLabel* label; + int line = 0; + + int depth = QPixmap::defaultDepth(); + bool bLowColor = depth <= 8; + + label = new QLabel(i18n("Editor and Diff Views:"), page); + gbox->addWidget(label, line, 0); + QFont f(label->font()); + f.setBold(true); + label->setFont(f); + ++line; + + OptionColorButton* pFgColor = new OptionColorButton(Qt::black, "FgColor", &m_options->m_fgColor, page); + label = new QLabel(i18n("Foreground color:"), page); + label->setBuddy(pFgColor); + addOptionItem(pFgColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pFgColor, line, 1); + ++line; + + OptionColorButton* pBgColor = new OptionColorButton(Qt::white, "BgColor", &m_options->m_bgColor, page); + label = new QLabel(i18n("Background color:"), page); + label->setBuddy(pBgColor); + addOptionItem(pBgColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pBgColor, line, 1); + + ++line; + + OptionColorButton* pDiffBgColor = new OptionColorButton( + bLowColor ? QColor(Qt::lightGray) : qRgb(224, 224, 224), "DiffBgColor", &m_options->m_diffBgColor, page); + label = new QLabel(i18n("Diff background color:"), page); + label->setBuddy(pDiffBgColor); + addOptionItem(pDiffBgColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pDiffBgColor, line, 1); + ++line; + + OptionColorButton* pColorA = new OptionColorButton( + bLowColor ? qRgb(0, 0, 255) : qRgb(0, 0, 200) /*blue*/, "ColorA", &m_options->m_colorA, page); + label = new QLabel(i18n("Color A:"), page); + label->setBuddy(pColorA); + addOptionItem(pColorA); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColorA, line, 1); + ++line; + + OptionColorButton* pColorB = new OptionColorButton( + bLowColor ? qRgb(0, 128, 0) : qRgb(0, 150, 0) /*green*/, "ColorB", &m_options->m_colorB, page); + label = new QLabel(i18n("Color B:"), page); + label->setBuddy(pColorB); + addOptionItem(pColorB); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColorB, line, 1); + ++line; + + OptionColorButton* pColorC = new OptionColorButton( + bLowColor ? qRgb(128, 0, 128) : qRgb(150, 0, 150) /*magenta*/, "ColorC", &m_options->m_colorC, page); + label = new QLabel(i18n("Color C:"), page); + label->setBuddy(pColorC); + addOptionItem(pColorC); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColorC, line, 1); + ++line; + + OptionColorButton* pColorForConflict = new OptionColorButton(Qt::red, "ColorForConflict", &m_options->m_colorForConflict, page); + label = new QLabel(i18n("Conflict color:"), page); + label->setBuddy(pColorForConflict); + addOptionItem(pColorForConflict); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColorForConflict, line, 1); + ++line; + + OptionColorButton* pColor = new OptionColorButton( + bLowColor ? qRgb(192, 192, 192) : qRgb(220, 220, 100), "CurrentRangeBgColor", &m_options->m_currentRangeBgColor, page); + label = new QLabel(i18n("Current range background color:"), page); + label->setBuddy(pColor); + addOptionItem(pColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColor, line, 1); + ++line; + + pColor = new OptionColorButton( + bLowColor ? qRgb(255, 255, 0) : qRgb(255, 255, 150), "CurrentRangeDiffBgColor", &m_options->m_currentRangeDiffBgColor, page); + label = new QLabel(i18n("Current range diff background color:"), page); + label->setBuddy(pColor); + addOptionItem(pColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColor, line, 1); + ++line; + + pColor = new OptionColorButton(qRgb(0xff, 0xd0, 0x80), "ManualAlignmentRangeColor", &m_options->m_manualHelpRangeColor, page); + label = new QLabel(i18n("Color for manually aligned difference ranges:"), page); + label->setBuddy(pColor); + addOptionItem(pColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColor, line, 1); + ++line; + + label = new QLabel(i18n("Folder Comparison View:"), page); + gbox->addWidget(label, line, 0); + label->setFont(f); + ++line; + + pColor = new OptionColorButton(qRgb(0, 0xd0, 0), "NewestFileColor", &m_options->m_newestFileColor, page); + label = new QLabel(i18n("Newest file color:"), page); + label->setBuddy(pColor); + addOptionItem(pColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColor, line, 1); + QString dirColorTip = i18n("Changing this color will only be effective when starting the next folder comparison."); + label->setToolTip(dirColorTip); + ++line; + + pColor = new OptionColorButton(qRgb(0xf0, 0, 0), "OldestFileColor", &m_options->m_oldestFileColor, page); + label = new QLabel(i18n("Oldest file color:"), page); + label->setBuddy(pColor); + addOptionItem(pColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColor, line, 1); + label->setToolTip(dirColorTip); + ++line; + + pColor = new OptionColorButton(qRgb(0xc0, 0xc0, 0), "MidAgeFileColor", &m_options->m_midAgeFileColor, page); + label = new QLabel(i18n("Middle age file color:"), page); + label->setBuddy(pColor); + addOptionItem(pColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColor, line, 1); + label->setToolTip(dirColorTip); + ++line; + + pColor = new OptionColorButton(qRgb(0, 0, 0), "MissingFileColor", &m_options->m_missingFileColor, page); + label = new QLabel(i18n("Color for missing files:"), page); + label->setBuddy(pColor); + addOptionItem(pColor); + gbox->addWidget(label, line, 0); + gbox->addWidget(pColor, line, 1); + label->setToolTip(dirColorTip); + ++line; + + topLayout->addStretch(10); +} + +void OptionDialog::setupEditPage() +{ + QScrollArea* pageFrame = new QScrollArea(); + KPageWidgetItem* pageItem = new KPageWidgetItem(pageFrame, i18n("Editor")); + pageItem->setHeader(i18n("Editor Behavior")); + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("accessories-text-editor"))); + addPage(pageItem); + + QVBoxLayout* scrollLayout = new QVBoxLayout(); + scrollLayout->setContentsMargins(2, 2, 2, 2); + scrollLayout->addWidget(pageFrame); + + QScopedPointer scrollArea(new Ui::ScrollArea()); + scrollArea->setupUi(pageFrame); + + QWidget* page = pageFrame->findChild("contents"); + + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + QGridLayout* gbox = new QGridLayout(); + gbox->setColumnStretch(1, 5); + topLayout->addLayout(gbox); + QLabel* label; + int line = 0; + + OptionCheckBox* pReplaceTabs = new OptionCheckBox(i18n("Tab inserts spaces"), false, "ReplaceTabs", &m_options->m_bReplaceTabs, page); + addOptionItem(pReplaceTabs); + gbox->addWidget(pReplaceTabs, line, 0, 1, 2); + pReplaceTabs->setToolTip(i18n( + "On: Pressing tab generates the appropriate number of spaces.\n" + "Off: A tab character will be inserted.")); + ++line; + + OptionIntEdit* pTabSize = new OptionIntEdit(8, "TabSize", &m_options->m_tabSize, 1, 100, page); + label = new QLabel(i18n("Tab size:"), page); + label->setBuddy(pTabSize); + addOptionItem(pTabSize); + gbox->addWidget(label, line, 0); + gbox->addWidget(pTabSize, line, 1); + ++line; + + OptionCheckBox* pAutoIndentation = new OptionCheckBox(i18n("Auto indentation"), true, "AutoIndentation", &m_options->m_bAutoIndentation, page); + gbox->addWidget(pAutoIndentation, line, 0, 1, 2); + addOptionItem(pAutoIndentation); + pAutoIndentation->setToolTip(i18n( + "On: The indentation of the previous line is used for a new line.\n")); + ++line; + + OptionCheckBox* pAutoCopySelection = new OptionCheckBox(i18n("Auto copy selection"), false, "AutoCopySelection", &m_options->m_bAutoCopySelection, page); + gbox->addWidget(pAutoCopySelection, line, 0, 1, 2); + addOptionItem(pAutoCopySelection); + pAutoCopySelection->setToolTip(i18n( + "On: Any selection is immediately written to the clipboard.\n" + "Off: You must explicitly copy e.g. via Ctrl-C.")); + ++line; + + label = new QLabel(i18n("Line end style:"), page); + gbox->addWidget(label, line, 0); + + OptionComboBox* pLineEndStyle = new OptionComboBox(eLineEndStyleAutoDetect, "LineEndStyle", (int*)&m_options->m_lineEndStyle, page); + gbox->addWidget(pLineEndStyle, line, 1); + addOptionItem(pLineEndStyle); + pLineEndStyle->insertItem(eLineEndStyleUnix, i18nc("Unix line ending", "Unix")); + pLineEndStyle->insertItem(eLineEndStyleDos, i18nc("Dos/Windows line ending", "Dos/Windows")); + pLineEndStyle->insertItem(eLineEndStyleAutoDetect, i18nc("Automatically detected line ending", "Autodetect")); + + label->setToolTip(i18n( + "Sets the line endings for when an edited file is saved.\n" + "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A")); + ++line; + + topLayout->addStretch(10); +} + +void OptionDialog::setupDiffPage() +{ + QScrollArea* pageFrame = new QScrollArea(); + KPageWidgetItem* pageItem = new KPageWidgetItem(pageFrame, i18n("Diff")); + pageItem->setHeader(i18n("Diff Settings")); + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("text-x-patch"))); + addPage(pageItem); + + QVBoxLayout* scrollLayout = new QVBoxLayout(); + scrollLayout->setContentsMargins(2, 2, 2, 2); + scrollLayout->addWidget(pageFrame); + + QScopedPointer scrollArea(new Ui::ScrollArea()); + scrollArea->setupUi(pageFrame); + + QWidget* page = pageFrame->findChild("contents"); + + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + QGridLayout* gbox = new QGridLayout(); + gbox->setColumnStretch(1, 5); + topLayout->addLayout(gbox); + int line = 0; + + QLabel* label = nullptr; + + m_options->m_bPreserveCarriageReturn = false; + /* + OptionCheckBox* pPreserveCarriageReturn = new OptionCheckBox( i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_options->m_bPreserveCarriageReturn, page, this ); + addOptionItem(pPreserveCarriageReturn); + gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); + pPreserveCarriageReturn->setToolTip( i18n( + "Show carriage return characters '\\r' if they exist.\n" + "Helps to compare files that were modified under different operating systems.") + ); + ++line; +*/ + OptionCheckBox* pIgnoreNumbers = new OptionCheckBox(i18n("Ignore numbers (treat as white space)"), false, "IgnoreNumbers", &m_options->m_bIgnoreNumbers, page); + gbox->addWidget(pIgnoreNumbers, line, 0, 1, 2); + addOptionItem(pIgnoreNumbers); + pIgnoreNumbers->setToolTip(i18n( + "Ignore number characters during line matching phase. (Similar to Ignore white space.)\n" + "Might help to compare files with numeric data.")); + ++line; + + OptionCheckBox* pIgnoreComments = new OptionCheckBox(i18n("Ignore C/C++ comments (treat as white space)"), false, "IgnoreComments", &m_options->m_bIgnoreComments, page); + gbox->addWidget(pIgnoreComments, line, 0, 1, 2); + addOptionItem(pIgnoreComments); + pIgnoreComments->setToolTip(i18n("Treat C/C++ comments like white space.")); + ++line; + + OptionCheckBox* pIgnoreCase = new OptionCheckBox(i18n("Ignore case (treat as white space)"), false, "IgnoreCase", &m_options->m_bIgnoreCase, page); + gbox->addWidget(pIgnoreCase, line, 0, 1, 2); + addOptionItem(pIgnoreCase); + pIgnoreCase->setToolTip(i18n( + "Treat case differences like white space changes. ('a'<=>'A')")); + ++line; + + label = new QLabel(i18n("Preprocessor command:"), page); + gbox->addWidget(label, line, 0); + OptionLineEdit* pLE = new OptionLineEdit("", "PreProcessorCmd", &m_options->m_PreProcessorCmd, page); + gbox->addWidget(pLE, line, 1); + addOptionItem(pLE); + label->setToolTip(i18n("User defined pre-processing. (See the docs for details.)")); + ++line; + + label = new QLabel(i18n("Line-matching preprocessor command:"), page); + gbox->addWidget(label, line, 0); + pLE = new OptionLineEdit("", "LineMatchingPreProcessorCmd", &m_options->m_LineMatchingPreProcessorCmd, page); + gbox->addWidget(pLE, line, 1); + addOptionItem(pLE); + label->setToolTip(i18n("This pre-processor is only used during line matching.\n(See the docs for details.)")); + ++line; + + OptionCheckBox* pTryHard = new OptionCheckBox(i18n("Try hard (slower)"), true, "TryHard", &m_options->m_bTryHard, page); + gbox->addWidget(pTryHard, line, 0, 1, 2); + addOptionItem(pTryHard); + pTryHard->setToolTip(i18n( + "Enables the --minimal option for the external diff.\n" + "The analysis of big files will be much slower.")); + ++line; + + OptionCheckBox* pDiff3AlignBC = new OptionCheckBox(i18n("Align B and C for 3 input files"), false, "Diff3AlignBC", &m_options->m_bDiff3AlignBC, page); + gbox->addWidget(pDiff3AlignBC, line, 0, 1, 2); + addOptionItem(pDiff3AlignBC); + pDiff3AlignBC->setToolTip(i18n( + "Try to align B and C when comparing or merging three input files.\n" + "Not recommended for merging because merge might get more complicated.\n" + "(Default is off.)")); + ++line; + + topLayout->addStretch(10); +} + +void OptionDialog::setupMergePage() +{ + QScrollArea* pageFrame = new QScrollArea(); + KPageWidgetItem* pageItem = new KPageWidgetItem(pageFrame, i18nc("Settings page", "Merge")); + pageItem->setHeader(i18n("Merge Settings")); + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("merge"))); + addPage(pageItem); + + QVBoxLayout* scrollLayout = new QVBoxLayout(); + scrollLayout->setContentsMargins(2, 2, 2, 2); + scrollLayout->addWidget(pageFrame); + + QScopedPointer scrollArea(new Ui::ScrollArea()); + scrollArea->setupUi(pageFrame); + + QWidget* page = pageFrame->findChild("contents"); + + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + QGridLayout* gbox = new QGridLayout(); + gbox->setColumnStretch(1, 5); + topLayout->addLayout(gbox); + int line = 0; + + QLabel* label = nullptr; + + label = new QLabel(i18n("Auto advance delay (ms):"), page); + gbox->addWidget(label, line, 0); + OptionIntEdit* pAutoAdvanceDelay = new OptionIntEdit(500, "AutoAdvanceDelay", &m_options->m_autoAdvanceDelay, 0, 2000, page); + gbox->addWidget(pAutoAdvanceDelay, line, 1); + addOptionItem(pAutoAdvanceDelay); + label->setToolTip(i18n( + "When in Auto-Advance mode the result of the current selection is shown \n" + "for the specified time, before jumping to the next conflict. Range: 0-2000 ms")); + ++line; + + OptionCheckBox* pShowInfoDialogs = new OptionCheckBox(i18n("Show info dialogs"), true, "ShowInfoDialogs", &m_options->m_bShowInfoDialogs, page); + gbox->addWidget(pShowInfoDialogs, line, 0, 1, 2); + addOptionItem(pShowInfoDialogs); + pShowInfoDialogs->setToolTip(i18n("Show a dialog with information about the number of conflicts.")); + ++line; + + label = new QLabel(i18n("White space 2-file merge default:"), page); + gbox->addWidget(label, line, 0); + OptionComboBox* pWhiteSpace2FileMergeDefault = new OptionComboBox(0, "WhiteSpace2FileMergeDefault", &m_options->m_whiteSpace2FileMergeDefault, page); + gbox->addWidget(pWhiteSpace2FileMergeDefault, line, 1); + addOptionItem(pWhiteSpace2FileMergeDefault); + pWhiteSpace2FileMergeDefault->insertItem(0, i18n("Manual Choice")); + pWhiteSpace2FileMergeDefault->insertItem(1, i18n("A")); + pWhiteSpace2FileMergeDefault->insertItem(2, i18n("B")); + label->setToolTip(i18n( + "Allow the merge algorithm to automatically select an input for " + "white-space-only changes.")); + ++line; + + label = new QLabel(i18n("White space 3-file merge default:"), page); + gbox->addWidget(label, line, 0); + OptionComboBox* pWhiteSpace3FileMergeDefault = new OptionComboBox(0, "WhiteSpace3FileMergeDefault", &m_options->m_whiteSpace3FileMergeDefault, page); + gbox->addWidget(pWhiteSpace3FileMergeDefault, line, 1); + addOptionItem(pWhiteSpace3FileMergeDefault); + pWhiteSpace3FileMergeDefault->insertItem(0, i18n("Manual Choice")); + pWhiteSpace3FileMergeDefault->insertItem(1, i18n("A")); + pWhiteSpace3FileMergeDefault->insertItem(2, i18n("B")); + pWhiteSpace3FileMergeDefault->insertItem(3, i18n("C")); + label->setToolTip(i18n( + "Allow the merge algorithm to automatically select an input for " + "white-space-only changes.")); + ++line; + + QGroupBox* pGroupBox = new QGroupBox(i18n("Automatic Merge Regular Expression")); + gbox->addWidget(pGroupBox, line, 0, 1, 2); + ++line; + { + gbox = new QGridLayout(pGroupBox); + gbox->setColumnStretch(1, 10); + line = 0; + + label = new QLabel(i18n("Auto merge regular expression:"), page); + gbox->addWidget(label, line, 0); + m_pAutoMergeRegExpLineEdit = new OptionLineEdit(".*\\$(Version|Header|Date|Author).*\\$.*", "AutoMergeRegExp", &m_options->m_autoMergeRegExp, page); + gbox->addWidget(m_pAutoMergeRegExpLineEdit, line, 1); + addOptionItem(m_pAutoMergeRegExpLineEdit); + label->setToolTip(s_autoMergeRegExpToolTip); + ++line; + + OptionCheckBox* pAutoMergeRegExp = new OptionCheckBox(i18n("Run regular expression auto merge on merge start"), false, "RunRegExpAutoMergeOnMergeStart", &m_options->m_bRunRegExpAutoMergeOnMergeStart, page); + addOptionItem(pAutoMergeRegExp); + gbox->addWidget(pAutoMergeRegExp, line, 0, 1, 2); + pAutoMergeRegExp->setToolTip(i18n("Run the merge for auto merge regular expressions\n" + "immediately when a merge starts.\n")); + ++line; + } + + pGroupBox = new QGroupBox(i18n("Version Control History Merging")); + gbox->addWidget(pGroupBox, line, 0, 1, 2); + ++line; + { + gbox = new QGridLayout(pGroupBox); + gbox->setColumnStretch(1, 10); + line = 0; + + label = new QLabel(i18n("History start regular expression:"), page); + gbox->addWidget(label, line, 0); + m_pHistoryStartRegExpLineEdit = new OptionLineEdit(".*\\$Log.*\\$.*", "HistoryStartRegExp", &m_options->m_historyStartRegExp, page); + gbox->addWidget(m_pHistoryStartRegExpLineEdit, line, 1); + addOptionItem(m_pHistoryStartRegExpLineEdit); + label->setToolTip(s_historyStartRegExpToolTip); + ++line; + + label = new QLabel(i18n("History entry start regular expression:"), page); + gbox->addWidget(label, line, 0); + // Example line: "** \main\rolle_fsp_dev_008\1 17 Aug 2001 10:45:44 rolle" + QString historyEntryStartDefault = + "\\s*\\\\main\\\\(\\S+)\\s+" // Start with "\main\" + "([0-9]+) " // day + "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) " //month + "([0-9][0-9][0-9][0-9]) " // year + "([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\s+(.*)"; // time, name + + m_pHistoryEntryStartRegExpLineEdit = new OptionLineEdit(historyEntryStartDefault, "HistoryEntryStartRegExp", &m_options->m_historyEntryStartRegExp, page); + gbox->addWidget(m_pHistoryEntryStartRegExpLineEdit, line, 1); + addOptionItem(m_pHistoryEntryStartRegExpLineEdit); + label->setToolTip(s_historyEntryStartRegExpToolTip); + ++line; + + m_pHistoryMergeSorting = new OptionCheckBox(i18n("History merge sorting"), false, "HistoryMergeSorting", &m_options->m_bHistoryMergeSorting, page); + gbox->addWidget(m_pHistoryMergeSorting, line, 0, 1, 2); + addOptionItem(m_pHistoryMergeSorting); + m_pHistoryMergeSorting->setToolTip(i18n("Sort version control history by a key.")); + ++line; + //QString branch = newHistoryEntry.cap(1); + //int day = newHistoryEntry.cap(2).toInt(); + //int month = QString("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec").find(newHistoryEntry.cap(3))/4 + 1; + //int year = newHistoryEntry.cap(4).toInt(); + //QString time = newHistoryEntry.cap(5); + //QString name = newHistoryEntry.cap(6); + QString defaultSortKeyOrder = "4,3,2,5,1,6"; //QDate(year,month,day).toString(Qt::ISODate) +" "+ time + " " + branch + " " + name; + + label = new QLabel(i18n("History entry start sort key order:"), page); + gbox->addWidget(label, line, 0); + m_pHistorySortKeyOrderLineEdit = new OptionLineEdit(defaultSortKeyOrder, "HistoryEntryStartSortKeyOrder", &m_options->m_historyEntryStartSortKeyOrder, page); + gbox->addWidget(m_pHistorySortKeyOrderLineEdit, line, 1); + addOptionItem(m_pHistorySortKeyOrderLineEdit); + label->setToolTip(s_historyEntryStartSortKeyOrderToolTip); + m_pHistorySortKeyOrderLineEdit->setEnabled(false); + chk_connect(m_pHistoryMergeSorting, &OptionCheckBox::toggled, m_pHistorySortKeyOrderLineEdit, &OptionLineEdit::setEnabled); + ++line; + + m_pHistoryAutoMerge = new OptionCheckBox(i18n("Merge version control history on merge start"), false, "RunHistoryAutoMergeOnMergeStart", &m_options->m_bRunHistoryAutoMergeOnMergeStart, page); + addOptionItem(m_pHistoryAutoMerge); + gbox->addWidget(m_pHistoryAutoMerge, line, 0, 1, 2); + m_pHistoryAutoMerge->setToolTip(i18n("Run version control history automerge on merge start.")); + ++line; + + OptionIntEdit* pMaxNofHistoryEntries = new OptionIntEdit(-1, "MaxNofHistoryEntries", &m_options->m_maxNofHistoryEntries, -1, 1000, page); + label = new QLabel(i18n("Max number of history entries:"), page); + gbox->addWidget(label, line, 0); + gbox->addWidget(pMaxNofHistoryEntries, line, 1); + addOptionItem(pMaxNofHistoryEntries); + pMaxNofHistoryEntries->setToolTip(i18n("Cut off after specified number. Use -1 for infinite number of entries.")); + ++line; + } + + QPushButton* pButton = new QPushButton(i18n("Test your regular expressions"), page); + gbox->addWidget(pButton, line, 0); + chk_connect(pButton, &QPushButton::clicked, this, &OptionDialog::slotHistoryMergeRegExpTester); + ++line; + + label = new QLabel(i18n("Irrelevant merge command:"), page); + gbox->addWidget(label, line, 0); + OptionLineEdit* pLE = new OptionLineEdit("", "IrrelevantMergeCmd", &m_options->m_IrrelevantMergeCmd, page); + gbox->addWidget(pLE, line, 1); + addOptionItem(pLE); + label->setToolTip(i18n("If specified this script is run after automerge\n" + "when no other relevant changes were detected.\n" + "Called with the parameters: filename1 filename2 filename3")); + ++line; + + OptionCheckBox* pAutoSaveAndQuit = new OptionCheckBox(i18n("Auto save and quit on merge without conflicts"), false, + "AutoSaveAndQuitOnMergeWithoutConflicts", &m_options->m_bAutoSaveAndQuitOnMergeWithoutConflicts, page); + gbox->addWidget(pAutoSaveAndQuit, line, 0, 1, 2); + addOptionItem(pAutoSaveAndQuit); + pAutoSaveAndQuit->setToolTip(i18n("If KDiff3 was started for a file-merge from the command line and all\n" + "conflicts are solvable without user interaction then automatically save and quit.\n" + "(Similar to command line option \"--auto\".)")); + ++line; + + topLayout->addStretch(10); +} + +void OptionDialog::setupDirectoryMergePage() +{ + QScrollArea* pageFrame = new QScrollArea(); + KPageWidgetItem* pageItem = new KPageWidgetItem(pageFrame, i18n("Folder")); + pageItem->setHeader(i18n("Folder")); + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("inode-directory"))); + addPage(pageItem); + + QVBoxLayout* scrollLayout = new QVBoxLayout(); + scrollLayout->setContentsMargins(2, 2, 2, 2); + scrollLayout->addWidget(pageFrame); + + QScopedPointer scrollArea(new Ui::ScrollArea()); + scrollArea->setupUi(pageFrame); + + QWidget* page = pageFrame->findChild("contents"); + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + QGridLayout* gbox = new QGridLayout(); + gbox->setColumnStretch(1, 5); + topLayout->addLayout(gbox); + int line = 0; + + OptionCheckBox* pRecursiveDirs = new OptionCheckBox(i18n("Recursive folders"), true, "RecursiveDirs", &m_options->m_bDmRecursiveDirs, page); + gbox->addWidget(pRecursiveDirs, line, 0, 1, 2); + addOptionItem(pRecursiveDirs); + pRecursiveDirs->setToolTip(i18n("Whether to analyze subfolders or not.")); + ++line; + QLabel* label = new QLabel(i18n("File pattern(s):"), page); + gbox->addWidget(label, line, 0); + OptionLineEdit* pFilePattern = new OptionLineEdit("*", "FilePattern", &m_options->m_DmFilePattern, page); + gbox->addWidget(pFilePattern, line, 1); + addOptionItem(pFilePattern); + label->setToolTip(i18n( + "Pattern(s) of files to be analyzed. \n" + "Wildcards: '*' and '?'\n" + "Several Patterns can be specified by using the separator: ';'")); + ++line; + + label = new QLabel(i18n("File-anti-pattern(s):"), page); + gbox->addWidget(label, line, 0); + OptionLineEdit* pFileAntiPattern = new OptionLineEdit("*.orig;*.o;*.obj;*.rej;*.bak", "FileAntiPattern", &m_options->m_DmFileAntiPattern, page); + gbox->addWidget(pFileAntiPattern, line, 1); + addOptionItem(pFileAntiPattern); + label->setToolTip(i18n( + "Pattern(s) of files to be excluded from analysis. \n" + "Wildcards: '*' and '?'\n" + "Several Patterns can be specified by using the separator: ';'")); + ++line; + + label = new QLabel(i18n("Folder-anti-pattern(s):"), page); + gbox->addWidget(label, line, 0); + OptionLineEdit* pDirAntiPattern = new OptionLineEdit("CVS;.deps;.svn;.hg;.git", "DirAntiPattern", &m_options->m_DmDirAntiPattern, page); + gbox->addWidget(pDirAntiPattern, line, 1); + addOptionItem(pDirAntiPattern); + label->setToolTip(i18n( + "Pattern(s) of folders to be excluded from analysis. \n" + "Wildcards: '*' and '?'\n" + "Several Patterns can be specified by using the separator: ';'")); + ++line; + + OptionCheckBox* pUseCvsIgnore = new OptionCheckBox(i18n("Use Ignore File"), false, "UseCvsIgnore", &m_options->m_bDmUseCvsIgnore, page); + gbox->addWidget(pUseCvsIgnore, line, 0, 1, 2); + addOptionItem(pUseCvsIgnore); + pUseCvsIgnore->setToolTip(i18n( + "Extends the antipattern to anything that would be ignored by source control.\n" + "Via local ignore files this can be folder-specific.")); + ++line; + + OptionCheckBox* pFindHidden = new OptionCheckBox(i18n("Find hidden files and folders"), true, "FindHidden", &m_options->m_bDmFindHidden, page); + gbox->addWidget(pFindHidden, line, 0, 1, 2); + addOptionItem(pFindHidden); + pFindHidden->setToolTip(i18n("Finds hidden files and folders.")); + ++line; + + OptionCheckBox* pFollowFileLinks = new OptionCheckBox(i18n("Follow file links"), true, "FollowFileLinks", &m_options->m_bDmFollowFileLinks, page); + gbox->addWidget(pFollowFileLinks, line, 0, 1, 2); + addOptionItem(pFollowFileLinks); + pFollowFileLinks->setToolTip(i18n( + "On: Compare the file the link points to.\n" + "Off: Compare the links.")); + ++line; + + OptionCheckBox* pFollowDirLinks = new OptionCheckBox(i18n("Follow folder links"), true, "FollowDirLinks", &m_options->m_bDmFollowDirLinks, page); + gbox->addWidget(pFollowDirLinks, line, 0, 1, 2); + addOptionItem(pFollowDirLinks); + pFollowDirLinks->setToolTip(i18n( + "On: Compare the folder the link points to.\n" + "Off: Compare the links.")); + ++line; + +#if defined(Q_OS_WIN) + bool bCaseSensitiveFilenameComparison = false; +#else + bool bCaseSensitiveFilenameComparison = true; +#endif + OptionCheckBox* pCaseSensitiveFileNames = new OptionCheckBox(i18n("Case sensitive filename comparison"), bCaseSensitiveFilenameComparison, "CaseSensitiveFilenameComparison", &m_options->m_bDmCaseSensitiveFilenameComparison, page); + gbox->addWidget(pCaseSensitiveFileNames, line, 0, 1, 2); + addOptionItem(pCaseSensitiveFileNames); + pCaseSensitiveFileNames->setToolTip(i18n( + "The folder comparison will compare files or folders when their names match.\n" + "Set this option if the case of the names must match. (Default for Windows is off, otherwise on.)")); + ++line; + + OptionCheckBox* pUnfoldSubdirs = new OptionCheckBox(i18n("Unfold all subfolders on load"), false, "UnfoldSubdirs", &m_options->m_bDmUnfoldSubdirs, page); + gbox->addWidget(pUnfoldSubdirs, line, 0, 1, 2); + addOptionItem(pUnfoldSubdirs); + pUnfoldSubdirs->setToolTip(i18n( + "On: Unfold all subfolders when starting a folder diff.\n" + "Off: Leave subfolders folded.")); + ++line; + + OptionCheckBox* pSkipDirStatus = new OptionCheckBox(i18n("Skip folder status report"), false, "SkipDirStatus", &m_options->m_bDmSkipDirStatus, page); + gbox->addWidget(pSkipDirStatus, line, 0, 1, 2); + addOptionItem(pSkipDirStatus); + pSkipDirStatus->setToolTip(i18n( + "On: Do not show the Folder Comparison Status.\n" + "Off: Show the status dialog on start.")); + ++line; + + QGroupBox* pBG = new QGroupBox(i18n("File Comparison Mode")); + gbox->addWidget(pBG, line, 0, 1, 2); + + QVBoxLayout* pBGLayout = new QVBoxLayout(pBG); + + OptionRadioButton* pBinaryComparison = new OptionRadioButton(i18n("Binary comparison"), true, "BinaryComparison", &m_options->m_bDmBinaryComparison, pBG); + addOptionItem(pBinaryComparison); + pBinaryComparison->setToolTip(i18n("Binary comparison of each file. (Default)")); + pBGLayout->addWidget(pBinaryComparison); + + OptionRadioButton* pFullAnalysis = new OptionRadioButton(i18n("Full analysis"), false, "FullAnalysis", &m_options->m_bDmFullAnalysis, pBG); + addOptionItem(pFullAnalysis); + pFullAnalysis->setToolTip(i18n("Do a full analysis and show statistics information in extra columns.\n" + "(Slower than a binary comparison, much slower for binary files.)")); + pBGLayout->addWidget(pFullAnalysis); + + OptionRadioButton* pTrustDate = new OptionRadioButton(i18n("Trust the size and modification date (unsafe)"), false, "TrustDate", &m_options->m_bDmTrustDate, pBG); + addOptionItem(pTrustDate); + pTrustDate->setToolTip(i18n("Assume that files are equal if the modification date and file length are equal.\n" + "Files with equal contents but different modification dates will appear as different.\n" + "Useful for big folders or slow networks.")); + pBGLayout->addWidget(pTrustDate); + + OptionRadioButton* pTrustDateFallbackToBinary = new OptionRadioButton(i18n("Trust the size and date, but use binary comparison if date does not match (unsafe)"), false, "TrustDateFallbackToBinary", &m_options->m_bDmTrustDateFallbackToBinary, pBG); + addOptionItem(pTrustDateFallbackToBinary); + pTrustDateFallbackToBinary->setToolTip(i18n("Assume that files are equal if the modification date and file length are equal.\n" + "If the dates are not equal but the sizes are, use binary comparison.\n" + "Useful for big folders or slow networks.")); + pBGLayout->addWidget(pTrustDateFallbackToBinary); + + OptionRadioButton* pTrustSize = new OptionRadioButton(i18n("Trust the size (unsafe)"), false, "TrustSize", &m_options->m_bDmTrustSize, pBG); + addOptionItem(pTrustSize); + pTrustSize->setToolTip(i18n("Assume that files are equal if their file lengths are equal.\n" + "Useful for big folders or slow networks when the date is modified during download.")); + pBGLayout->addWidget(pTrustSize); + + ++line; + + // Some two Dir-options: Affects only the default actions. + OptionCheckBox* pSyncMode = new OptionCheckBox(i18n("Synchronize folders"), false, "SyncMode", &m_options->m_bDmSyncMode, page); + addOptionItem(pSyncMode); + gbox->addWidget(pSyncMode, line, 0, 1, 2); + pSyncMode->setToolTip(i18n( + "Offers to store files in both folders so that\n" + "both folders are the same afterwards.\n" + "Works only when comparing two folders without specifying a destination.")); + ++line; + + // Allow white-space only differences to be considered equal + OptionCheckBox* pWhiteSpaceDiffsEqual = new OptionCheckBox(i18n("White space differences considered equal"), true, "WhiteSpaceEqual", &m_options->m_bDmWhiteSpaceEqual, page); + addOptionItem(pWhiteSpaceDiffsEqual); + gbox->addWidget(pWhiteSpaceDiffsEqual, line, 0, 1, 2); + pWhiteSpaceDiffsEqual->setToolTip(i18n( + "If files differ only by white space consider them equal.\n" + "This is only active when full analysis is chosen.")); + chk_connect(pFullAnalysis, &OptionRadioButton::toggled, pWhiteSpaceDiffsEqual, &OptionCheckBox::setEnabled); + pWhiteSpaceDiffsEqual->setEnabled(false); + ++line; + + OptionCheckBox* pCopyNewer = new OptionCheckBox(i18n("Copy newer instead of merging (unsafe)"), false, "CopyNewer", &m_options->m_bDmCopyNewer, page); + addOptionItem(pCopyNewer); + gbox->addWidget(pCopyNewer, line, 0, 1, 2); + pCopyNewer->setToolTip(i18n( + "Do not look inside, just take the newer file.\n" + "(Use this only if you know what you are doing!)\n" + "Only effective when comparing two folders.")); + ++line; + + OptionCheckBox* pCreateBakFiles = new OptionCheckBox(i18n("Backup files (.orig)"), true, "CreateBakFiles", &m_options->m_bDmCreateBakFiles, page); + gbox->addWidget(pCreateBakFiles, line, 0, 1, 2); + addOptionItem(pCreateBakFiles); + pCreateBakFiles->setToolTip(i18n( + "If a file would be saved over an old file, then the old file\n" + "will be renamed with a '.orig' extension instead of being deleted.")); + ++line; + + topLayout->addStretch(10); +} +void OptionDialog::setupRegionalPage() +{ + QScrollArea* pageFrame = new QScrollArea(); + KPageWidgetItem* pageItem = new KPageWidgetItem(pageFrame, i18n("Regional Settings")); + pageItem->setHeader(i18n("Regional Settings")); + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("preferences-desktop-locale"))); + addPage(pageItem); + + QVBoxLayout* scrollLayout = new QVBoxLayout(); + scrollLayout->setContentsMargins(2, 2, 2, 2); + scrollLayout->addWidget(pageFrame); + + QScopedPointer scrollArea(new Ui::ScrollArea()); + scrollArea->setupUi(pageFrame); + + QWidget* page = pageFrame->findChild("contents"); + + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + QGridLayout* gbox = new QGridLayout(); + gbox->setColumnStretch(1, 5); + topLayout->addLayout(gbox); + int line = 0; + + QLabel* label; + + m_pSameEncoding = new OptionCheckBox(i18n("Use the same encoding for everything:"), true, "SameEncoding", &m_options->m_bSameEncoding, page); + addOptionItem(m_pSameEncoding); + gbox->addWidget(m_pSameEncoding, line, 0, 1, 2); + m_pSameEncoding->setToolTip(i18n( + "Enable this allows to change all encodings by changing the first only.\n" + "Disable this if different individual settings are needed.")); + ++line; + + label = new QLabel(i18n("Note: Local Encoding is \"%1\"", QLatin1String(QTextCodec::codecForLocale()->name())), page); + gbox->addWidget(label, line, 0); + ++line; + + label = new QLabel(i18n("File Encoding for A:"), page); + gbox->addWidget(label, line, 0); + m_pEncodingAComboBox = new OptionEncodingComboBox("EncodingForA", &m_options->m_pEncodingA, page); + addOptionItem(m_pEncodingAComboBox); + gbox->addWidget(m_pEncodingAComboBox, line, 1); + + QString autoDetectToolTip = i18n( + "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" + "If the file is not Unicode then the selected encoding will be used as fallback.\n" + "(Unicode detection depends on the first bytes of a file.)"); + m_pAutoDetectUnicodeA = new OptionCheckBox(i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeA", &m_options->m_bAutoDetectUnicodeA, page); + gbox->addWidget(m_pAutoDetectUnicodeA, line, 2); + addOptionItem(m_pAutoDetectUnicodeA); + m_pAutoDetectUnicodeA->setToolTip(autoDetectToolTip); + ++line; + + label = new QLabel(i18n("File Encoding for B:"), page); + gbox->addWidget(label, line, 0); + m_pEncodingBComboBox = new OptionEncodingComboBox("EncodingForB", &m_options->m_pEncodingB, page); + addOptionItem(m_pEncodingBComboBox); + gbox->addWidget(m_pEncodingBComboBox, line, 1); + m_pAutoDetectUnicodeB = new OptionCheckBox(i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeB", &m_options->m_bAutoDetectUnicodeB, page); + addOptionItem(m_pAutoDetectUnicodeB); + gbox->addWidget(m_pAutoDetectUnicodeB, line, 2); + m_pAutoDetectUnicodeB->setToolTip(autoDetectToolTip); + ++line; + + label = new QLabel(i18n("File Encoding for C:"), page); + gbox->addWidget(label, line, 0); + m_pEncodingCComboBox = new OptionEncodingComboBox("EncodingForC", &m_options->m_pEncodingC, page); + addOptionItem(m_pEncodingCComboBox); + gbox->addWidget(m_pEncodingCComboBox, line, 1); + m_pAutoDetectUnicodeC = new OptionCheckBox(i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeC", &m_options->m_bAutoDetectUnicodeC, page); + addOptionItem(m_pAutoDetectUnicodeC); + gbox->addWidget(m_pAutoDetectUnicodeC, line, 2); + m_pAutoDetectUnicodeC->setToolTip(autoDetectToolTip); + ++line; + + label = new QLabel(i18n("File Encoding for Merge Output and Saving:"), page); + gbox->addWidget(label, line, 0); + m_pEncodingOutComboBox = new OptionEncodingComboBox("EncodingForOutput", &m_options->m_pEncodingOut, page); + addOptionItem(m_pEncodingOutComboBox); + gbox->addWidget(m_pEncodingOutComboBox, line, 1); + m_pAutoSelectOutEncoding = new OptionCheckBox(i18n("Auto Select"), true, "AutoSelectOutEncoding", &m_options->m_bAutoSelectOutEncoding, page); + addOptionItem(m_pAutoSelectOutEncoding); + gbox->addWidget(m_pAutoSelectOutEncoding, line, 2); + m_pAutoSelectOutEncoding->setToolTip(i18n( + "If enabled then the encoding from the input files is used.\n" + "In ambiguous cases a dialog will ask the user to choose the encoding for saving.")); + ++line; + label = new QLabel(i18n("File Encoding for Preprocessor Files:"), page); + gbox->addWidget(label, line, 0); + m_pEncodingPPComboBox = new OptionEncodingComboBox("EncodingForPP", &m_options->m_pEncodingPP, page); + addOptionItem(m_pEncodingPPComboBox); + gbox->addWidget(m_pEncodingPPComboBox, line, 1); + ++line; + + chk_connect(m_pSameEncoding, &OptionCheckBox::toggled, this, &OptionDialog::slotEncodingChanged); + chk_connect(m_pEncodingAComboBox, static_cast(&OptionEncodingComboBox::activated), this, &OptionDialog::slotEncodingChanged); + chk_connect(m_pAutoDetectUnicodeA, &OptionCheckBox::toggled, this, &OptionDialog::slotEncodingChanged); + chk_connect(m_pAutoSelectOutEncoding, &OptionCheckBox::toggled, this, &OptionDialog::slotEncodingChanged); + + OptionCheckBox* pRightToLeftLanguage = new OptionCheckBox(i18n("Right To Left Language"), false, "RightToLeftLanguage", &m_options->m_bRightToLeftLanguage, page); + addOptionItem(pRightToLeftLanguage); + gbox->addWidget(pRightToLeftLanguage, line, 0, 1, 2); + pRightToLeftLanguage->setToolTip(i18n( + "Some languages are read from right to left.\n" + "This setting will change the viewer and editor accordingly.")); + ++line; + + topLayout->addStretch(10); +} + +void OptionDialog::setupIntegrationPage() +{ + QScrollArea* pageFrame = new QScrollArea(); + KPageWidgetItem* pageItem = new KPageWidgetItem(pageFrame, i18n("Integration")); + pageItem->setHeader(i18n("Integration Settings")); + pageItem->setIcon(QIcon::fromTheme(QStringLiteral("utilities-terminal"))); + addPage(pageItem); + + QVBoxLayout* scrollLayout = new QVBoxLayout(); + scrollLayout->setContentsMargins(2, 2, 2, 2); + scrollLayout->addWidget(pageFrame); + + QScopedPointer scrollArea(new Ui::ScrollArea()); + scrollArea->setupUi(pageFrame); + + QWidget* page = pageFrame->findChild("contents"); + QVBoxLayout* topLayout = new QVBoxLayout(page); + topLayout->setContentsMargins(5, 5, 5, 5); + + QGridLayout* gbox = new QGridLayout(); + gbox->setColumnStretch(2, 5); + topLayout->addLayout(gbox); + int line = 0; + + QLabel* label; + label = new QLabel(i18n("Command line options to ignore:"), page); + gbox->addWidget(label, line, 0); + OptionLineEdit* pIgnorableCmdLineOptions = new OptionLineEdit("-u;-query;-html;-abort", "IgnorableCmdLineOptions", &m_options->m_ignorableCmdLineOptions, page); + gbox->addWidget(pIgnorableCmdLineOptions, line, 1, 1, 2); + addOptionItem(pIgnorableCmdLineOptions); + label->setToolTip(i18n( + "List of command line options that should be ignored when KDiff3 is used by other tools.\n" + "Several values can be specified if separated via ';'\n" + "This will suppress the \"Unknown option\" error.")); + ++line; + + OptionCheckBox* pEscapeKeyQuits = new OptionCheckBox(i18n("Quit also via Escape key"), false, "EscapeKeyQuits", &m_options->m_bEscapeKeyQuits, page); + gbox->addWidget(pEscapeKeyQuits, line, 0, 1, 2); + addOptionItem(pEscapeKeyQuits); + pEscapeKeyQuits->setToolTip(i18n( + "Fast method to exit.\n" + "For those who are used to using the Escape key.")); + ++line; + + topLayout->addStretch(10); +} + + +void OptionDialog::slotEncodingChanged() +{ + if(m_pSameEncoding->isChecked()) + { + m_pEncodingBComboBox->setEnabled(false); + m_pEncodingBComboBox->setCurrentIndex(m_pEncodingAComboBox->currentIndex()); + m_pEncodingCComboBox->setEnabled(false); + m_pEncodingCComboBox->setCurrentIndex(m_pEncodingAComboBox->currentIndex()); + m_pEncodingOutComboBox->setEnabled(false); + m_pEncodingOutComboBox->setCurrentIndex(m_pEncodingAComboBox->currentIndex()); + m_pEncodingPPComboBox->setEnabled(false); + m_pEncodingPPComboBox->setCurrentIndex(m_pEncodingAComboBox->currentIndex()); + m_pAutoDetectUnicodeB->setEnabled(false); + m_pAutoDetectUnicodeB->setCheckState(m_pAutoDetectUnicodeA->checkState()); + m_pAutoDetectUnicodeC->setEnabled(false); + m_pAutoDetectUnicodeC->setCheckState(m_pAutoDetectUnicodeA->checkState()); + m_pAutoSelectOutEncoding->setEnabled(false); + m_pAutoSelectOutEncoding->setCheckState(m_pAutoDetectUnicodeA->checkState()); + } + else + { + m_pEncodingBComboBox->setEnabled(true); + m_pEncodingCComboBox->setEnabled(true); + m_pEncodingOutComboBox->setEnabled(true); + m_pEncodingPPComboBox->setEnabled(true); + m_pAutoDetectUnicodeB->setEnabled(true); + m_pAutoDetectUnicodeC->setEnabled(true); + m_pAutoSelectOutEncoding->setEnabled(true); + m_pEncodingOutComboBox->setEnabled(m_pAutoSelectOutEncoding->checkState() == Qt::Unchecked); + } +} + +void OptionDialog::slotOk() +{ + slotApply(); + + accept(); +} + +/** Copy the values from the widgets to the public variables.*/ +void OptionDialog::slotApply() +{ + m_options->apply(); + + Q_EMIT applyDone(); +} + +/** Set the default values in the widgets only, while the + public variables remain unchanged. */ +void OptionDialog::slotDefault() +{ + int result = KMessageBox::warningContinueCancel(this, i18n("This resets all options. Not only those of the current topic.")); + if(result == KMessageBox::Cancel) + return; + else + resetToDefaults(); +} + +void OptionDialog::resetToDefaults() +{ + m_options->resetToDefaults(); + slotEncodingChanged(); +} + +/** Initialise the widgets using the values in the public varibles. */ +void OptionDialog::setState() +{ + m_options->setToCurrent(); + + slotEncodingChanged(); +} + +void OptionDialog::saveOptions(KSharedConfigPtr config) +{ + // No i18n()-Translations here! + m_options->saveOptions(config); +} + +void OptionDialog::readOptions(KSharedConfigPtr config) +{ + // No i18n()-Translations here! + m_options->readOptions(config); + + setState(); +} + +const QString OptionDialog::parseOptions(const QStringList& optionList) +{ + + return m_options->parseOptions(optionList); +} + +QString OptionDialog::calcOptionHelp() +{ + return m_options->calcOptionHelp(); +} + +void OptionDialog::slotHistoryMergeRegExpTester() +{ + QPointer dlg=QPointer(new RegExpTester(this, s_autoMergeRegExpToolTip, s_historyStartRegExpToolTip, + s_historyEntryStartRegExpToolTip, s_historyEntryStartSortKeyOrderToolTip)); + dlg->init(m_pAutoMergeRegExpLineEdit->currentText(), m_pHistoryStartRegExpLineEdit->currentText(), + m_pHistoryEntryStartRegExpLineEdit->currentText(), m_pHistorySortKeyOrderLineEdit->currentText()); + if(dlg->exec()) + { + m_pAutoMergeRegExpLineEdit->setEditText(dlg->autoMergeRegExp()); + m_pHistoryStartRegExpLineEdit->setEditText(dlg->historyStartRegExp()); + m_pHistoryEntryStartRegExpLineEdit->setEditText(dlg->historyEntryStartRegExp()); + m_pHistorySortKeyOrderLineEdit->setEditText(dlg->historySortKeyOrder()); + } +} + +#include "optiondialog.moc" diff --git a/src/optiondialog.h b/src/optiondialog.h new file mode 100644 index 0000000..a90ea52 --- /dev/null +++ b/src/optiondialog.h @@ -0,0 +1,122 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef OPTION_DIALOG_H +#define OPTION_DIALOG_H + +#include "options.h" + +#include // for QSharedPointer +#include +#include + +#include +#include + + +class QLabel; +class QPlainTextEdit; + +class OptionItemBase; +class OptionCheckBox; +class OptionEncodingComboBox; +class OptionLineEdit; + +class OptionDialog : public KPageDialog +{ + Q_OBJECT + +public: + + explicit OptionDialog( bool bShowDirMergeSettings, QWidget *parent = nullptr ); + ~OptionDialog() override; + const QString parseOptions( const QStringList& optionList ); + QString calcOptionHelp(); + + void saveOptions(KSharedConfigPtr config); + void readOptions(KSharedConfigPtr config); + + void setState(); // Must be called before calling exec(); + + void addOptionItem(OptionItemBase*); + + QSharedPointer getOptions() { return m_options; } + + static const QString s_historyEntryStartRegExpToolTip; + static const QString s_historyEntryStartSortKeyOrderToolTip; + static const QString s_autoMergeRegExpToolTip; + static const QString s_historyStartRegExpToolTip; + +protected Q_SLOTS: + virtual void slotDefault(); + virtual void slotOk(); + virtual void slotApply(); + //virtual void buttonClicked( QAbstractButton* ); + virtual void helpRequested(); + + void slotEncodingChanged(); + void slotHistoryMergeRegExpTester(); +Q_SIGNALS: + void applyDone(); +private: + void setupFontPage(); + void setupColorPage(); + void setupEditPage(); + void setupDiffPage(); + void setupMergePage(); + void setupDirectoryMergePage(); + void setupRegionalPage(); + void setupIntegrationPage(); + void setupOtherOptions(); + + void resetToDefaults(); + + QSharedPointer m_options=QSharedPointer::create(); + //QDialogButtonBox *mButtonBox; + OptionCheckBox* m_pSameEncoding; + OptionEncodingComboBox* m_pEncodingAComboBox; + OptionCheckBox* m_pAutoDetectUnicodeA; + OptionEncodingComboBox* m_pEncodingBComboBox; + OptionCheckBox* m_pAutoDetectUnicodeB; + OptionEncodingComboBox* m_pEncodingCComboBox; + OptionCheckBox* m_pAutoDetectUnicodeC; + OptionEncodingComboBox* m_pEncodingOutComboBox; + OptionCheckBox* m_pAutoSelectOutEncoding; + OptionEncodingComboBox* m_pEncodingPPComboBox; + OptionCheckBox* m_pHistoryAutoMerge; + OptionLineEdit* m_pAutoMergeRegExpLineEdit; + OptionLineEdit* m_pHistoryStartRegExpLineEdit; + OptionLineEdit* m_pHistoryEntryStartRegExpLineEdit; + OptionCheckBox* m_pHistoryMergeSorting; + OptionLineEdit* m_pHistorySortKeyOrderLineEdit; +}; + + +class FontChooser : public QGroupBox +{ + Q_OBJECT + QFont m_font; + QPushButton* m_pSelectFont; + QPlainTextEdit* m_pExampleTextEdit; + QLabel* m_pLabel; +public: + explicit FontChooser( QWidget* pParent ); + QFont font(); + void setFont( const QFont&, bool ); +private Q_SLOTS: + void slotSelectFont(); +}; + +#endif + + + + + + + diff --git a/src/options.h b/src/options.h new file mode 100644 index 0000000..7b98a18 --- /dev/null +++ b/src/options.h @@ -0,0 +1,198 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef OPTIONS_H +#define OPTIONS_H + +#include + +#include + +#include +#include +#include +#include +#include + +class OptionItemBase; + +enum e_LineEndStyle +{ + eLineEndStyleUnix=0, + eLineEndStyleDos, + eLineEndStyleAutoDetect, + eLineEndStyleUndefined, // only one line exists + eLineEndStyleConflict // User must resolve manually +}; + +class Options +{ +public: + void init(); + + void apply(); + + void resetToDefaults(); + + void setToCurrent(); + + void saveOptions(const KSharedConfigPtr config); + void readOptions(const KSharedConfigPtr config); + + const QString parseOptions(const QStringList& optionList); + QString calcOptionHelp(); + + void addOptionItem(OptionItemBase* inItem); + + const QSize& getGeometry() const { return m_geometry; } + void setGeometry(const QSize& size) { m_geometry = size; } + + const QPoint& getPosition() const { return m_position; } + void setPosition(const QPoint& pos) { m_position = pos; } + + bool isFullScreen() const { return m_bFullScreen; }; + + void setFullScreen(const bool fullScreen) { m_bFullScreen = fullScreen;}; + + bool isMaximised() const { return m_bMaximised; }; + + void setMaximised(const bool maximised) { m_bMaximised = maximised;}; + + + bool isToolBarVisable() const { return m_bShowToolBar; } + void setToolbarState(bool inShown) { m_bShowToolBar = inShown; } + + bool isStatusBarVisable() const { return m_bShowStatusBar; } + void setStatusBarState(bool inShown) { m_bShowStatusBar = inShown; } + + bool wordWrapOn() const { return m_bWordWrap; } + void setWordWrap(const bool enabled) { m_bWordWrap = enabled;} + + [[nodiscard]] bool ignoreComments() const { return m_bIgnoreComments; } + + [[nodiscard]] bool whiteSpaceIsEqual() const { return m_bDmWhiteSpaceEqual; } + private: + std::list mOptionItemList; + + // Some settings that are not available in the option dialog: + QSize m_geometry = QSize(600, 400); + QPoint m_position = QPoint(0, 22); + bool m_bFullScreen = false; + bool m_bMaximised = false; + bool m_bShowToolBar = true; + bool m_bShowStatusBar = true; + public: + + // These are the results of the option dialog. + QFont m_font; + //bool m_bItalicForDeltas; + QFont m_appFont; + + QColor m_fgColor = Qt::black; + QColor m_bgColor = Qt::white; + QColor m_diffBgColor; + QColor m_colorA; + QColor m_colorB; + QColor m_colorC; + QColor m_colorForConflict = Qt::red; + QColor m_currentRangeBgColor; + QColor m_currentRangeDiffBgColor; + QColor m_oldestFileColor = qRgb(0xf0, 0, 0); + QColor m_midAgeFileColor = qRgb(0xc0, 0xc0, 0); + QColor m_newestFileColor = qRgb(0, 0xd0, 0); + QColor m_missingFileColor = qRgb(0, 0, 0); + QColor m_manualHelpRangeColor = qRgb(0xff, 0xd0, 0x80); + + bool m_bWordWrap = false; + + bool m_bReplaceTabs = false; + bool m_bAutoIndentation = true; + int m_tabSize = 8; + bool m_bAutoCopySelection = false; + bool m_bSameEncoding = true; + QTextCodec* m_pEncodingA = nullptr; + bool m_bAutoDetectUnicodeA = true; + QTextCodec* m_pEncodingB = nullptr; + bool m_bAutoDetectUnicodeB = true; + QTextCodec* m_pEncodingC = nullptr; + bool m_bAutoDetectUnicodeC = true; + QTextCodec* m_pEncodingOut = nullptr; + bool m_bAutoSelectOutEncoding = true; + QTextCodec* m_pEncodingPP = nullptr; + e_LineEndStyle m_lineEndStyle = eLineEndStyleAutoDetect; + + bool m_bPreserveCarriageReturn = false; + bool m_bTryHard = true; + bool m_bShowWhiteSpaceCharacters = true; + bool m_bShowWhiteSpace = true; + bool m_bShowLineNumbers = false; + bool m_bHorizDiffWindowSplitting = true; + bool m_bShowInfoDialogs = true; + bool m_bDiff3AlignBC = false; + + int m_whiteSpace2FileMergeDefault = 0; + int m_whiteSpace3FileMergeDefault = 0; + bool m_bIgnoreCase = false; + bool m_bIgnoreNumbers = false; + bool m_bIgnoreComments = false; + QString m_PreProcessorCmd; + QString m_LineMatchingPreProcessorCmd; + bool m_bRunRegExpAutoMergeOnMergeStart = false; + QString m_autoMergeRegExp = ".*\\$(Version|Header|Date|Author).*\\$.*"; + bool m_bRunHistoryAutoMergeOnMergeStart = false; + QString m_historyStartRegExp = ".*\\$Log.*\\$.*"; + QString m_historyEntryStartRegExp; + bool m_bHistoryMergeSorting = false; + QString m_historyEntryStartSortKeyOrder = "4,3,2,5,1,6"; + int m_maxNofHistoryEntries = -1; + QString m_IrrelevantMergeCmd; + bool m_bAutoSaveAndQuitOnMergeWithoutConflicts = false; + + bool m_bAutoAdvance = false; + int m_autoAdvanceDelay = 500; + + QStringList m_recentAFiles; + QStringList m_recentBFiles; + QStringList m_recentCFiles; + + QStringList m_recentEncodings; + + QStringList m_recentOutputFiles; + + // Directory Merge options + bool m_bDmSyncMode = false; + bool m_bDmRecursiveDirs = true; + bool m_bDmFollowFileLinks = true; + bool m_bDmFollowDirLinks = true; + bool m_bDmFindHidden = true; + bool m_bDmCreateBakFiles; + bool m_bDmBinaryComparison = true; + bool m_bDmFullAnalysis = false; + bool m_bDmTrustDate = false; + bool m_bDmTrustDateFallbackToBinary = false; + bool m_bDmTrustSize = false; + bool m_bDmCopyNewer = false; + //bool m_bDmShowOnlyDeltas; + bool m_bDmShowIdenticalFiles = true; + bool m_bDmUseCvsIgnore = false; + bool m_bDmWhiteSpaceEqual = true; + bool m_bDmCaseSensitiveFilenameComparison; + bool m_bDmUnfoldSubdirs = false; + bool m_bDmSkipDirStatus = false; + QString m_DmFilePattern = "*"; + QString m_DmFileAntiPattern = "*.orig;*.o;*.obj;*.rej;*.bak"; + QString m_DmDirAntiPattern = "CVS;.deps;.svn;.hg;.git"; + + bool m_bRightToLeftLanguage = false; + + QString m_ignorableCmdLineOptions = QString("-u;-query;-html;-abort"); + bool m_bEscapeKeyQuits = false; +}; + + +#endif \ No newline at end of file diff --git a/src/org.kde.kdiff3.appdata.xml b/src/org.kde.kdiff3.appdata.xml new file mode 100644 index 0000000..f3c7cb2 --- /dev/null +++ b/src/org.kde.kdiff3.appdata.xml @@ -0,0 +1,350 @@ + + + org.kde.kdiff3.desktop + CC0-1.0 + GPL-2.0-or-later + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + KDiff3 + Kdiff3 + KDiff3 + xxKDiff3xx + KDiff3 + A file and folder comparison and merge tool + Una eina per a la comparació i fusió de fitxers i carpetes + Una eina per a la comparació i fusió de fitxers i carpetes + Nástroj pro porovnávání a slučování souborů a složek + Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern + Ένα εργαλείο σύγκρισης και συγχώνευσης αρχείων και φακέλων + A file and folder comparison and merge tool + Una herramienta para comparar y fusionar archivos y carpetas + Fitxategiak eta direktorioak konparatzeko eta bateratzeko tresna bat + Tiedostojen ja kansioiden vertailu- ja yhdistämistyökalu + Un outil de comparaison et de fusion de fichiers et de dossiers + Sebuah alat penggabung dan pembanding folder dan file + Uno strumento di confronto e fusione di file e cartelle + 파일과 폴더 비교 및 병합 도구 + Een hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen + Narzędzie do porównywania i scalania plików i katalogów + Uma ferramenta de comparação e junção de arquivos e pastas + Инструмент для сравнения и объединения файлов и папок + Nástroj na porovnanie a zlúčenie súborov a adresárov + Orodje za primerjavo datotek in map ter za združevanje + Ett jämförelse- och sammanfogningsverktyg för fil- och katalogjämförelser + Програма для порівняння і об'єднання файлів та тек + xxA file and folder comparison and merge toolxx + 一个比较、合并文件和文件夹的工具 + KDE + +

KDiff3 is a file and folder diff and merge tool which

+

El KDiff3 és una eina per a la comparació i fusió de fitxers i carpetes

+

KDiff3 és una eina per a la comparació i fusió de fitxers i carpetes

+

KDiff3 ist ein Programm zum Anzeigen von Unterschieden und zum Zusammenführen von Dateien und Ordnern.

+

Το KDiff3 είναι ένα εργαλείο σύγκρισης και συγχώνευσης αρχείων και φακέλων, το οποίο

+

KDiff3 is a file and folder diff and merge tool which

+

KDiff es una herramienta de visualización de diferencias y de fusión de archivos y carpetas que

+

KDiff3 fitxategiak eta direktorioak alderatzeko eta bateratzeko tresna bat da,

+

Kdiff3 on tiedostojen ja kansioiden vertailu- ja yhdistämistyökalu, joka

+

KDiff3 est un outil de comparaison et de fusion de fichiers et de dossiers qui

+

KDiff3 adalah sebuah alat penggabung dan pembeda mana file dan folder

+

KDiff3 è uno strumento per fondere file e cartelle che

+

KDiff3는 파일 및 폴더 diff 및 병합 도구입니다

+

KDdiff3 is een hulpmiddel om bestanden en mappen te vergelijken en samen te voegen dat

+

KDiff3 jest narzędziem do pokazywania różnicy i scalania plików i katalogów, które

+

O KDiff3 é uma ferramenta de diferenças e mesclagem de arquivos e pastas que

+

— это приложение для поиска различий между файлами и каталогами, которое:

+

KDiff3 je nástroj na porovnávanie a zlučovanie súborov a adresárov

+

KDiff3 je orodje za prikaz razlik med datotekami in mapami, ki

+

Kdiff3 är ett verktyg för jämförelser och sammanfogning av filer och kataloger, som

+

KDiff3 — програма для визначення відмінностей у файлах і теках та об'єднання цих відмінностей в один варіант, яка

+

xxKDiff3 is a file and folder diff and merge tool whichxx

+

KDiff3 是一个比较、合并文件和文件夹的工具,

+
    +
  • compares and merges two or three text input files or folders,
  • +
  • compara i fusiona dos o tres fitxers o carpetes des de l'entrada,
  • +
  • compara i fusiona dos o tres fitxers o carpetes des de l'entrada,
  • +
  • vergleicht zwei oder drei Textdateien bzw. Ordner und führt sie zusammen,
  • +
  • συγκρίνει και συγχωνεύει δύο ή τρία αρχεία κειμένου ή φακέλους,
  • +
  • compares and merges two or three text input files or folders,
  • +
  • compara y fusiona dos o tres archivos de texto de entrada o carpetas,
  • +
  • sarrerako bi edo hiru testu fitxategi edo direktorio alderatu eta bateratzen dituena,
  • +
  • vertaa ja yhdistää kaksi tai kolme tekstitiedostoa tai kansiota
  • +
  • compare et fusionne deux ou trois fichiers ou dossiers en entrée,
  • +
  • membandingkan dan menggabungkan dua atau tiga file atau folder input teks,
  • +
  • confronta e fonde due o tre file di testo o cartelle in ingresso,
  • +
  • 텍스트 입력 파일 또는 폴더 두 개 또는 세 개를 비교하고 병합하며,
  • +
  • twee of drie tekstbestanden of mappen vergelijkt en samenvoegt,
  • +
  • porównuje i scala dwa, trzy lub więcej plików wejściowych lub katalogów,
  • +
  • compara e mescla dois ou três arquivos de texto ou pastas,
  • +
  • позволяет сравнивать и объединять два или три текстовых вводных файла или папки;
  • +
  • porovnáva a zlučuje dva alebo viac textových súborov alebo adresárov,
  • +
  • primerja in združuje dve ali tri vhodne datoteke ali mape besedil,
  • +
  • jämför och sammanfogar tvÃ¥ eller tre textfiler eller kataloger,
  • +
  • порівнює і об'єднує два або три вхідних текстових файли або теки.
  • +
  • xxcompares and merges two or three text input files or folders,xx
  • +
  • 它能比较、合并输入的两份或三份文件和文件夹,
  • +
  • shows the differences line by line and character by character(!),
  • +
  • mostra les diferències línia per línia i caràcter per caràcter!,
  • +
  • mostra les diferències línia per línia i caràcter per caràcter!,
  • +
  • kann Unterschiede zeilenweise und sogar Zeichen für Zeichen anzeigen,
  • +
  • εμφανίζει τις διαφορές ανά γραμμή και ανά χαρακτήρα(!),
  • +
  • shows the differences line by line and character by character(!),
  • +
  • muestra las diferencias línea a línea y carácter a carácter (!),
  • +
  • näitab erinevusi ridade ja märkide (!) kaupa,
  • +
  • ezberdintasunak lerroz-lerro eta karakterez-karaktere erakusten ditu(!),
  • +
  • näyttää erot riveittäin ja merkeittäin (!)
  • +
  • affiche les différences ligne par ligne et caractère par caractère (!),
  • +
  • mostra as diferenzas liña por liña e carácter por carácter(!),
  • +
  • menampilkan perbedaan baris demi baris dan karakter demi karakter(!),
  • +
  • mostra le differenze riga per riga e carattere per carattere(!),
  • +
  • 줄과 문자 단위로(!)로 다른 줄을 표시하며,
  • +
  • toont de verschillen regel voor regel en teken voor teken(!),
  • +
  • pokazuje różnice wiersz po wierszu i znak po znaku(!),
  • +
  • mostra as diferenças linha-a-linha e carácter-a-carácter(!),
  • +
  • mostra as diferenças linha por linha e caractere por caractere(!),
  • +
  • позволяет просматривать различия построчно и посимвольно;
  • +
  • zobrazuje rozdiely riadok po riadku a znak po znaku,
  • +
  • prikazuje razlike črto za črto in znak za znakom (!),
  • +
  • visar skillnaderna rad för rad och tecken för tecken (!),
  • +
  • показує відмінності за рядками і за символами(!),
  • +
  • xxshows the differences line by line and character by character(!),xx
  • +
  • 按单行或单字符显示差异(!),
  • +
  • provides an automatic merge-facility,
  • +
  • proporciona la facilitat de la fusió automàtica,
  • +
  • proporciona la facilitat de la fusió automàtica,
  • +
  • hat eine Funktion zum automatischen Zusammenführen,
  • +
  • παρέχει μια αυτόματη υπηρεσία συγχώνευσης,
  • +
  • provides an automatic merge-facility,
  • +
  • proporciona una utilidad de fusión automática,
  • +
  • pakub automaatse ühendamise võimalust,
  • +
  • automatikoki bateratzeko erraztasuna ematen du,
  • +
  • tarjoaa automaattisen yhdistämistoiminnon
  • +
  • offre des fonctionnalités de fusion automatique,
  • +
  • fornece unha ferramenta de fusión automática,
  • +
  • menyediakan sebuah fasilitas penggabungan otomatis,
  • +
  • fornisce un servizio automatico per la fusione,
  • +
  • 자동 병합 기능을 제공하며,
  • +
  • een automatische samenvoegfunctie biedt,
  • +
  • zapewnia narzędzie do samoczynnego scalania,
  • +
  • oferece uma funcionalidade de junção automática,
  • +
  • fornecendo a facilidade da mesclagem automática,
  • +
  • поддерживает автоматическое объединение;
  • +
  • poskytuje automatickú možnosÅ¥ zlúčenia,
  • +
  • omogoča samodejno združitev,
  • +
  • tillhandahÃ¥ller en automatisk sammanfogingsfunktion,
  • +
  • надає можливість автоматичного об’єднання,
  • +
  • xxprovides an automatic merge-facility,xx
  • +
  • 提供自动合并功能,
  • +
  • has an editor for comfortable solving of merge-conflicts,
  • +
  • té un editor per a la solució còmoda dels conflictes de fusió,
  • +
  • té un editor per a la solució còmoda dels conflictes de fusió,
  • +
  • enthält einen speziellen komfortablen Editor zum Auflösen von Konflikten beim Zusammenführen,
  • +
  • έχει έναν κειμενογράφο για άνετη επίλυση των συγκρούσεων σε συγχωνεύσεις,
  • +
  • has an editor for comfortable solving of merge-conflicts,
  • +
  • posee un editor para resolver confortablemente los conflictos de fusión,
  • +
  • pakub redaktorit mugavaks ühendamisel tekkinud konfliktide lahendamiseks,
  • +
  • bateratze-gatazkak erosotasunez ebazteko editore bat dauka,
  • +
  • sisältää muokkaimen yhdistämisristiriitojen ratkaisemiseksi
  • +
  • dispose d'un éditeur pour résoudre confortablement les conflits lors de la fusion,
  • +
  • ten un editor para solucionar de maneira cómoda conflitos de fusión,
  • +
  • memiliki sebuah editor untuk pemecahan yang baik pada penggabungan yang bentrok
  • +
  • dispone di un editor per risolvere comodamente i conflitti di fusione,
  • +
  • 병합 충돌을 원만하게 해결할 수 있는 편집기가 있으며,
  • +
  • een editor heeft voor het comfortabel oplossen van samenvoegconflicten,
  • +
  • ma edytor do wygodnego rozwiązywania sprzeczności przy scalaniu,
  • +
  • tem um editor para resolver confortavelmente os conflitos de junção,
  • +
  • tem um editor para resolver confortavelmente os conflitos de mesclagem,
  • +
  • предоставляет редактор для комфортного разрешения конфликтов объединения;
  • +
  • má editor na pohodlné rieÅ¡enie konfliktov zlučovania,
  • +
  • ima urejevalnik za udobno reÅ¡evanje sporov med spajanjem,
  • +
  • har en editor för bekväm lösning av sammanfogningskonflikter,
  • +
  • містить редактор для полегшення розв’язання конфліктів під час об’єднання,
  • +
  • xxhas an editor for comfortable solving of merge-conflicts,xx
  • +
  • 有一个舒适的编辑器来解决合并冲突,
  • +
  • provides network transparency via KIO,
  • +
  • proporciona transparència de xarxa a través del KIO,
  • +
  • proporciona transparència de xarxa a través de KIO,
  • +
  • ist mit Hilfe von KIO Netzwerktransparent,
  • +
  • παρέχει δικτυακή διαφάνεια μέσα από το KIO,
  • +
  • provides network transparency via KIO,
  • +
  • proporciona transparencia de red mediante el uso de KIO,
  • +
  • võimaldab KIO vahendusel võrgu läbipaistvust,
  • +
  • KIO bidez sarearekiko gardentasuna hornitzen du,
  • +
  • tarjoaa läpinäkyvän verkon KIOn kautta
  • +
  • fournit une transparence réseau via KIO,
  • +
  • fornece transparencia de rede mediante KIO,
  • +
  • menyediakan transparan jaringan via KIO
  • +
  • fornisce trasparenza di rete tramite KIO,
  • +
  • KIO를 통한 네트워크 투명성을 제공하며,
  • +
  • netwerktransparantie biedt via KIO,
  • +
  • zapewnia przejrzystość sieciową przez KIO,
  • +
  • oferece a transparência na rede com o KIO,
  • +
  • fornece transparência de rede via KIO,
  • +
  • с помощью KIO поддерживает работу с файлами, расположенными на сетевых ресурсах;
  • +
  • poskytuje sieÅ¥ovú transparentnosÅ¥ cez KIO,
  • +
  • zagotavlja preglednost omrežja prek KIO,
  • +
  • tillhandahÃ¥ller nätverkstransparens via KIO,
  • +
  • забезпечує мережеву прозорість за допомогою KIO,
  • +
  • xxprovides network transparency via KIO,xx
  • +
  • 通过 KIO 提供网络文件透明访问,
  • +
  • has options to highlight or hide changes in white-space or comments,
  • +
  • té opcions per a ressaltar o ocultar els canvis en els espais en blanc o els comentaris,
  • +
  • té opcions per a ressaltar o ocultar els canvis en els espais en blanc o els comentaris,
  • +
  • kann Unterschiede in Leerraum-Zeichen oder Kommentaren besonders hervorheben oder ausblenden,
  • +
  • έχει επιλογές τονισμού ή απόκρυψης αλλαγών σε κενά ή σχόλια,
  • +
  • has options to highlight or hide changes in white-space or comments,
  • +
  • contiene opciones para resaltar u ocultar cambios en espacios en blanco y en comentarios,
  • +
  • võib esile tõsta või peita erinevusi tühimärkides või kommentaarides,
  • +
  • zuriune edo iruzkinetako aldaketak nabarmentzeko edo ezkutatzeko aukerak ditu,
  • +
  • osaa korostaa tai piilottaa muutokset tyhjemerkeissä ja kommenteissa
  • +
  • dispose d'options permettant de surligner ou de cacher les différences d'espaces ou de commentaires,
  • +
  • ten opcións para salientar ou agochar cambios en espazos en branco ou comentarios,
  • +
  • memiliki opsi untuk menyorot atau menyembunyikan perubahan dalam spasi putih atau komentar,
  • +
  • ha opzioni per evidenziare o per nascondere le modifiche negli spazi o nei commenti,
  • +
  • 공백이나 주석의 변경 사항을 강조 표시하거나 숨길 수 있는 옵션이 있고,
  • +
  • opties heeft voor het accentueren of verbergen van wijzigingen in witruimte of commentaar,
  • +
  • ma opcje do podświetlenia i ukrycia zmian w białych znakach lub komentarzach,
  • +
  • tem opções para realçar ou esconder as alterações nos espaços em branco ou comentários,
  • +
  • tem opção para realçar ou ocultar alterações nos espaços em branco ou comentários,
  • +
  • предоставляет возможность подсветки или скрытия изменений в пробельных символах или в комментариях;
  • +
  • má voľby na zvýraznenie alebo skrytie zmien v bielych znakoch alebo komentároch,
  • +
  • ima možnosti za označevanje ali skrivanje sprememb v prostoru presledkov ali komentarjih,
  • +
  • har alternativ för att markera eller dölja ändringar av blanktecken eller kommentarer,
  • +
  • може підсвічувати або ховати зміни у пробілах або коментарях,
  • +
  • xxhas options to highlight or hide changes in white-space or comments,xx
  • +
  • 有选项可以设置高亮或隐藏空白字符和代码注释的更改,
  • +
  • supports Unicode, UTF-8 and other file encodings,
  • +
  • admet Unicode, UTF-8 i altres codificacions de fitxer,
  • +
  • admet Unicode, UTF-8 i altres codificacions de fitxer,
  • +
  • podporuje Unicode, UTF-8 a další kódování souborů.
  • +
  • unterstützt Unicode, UTF-8 und weitere Dateikodierungen,
  • +
  • υποστηρίζει Unicode, UTF-8 και άλλες κωδικοποιήσεις αρχείων,
  • +
  • supports Unicode, UTF-8 and other file encodings,
  • +
  • permite el uso de Unicode, UTF-8 y de otras codificaciones de archivos,
  • +
  • toetab Unicode'i, UTF-8 ja teisi failikodeeringuid,
  • +
  • Unicode, UTF-8 eta beste fitxategi kodeketa batzuk onartzen ditu,
  • +
  • tukee Unicodea, UTF-8:aa ja muita merkistökoodauksia
  • +
  • prend en charge Unicode, UTF-8 et d'autres encodages de fichiers,
  • +
  • é compatíbel con Unicode, UTF-8 e outras codificacións de ficheiros,s
  • +
  • dukungan Unicode, UTF-8 dqn pengenkodean file lain
  • +
  • supporta Unicode, UTF-8 e altre codifiche di file,
  • +
  • 유니코드, UTF-8 및 기타 파일 인코딩을 지원하며,
  • +
  • Unicode, UTF-8 en andere bestandscoderingen ondersteunt,
  • +
  • obsługuje Unikod, UTF-8 i inne kodowania plików,
  • +
  • suporta o Unicode, o UTF-8 e outras codificações de ficheiros,
  • +
  • suporta o Unicode, UTF-8 e outras codificações de arquivos,
  • +
  • поддерживает Юникод, UTF-8 и другие кодировки файлов;
  • +
  • podporuje Unicode, UTF-8 a iné kódovania súborov,
  • +
  • podpira Unicode, UTF-8 in drugo kodiranje datotek,
  • +
  • stöder Unicode, UTF-8 och andra filkodningar,
  • +
  • підтримує Unicode, UTF-8 та інші кодування текстів файлів,
  • +
  • xxsupports Unicode, UTF-8 and other file encodings,xx
  • +
  • 支持 Unicode, UTF-8 和其他文件编码,
  • +
  • prints differences,
  • +
  • imprimeix les diferències,
  • +
  • imprimix les diferències,
  • +
  • druckt Abweichungen,
  • +
  • εκτυπώνει διαφορές,
  • +
  • prints differences,
  • +
  • imprime las diferencias,
  • +
  • trükib erinevusi,
  • +
  • ezberdintasunak inprimatzen ditu,
  • +
  • tulostaa eroavuudet
  • +
  • affiche les différences,
  • +
  • imprime diferenzas,
  • +
  • cetakan yang berbeda
  • +
  • stampa le differenze,
  • +
  • 차이점을 인쇄하고,
  • +
  • verschillen in regels afdrukt,
  • +
  • drukuje różnice,
  • +
  • imprime as diferenças,
  • +
  • imprime as diferenças,
  • +
  • показывает различия;
  • +
  • vytlačí rozdiely,
  • +
  • tiska razlike,
  • +
  • skriver ut skillnader,
  • +
  • може надсилати на друк різницю,
  • +
  • xxprints differences,xx
  • +
  • 打印差异,
  • +
  • supports version control keyword and history merging.
  • +
  • admet la paraula clau per al control de versions i un historial de les fusions.
  • +
  • admet la paraula clau per al control de versions i un historial de les fusions.
  • +
  • unterstützt Schlüsselwörter für Versionsverwaltung und Verlauf-Zusammenführung.
  • +
  • υποστηρίζει συγχώνευση λέξεων κλειδιών και ιστορικού με έλεγχο εκδόσεων.
  • +
  • supports version control keyword and history merging.
  • +
  • permite el uso de palabras clave de control de versiones y de fusión de historial.
  • +
  • toetab versioonihalduse võtmesõnade ja ajaloo ühendamist.
  • +
  • bertsio-kontrolerako gako-hitzak eta historia bateratzea onartzen du.
  • +
  • tukee versionhallinnan avainsanoja ja historian yhdistämistä.
  • +
  • prend en charge les mots clés de contrôle de version et la fusion des historiques.
  • +
  • e permite fusionar historiais e palabras clave de control de versión.
  • +
  • dukungan katakunci kendali versi dan histori penggabungan.
  • +
  • supporta le parole chiave per il controllo di versione e la fusione della cronologia.
  • +
  • 버전 관리 키워드 및 기록 병합을 지원합니다.
  • +
  • versiebeheersleutelwoorden ondersteunt en samenvoegen van geschiedenis.
  • +
  • obsługuje scalanie słów kluczowych i historii zarządzania wersjami
  • +
  • suporta as palavras-chave de controlo de versões e de junção do histórico.
  • +
  • suporta palavras-chave de controle de versão e mesclagem de histórico.
  • +
  • поддерживает ключевые слова систем контроля версий и объединение их историй.
  • +
  • podporuje kľúčové slová na správu verzií a zlučovanie histórie.
  • +
  • podpira združevanje ključnih besed in zgodovine za nadzor verzij.
  • +
  • stöder nyckelord för versionskontroll och sammanfogning av historik.
  • +
  • підтримує об’єднання за ключовими словами і журналом інструментів керування версіями.
  • +
  • xxsupports version control keyword and history merging.xx
  • +
  • 支持版本控制关键词和历史合并。
  • +
+
+ + + https://cdn.kde.org/screenshots/kdiff3/diffscreen_two_way.png + + + https://cdn.kde.org/screenshots/kdiff3/ManualMerdge.png + + + https://kde.org/applications/development/org.kde.kdiff3 + https://bugs.kde.org/enter_bug.cgi?format=guided&product=kdiff3 + https://docs.kde.org/?application=kdiff3 + https://www.kde.org/community/donations/?app=kdiff3 + + kdiff3 + + + + + + + + + + + + + + + + +
diff --git a/src/org.kde.kdiff3.desktop b/src/org.kde.kdiff3.desktop new file mode 100755 index 0000000..b79ca76 --- /dev/null +++ b/src/org.kde.kdiff3.desktop @@ -0,0 +1,137 @@ +[Desktop Entry] +Name=KDiff3 +Name[be]=KDiff3 +Name[bg]=KDiff3 +Name[bs]=KDiff3 +Name[ca]=KDiff3 +Name[ca@valencia]=KDiff3 +Name[cs]=KDiff3 +Name[da]=KDiff3 +Name[de]=KDiff3 +Name[el]=KDiff3 +Name[en_GB]=KDiff3 +Name[es]=KDiff3 +Name[et]=KDiff3 +Name[eu]=KDiff3 +Name[fi]=KDiff3 +Name[fr]=KDiff3 +Name[ga]=KDiff3 +Name[gl]=KDiff3 +Name[hi]=के-डिफ3 +Name[hne]=के-डिफ3 +Name[hr]=KDiff3 +Name[hu]=KDiff3 +Name[ia]=KDiff3 +Name[it]=KDiff3 +Name[ja]=KDiff3 +Name[km]=KDiff3 +Name[ko]=KDiff3 +Name[lt]=KDiff3 +Name[ml]=കെഡിഫ്3 +Name[mr]=के-डिफ3 +Name[nb]=KDiff3 +Name[nds]=KDiff3 +Name[nl]=KDiff3 +Name[nn]=KDiff3 +Name[pl]=KDiff3 +Name[pt]=KDiff3 +Name[pt_BR]=KDiff3 +Name[ro]=KDiff3 +Name[ru]=KDiff3 +Name[sk]=KDiff3 +Name[sl]=KDiff3 +Name[sr]=К‑диф3 +Name[sr@ijekavian]=К‑диф3 +Name[sr@ijekavianlatin]=KDiff3 +Name[sr@latin]=KDiff3 +Name[sv]=Kdiff3 +Name[tr]=KDiff3 +Name[ug]=KDiff3 +Name[uk]=KDiff3 +Name[x-test]=xxKDiff3xx +Name[zh_CN]=KDiff3 +Name[zh_TW]=KDiff3 +GenericName=Diff/Patch Frontend +GenericName[bg]=Интерфейс на Diff/Patch +GenericName[bs]=Prikaz za Diff/Patch +GenericName[ca]=Frontal del «diff»/«patch» +GenericName[ca@valencia]=Frontal de «diff»/«patch» +GenericName[cs]=Rozhraní pro Diff/Patch +GenericName[da]=Brugerflade til diff/patch +GenericName[de]=Grafische Oberfläche zu Diff/Patch +GenericName[el]=Σύστημα υποστήριξης χρήστη για τα Diff/Patch +GenericName[en_GB]=Diff/Patch Frontend +GenericName[eo]=Fasado por la programoj "diff" kaj "patch" +GenericName[es]=Interfaz para diff/patch +GenericName[et]=Võrdlemise ja liitmise rakendus +GenericName[eu]=«Diff»/«Patch» aurrealdekoa +GenericName[fi]=Diff/Patch-käyttöliittymä +GenericName[fr]=Interface graphique pour « Diff » / « Patch » +GenericName[ga]=Comhéadan Diff/Patch +GenericName[gl]=Interface para Diff e Patch +GenericName[hi]=डिफ/पैच फ्रन्टएण्ड +GenericName[hne]=डिफ/पैच फ्रन्टएन्ड +GenericName[hu]=Diff/Patch Frontend +GenericName[ia]=Fronte anterior de Diff/Patch +GenericName[it]=Interfaccia per i comandi diff e patch +GenericName[ja]=Diff/Patch フロントエンド +GenericName[km]=Diff/Patch ខាង​មុខ +GenericName[ko]=Diff/Patch 프론트엔드 +GenericName[lt]=Diff/Patch naudotojo sąsaja +GenericName[ml]=ഡിഫ്/പാച്ച് പുരോഭാഗം +GenericName[mr]=डिफ/पेच फ्रंटएन्ड +GenericName[nb]=Diff-/Patch-grensesnitt +GenericName[nds]=Böversiet för "diff" un "patch" +GenericName[nl]=Diff/Patch-hulpprogramma +GenericName[nn]=Motor for diff- og patch-filer +GenericName[pl]=Interfejs dla Diff/Patch +GenericName[pt]=Interface do Diff/Patch +GenericName[pt_BR]=Interface do diff/patch +GenericName[ro]=Interfață diff/patch +GenericName[ru]=Графический интерфейс Diff/Patch +GenericName[sk]=Rozhranie Diff/Patch +GenericName[sl]=Začelje za diff/patch +GenericName[sr]=Прочеље за diff и patch +GenericName[sr@ijekavian]=Прочеље за diff и patch +GenericName[sr@ijekavianlatin]=Pročelje za diff i patch +GenericName[sr@latin]=Pročelje za diff i patch +GenericName[sv]=Jämförelse- och programfixgränssnitt +GenericName[tr]=Diff/Patch Ön ucu +GenericName[ug]=سېلىشتۇرۇش/ياماش(Diff/Patch) نىڭ ئالدى ئۇچى +GenericName[uk]=Графічна оболонка Diff/Patch +GenericName[x-test]=xxDiff/Patch Frontendxx +GenericName[zh_CN]=Diff/Patch 前端 +GenericName[zh_TW]=比較/修補程式前端介面 +Exec=kdiff3 +Icon=kdiff3 +Type=Application +Comment=A File And Folder Comparison And Merge Tool +Comment[ca]=Una eina per a la comparació i fusió de fitxers i carpetes +Comment[ca@valencia]=Una eina per a la comparació i fusió de fitxers i carpetes +Comment[cs]=Nástroj pro porovnávání a slučování souborů a složek +Comment[de]=Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern +Comment[el]=Ένα εργαλείο σύγκρισης και συγχώνευσης αρχείων και φακέλων +Comment[en_GB]=A File And Folder Comparison And Merge Tool +Comment[es]=Herramienta para comparar y fusionar archivos y carpetas +Comment[et]=Failide ja kataloogide võrdlemise ja liitmise tööriist +Comment[eu]=Fitxategiak eta karpetak alderatzeko eta bateratzeko tresna bat +Comment[fi]=Tiedostojen ja hakemistojen vertailu- ja yhdistämistyökalu +Comment[fr]=Un outil de comparaison et de fusion de fichiers et de dossiers +Comment[ia]=Un instrumento de fusion e comparation de file e dossier +Comment[it]=Uno strumento di confronto e fusione di file e cartelle +Comment[ko]=파일과 폴더 비교 및 병합 도구 +Comment[nl]=Een hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen +Comment[nn]=Eit program for samanlikning og fletting av filer og mapper +Comment[pl]=Narzędzie do porównywania i scalania plików i katalogów +Comment[pt_BR]=Uma ferramenta de comparação e junção de arquivos e pastas +Comment[ro]=Unealtă de comparare și îmbinare a fișierelor și dosarelor +Comment[ru]=Инструмент для сравнения и объединения файлов и папок +Comment[sk]=Nástroj na porovnanie a zlúčenie súborov a adresárov +Comment[sl]=Orodje za primerjavo in združevanje datotek in map +Comment[sv]=Ett jämförelseverktyg för fil- och katalogjämförelser +Comment[tr]=Bir Dosya-Klasör Karşılaştırma ve Birleştirme Aracı +Comment[uk]=Інструмент для порівняння та об'єднання файлів та тек +Comment[x-test]=xxA File And Folder Comparison And Merge Toolxx +Comment[zh_CN]=文件及文件夹的比较与合并工具 +Terminal=false +Categories=Qt;KDE;Development; diff --git a/src/pdiff.cpp b/src/pdiff.cpp new file mode 100644 index 0000000..e0d90a1 --- /dev/null +++ b/src/pdiff.cpp @@ -0,0 +1,2164 @@ +/* + * This file is part of KDiff3. + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#include "difftextwindow.h" +#include "DirectoryInfo.h" +#include "directorymergewindow.h" +#include "fileaccess.h" +#include "Logging.h" +#include "kdiff3.h" +#include "optiondialog.h" +#include "progress.h" +#include "Utils.h" + +#include "mergeresultwindow.h" +#include "smalldialogs.h" + +#include +#include +#include + +#include +#include +#include +#include +#include +#include // QKeyEvent, QDropEvent, QInputEvent +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +// Function uses setMinSize( sizeHint ) before adding the widget. +// void addWidget(QBoxLayout* layout, QWidget* widget); +template +void addWidget(L* layout, W* widget) +{ + QSize s = widget->sizeHint(); + widget->setMinimumSize(QSize(std::max(s.width(), 0), std::max(s.height(), 0))); + layout->addWidget(widget); +} + +void KDiff3App::mainInit(TotalDiffStatus* pTotalDiffStatus, const InitFlags inFlags) +{ + ProgressProxy pp; + QStringList errors; + // When doing a full analysis in the directory-comparison, then the statistics-results + // will be stored in the given TotalDiffStatus. Otherwise it will be 0. + bool bLoadFiles = inFlags & InitFlag::loadFiles; + bool bUseCurrentEncoding = inFlags & InitFlag::useCurrentEncoding; + bool bAutoSolve = inFlags & InitFlag::autoSolve; + + bool bGUI = (inFlags & InitFlag::initGUI); + + IgnoreFlags eIgnoreFlags = IgnoreFlag::none; + if(m_pOptions->ignoreComments()) + eIgnoreFlags |= IgnoreFlag::ignoreComments; + + if(m_pOptions->whiteSpaceIsEqual()) + eIgnoreFlags |= IgnoreFlag::ignoreWhiteSpace; + + Q_ASSERT(pTotalDiffStatus != nullptr); + //bool bPreserveCarriageReturn = m_pOptions->m_bPreserveCarriageReturn; + + bool bVisibleMergeResultWindow = !m_outputFilename.isEmpty(); + + //Easier to do here then have all eleven of our call points due the check. + if(m_sd1->isEmpty() && m_sd2->isEmpty() && m_sd3->isEmpty()) + bLoadFiles = false; + + if(bGUI) + { + if(bVisibleMergeResultWindow && !m_pOptions->m_PreProcessorCmd.isEmpty()) + { + QString msg = "- " + i18n("PreprocessorCmd: ") + m_pOptions->m_PreProcessorCmd + '\n'; + int result = KMessageBox::warningYesNo(this, + i18n("The following option(s) you selected might change data:\n") + msg + + i18n("\nMost likely this is not wanted during a merge.\n" + "Do you want to disable these settings or continue with these settings active?"), + i18n("Option Unsafe for Merging"), + KGuiItem(i18n("Use These Options During Merge")), + KGuiItem(i18n("Disable Unsafe Options"))); + + if(result == KMessageBox::No) + { + m_pOptions->m_PreProcessorCmd = ""; + } + } + + // Because of the progressdialog paintevents can occur, but data is invalid, + // so painting must be suppressed + setLockPainting(true); + } + + //insure merge result window never has stale iterators. + if(m_pMergeResultWindow) m_pMergeResultWindow->clearMergeList(); + m_diff3LineList.clear(); + m_diff3LineVector.clear(); + + if(bLoadFiles) + { + m_manualDiffHelpList.clear(); + + if(m_sd3->isEmpty()) + pp.setMaxNofSteps(4); // Read 2 files, 1 comparison, 1 finediff + else + pp.setMaxNofSteps(9); // Read 3 files, 3 comparisons, 3 finediffs + + // First get all input data. + pp.setInformation(i18n("Loading A")); + qCInfo(kdiffMain) << i18n("Loading A: %1", m_sd1->getFilename()); + + if(bUseCurrentEncoding) + m_sd1->readAndPreprocess(m_sd1->getEncoding(), false); + else + m_sd1->readAndPreprocess(m_pOptions->m_pEncodingA, m_pOptions->m_bAutoDetectUnicodeA); + + pp.step(); + + pp.setInformation(i18n("Loading B")); + qCInfo(kdiffMain) << i18n("Loading B: %1", m_sd2->getFilename()); + + if(bUseCurrentEncoding) + m_sd2->readAndPreprocess(m_sd2->getEncoding(), false); + else + m_sd2->readAndPreprocess(m_pOptions->m_pEncodingB, m_pOptions->m_bAutoDetectUnicodeB); + + pp.step(); + errors.append(m_sd1->getErrors()); + errors.append(m_sd2->getErrors()); + } + else + { + if(m_sd3->isEmpty()) + pp.setMaxNofSteps(2); // 1 comparison, 1 finediff + else + pp.setMaxNofSteps(6); // 3 comparisons, 3 finediffs + } + + pTotalDiffStatus->reset(); + + if(errors.isEmpty()) + { + // Run the diff. + if(m_sd3->isEmpty()) + { + pTotalDiffStatus->setBinaryEqualAB(m_sd1->isBinaryEqualWith(m_sd2)); + + if(m_sd1->isText() && m_sd2->isText()) + { + pp.setInformation(i18n("Diff: A <-> B")); + qCInfo(kdiffMain) << i18n("Diff: A <-> B"); + m_manualDiffHelpList.runDiff(m_sd1->getLineDataForDiff(), m_sd1->getSizeLines(), m_sd2->getLineDataForDiff(), m_sd2->getSizeLines(), m_diffList12, e_SrcSelector::A, e_SrcSelector::B, + m_pOptionDialog->getOptions()); + + pp.step(); + + pp.setInformation(i18n("Linediff: A <-> B")); + qCInfo(kdiffMain) << i18n("Linediff: A <-> B"); + m_diff3LineList.calcDiff3LineListUsingAB(&m_diffList12); + m_diff3LineList.debugLineCheck(m_sd1->getSizeLines(), e_SrcSelector::A); + + pTotalDiffStatus->setTextEqualAB(m_diff3LineList.fineDiff(e_SrcSelector::A, m_sd1->getLineDataForDisplay(), m_sd2->getLineDataForDisplay(), eIgnoreFlags)); + if(m_sd1->getSizeBytes() == 0) pTotalDiffStatus->setTextEqualAB(false); + + pp.step(); + } + else + { + pp.step(); + pp.step(); + } + } + else + { + if(bLoadFiles) + { + pp.setInformation(i18n("Loading C")); + qCInfo(kdiffMain) << i18n("Loading C: %1", m_sd3->getFilename()); + + if(bUseCurrentEncoding) + m_sd3->readAndPreprocess(m_sd3->getEncoding(), false); + else + m_sd3->readAndPreprocess(m_pOptions->m_pEncodingC, m_pOptions->m_bAutoDetectUnicodeC); + + pp.step(); + } + + pTotalDiffStatus->setBinaryEqualAB(m_sd1->isBinaryEqualWith(m_sd2)); + pTotalDiffStatus->setBinaryEqualAC(m_sd1->isBinaryEqualWith(m_sd3)); + pTotalDiffStatus->setBinaryEqualBC(m_sd3->isBinaryEqualWith(m_sd2)); + + pp.setInformation(i18n("Diff: A <-> B")); + qCInfo(kdiffMain) << i18n("Diff: A <-> B"); + + if(m_sd1->isText() && m_sd2->isText()) + { + m_manualDiffHelpList.runDiff(m_sd1->getLineDataForDiff(), m_sd1->getSizeLines(), m_sd2->getLineDataForDiff(), m_sd2->getSizeLines(), m_diffList12, e_SrcSelector::A, e_SrcSelector::B, + m_pOptionDialog->getOptions()); + + m_diff3LineList.calcDiff3LineListUsingAB(&m_diffList12); + } + pp.step(); + m_diff3LineList.debugLineCheck(m_sd1->getSizeLines(), e_SrcSelector::A); + + pp.setInformation(i18n("Diff: A <-> C")); + qCInfo(kdiffMain) << i18n("Diff: A <-> C"); + + if(m_sd1->isText() && m_sd3->isText()) + { + m_manualDiffHelpList.runDiff(m_sd1->getLineDataForDiff(), m_sd1->getSizeLines(), m_sd3->getLineDataForDiff(), m_sd3->getSizeLines(), m_diffList13, e_SrcSelector::A, e_SrcSelector::C, + m_pOptionDialog->getOptions()); + + m_diff3LineList.calcDiff3LineListUsingAC(&m_diffList13); + //m_diff3LineList.dump(); + m_diff3LineList.correctManualDiffAlignment(&m_manualDiffHelpList); + //m_diff3LineList.dump(); + m_diff3LineList.calcDiff3LineListTrim(m_sd1->getLineDataForDiff(), m_sd2->getLineDataForDiff(), m_sd3->getLineDataForDiff(), &m_manualDiffHelpList); + } + pp.step(); + + pp.setInformation(i18n("Diff: B <-> C")); + qCInfo(kdiffMain) << i18n("Diff: B <-> C"); + + if(m_sd2->isText() && m_sd3->isText()) + { + m_manualDiffHelpList.runDiff(m_sd2->getLineDataForDiff(), m_sd2->getSizeLines(), m_sd3->getLineDataForDiff(), m_sd3->getSizeLines(), m_diffList23, e_SrcSelector::B, e_SrcSelector::C, + m_pOptionDialog->getOptions()); + if(m_pOptions->m_bDiff3AlignBC) + { + m_diff3LineList.calcDiff3LineListUsingBC(&m_diffList23); + m_diff3LineList.correctManualDiffAlignment(&m_manualDiffHelpList); + m_diff3LineList.calcDiff3LineListTrim(m_sd1->getLineDataForDiff(), m_sd2->getLineDataForDiff(), m_sd3->getLineDataForDiff(), &m_manualDiffHelpList); + } + } + pp.step(); + + m_diff3LineList.debugLineCheck(m_sd1->getSizeLines(), e_SrcSelector::A); + m_diff3LineList.debugLineCheck(m_sd2->getSizeLines(), e_SrcSelector::B); + m_diff3LineList.debugLineCheck(m_sd3->getSizeLines(), e_SrcSelector::C); + + pp.setInformation(i18n("Linediff: A <-> B")); + qCInfo(kdiffMain) << i18n("Linediff: A <-> B"); + if(m_sd1->hasData() && m_sd2->hasData() && m_sd1->isText() && m_sd2->isText()) + pTotalDiffStatus->setTextEqualAB(m_diff3LineList.fineDiff(e_SrcSelector::A, m_sd1->getLineDataForDisplay(), m_sd2->getLineDataForDisplay(), eIgnoreFlags)); + pp.step(); + + pp.setInformation(i18n("Linediff: B <-> C")); + qCInfo(kdiffMain) << i18n("Linediff: B <-> C"); + if(m_sd2->hasData() && m_sd3->hasData() && m_sd2->isText() && m_sd3->isText()) + pTotalDiffStatus->setTextEqualBC(m_diff3LineList.fineDiff(e_SrcSelector::B, m_sd2->getLineDataForDisplay(), m_sd3->getLineDataForDisplay(), eIgnoreFlags)); + pp.step(); + + pp.setInformation(i18n("Linediff: A <-> C")); + qCInfo(kdiffMain) << i18n("Linediff: A <-> C"); + if(m_sd1->hasData() && m_sd3->hasData() && m_sd1->isText() && m_sd3->isText()) + pTotalDiffStatus->setTextEqualAC(m_diff3LineList.fineDiff(e_SrcSelector::C, m_sd3->getLineDataForDisplay(), m_sd1->getLineDataForDisplay(), eIgnoreFlags)); + m_diff3LineList.debugLineCheck(m_sd2->getSizeLines(), e_SrcSelector::B); + m_diff3LineList.debugLineCheck(m_sd3->getSizeLines(), e_SrcSelector::C); + + pp.setInformation(i18n("Linediff: A <-> B")); + if(m_sd1->hasData() && m_sd2->hasData() && m_sd1->isText() && m_sd2->isText()) + pTotalDiffStatus->setTextEqualAB(m_diff3LineList.fineDiff(e_SrcSelector::A, m_sd1->getLineDataForDisplay(), m_sd2->getLineDataForDisplay(), eIgnoreFlags)); + pp.step(); + + pp.setInformation(i18n("Linediff: B <-> C")); + if(m_sd3->hasData() && m_sd2->hasData() && m_sd3->isText() && m_sd2->isText()) + pTotalDiffStatus->setTextEqualBC(m_diff3LineList.fineDiff(e_SrcSelector::B, m_sd2->getLineDataForDisplay(), m_sd3->getLineDataForDisplay(), eIgnoreFlags)); + pp.step(); + + pp.setInformation(i18n("Linediff: A <-> C")); + if(m_sd1->hasData() && m_sd3->hasData() && m_sd1->isText() && m_sd3->isText()) + pTotalDiffStatus->setTextEqualAC(m_diff3LineList.fineDiff(e_SrcSelector::C, m_sd3->getLineDataForDisplay(), m_sd1->getLineDataForDisplay(), eIgnoreFlags)); + pp.step(); + if(m_sd1->getSizeBytes() == 0) + { + pTotalDiffStatus->setTextEqualAB(false); + pTotalDiffStatus->setTextEqualAC(false); + } + if(m_sd2->getSizeBytes() == 0) + { + pTotalDiffStatus->setTextEqualAB(false); + pTotalDiffStatus->setTextEqualBC(false); + } + } + errors.append(m_sd3->getErrors()); + } + else + { + pp.clear(); + } + + if(errors.isEmpty() && m_sd1->isText() && m_sd2->isText()) + { + m_diffBufferInfo->init(&m_diff3LineList, &m_diff3LineVector, + m_sd1->getLineDataForDiff(), m_sd1->getSizeLines(), + m_sd2->getLineDataForDiff(), m_sd2->getSizeLines(), + m_sd3->getLineDataForDiff(), m_sd3->getSizeLines()); + Diff3Line::m_pDiffBufferInfo = m_diffBufferInfo; + + m_diff3LineList.calcWhiteDiff3Lines(m_sd1->getLineDataForDiff(), m_sd2->getLineDataForDiff(), m_sd3->getLineDataForDiff(), m_pOptions->ignoreComments()); + m_diff3LineList.calcDiff3LineVector(m_diff3LineVector); + } + + // Calc needed lines for display + m_neededLines = m_diff3LineList.size(); + + QList oldHeights; + if(m_pDirectoryMergeSplitter->isVisible()) + oldHeights = m_pMainSplitter->sizes(); + + initView(); + m_pMergeResultWindow->connectActions(); + + if(m_pDirectoryMergeSplitter->isVisible()) + { + if(oldHeights.count() < 2) + oldHeights.append(0); + if(oldHeights[1] == 0) // Distribute the available space evenly between the two widgets. + { + oldHeights[1] = oldHeights[0] / 2; + oldHeights[0] -= oldHeights[1]; + } + if(oldHeights[0] == 0 && oldHeights[1] == 0) + { + oldHeights[1] = 100; + oldHeights[0] = 100; + } + m_pMainSplitter->setSizes(oldHeights); + } + + m_pMainWidget->setVisible(bGUI); + + m_bTripleDiff = !m_sd3->isEmpty(); + + m_pMergeResultWindowTitle->setEncodings(m_sd1->getEncoding(), m_sd2->getEncoding(), m_sd3->getEncoding()); + if(!m_pOptions->m_bAutoSelectOutEncoding) + m_pMergeResultWindowTitle->setEncoding(m_pOptions->m_pEncodingOut); + + m_pMergeResultWindowTitle->setLineEndStyles(m_sd1->getLineEndStyle(), m_sd2->getLineEndStyle(), m_sd3->getLineEndStyle()); + + if(bGUI) + { + const ManualDiffHelpList* pMDHL = &m_manualDiffHelpList; + m_pDiffTextWindow1->init(m_sd1->getAliasName(), m_sd1->getEncoding(), m_sd1->getLineEndStyle(), + m_sd1->getLineDataForDisplay(), m_sd1->getSizeLines(), &m_diff3LineVector, pMDHL); + m_pDiffTextWindowFrame1->init(); + + m_pDiffTextWindow2->init(m_sd2->getAliasName(), m_sd2->getEncoding(), m_sd2->getLineEndStyle(), + m_sd2->getLineDataForDisplay(), m_sd2->getSizeLines(), &m_diff3LineVector, pMDHL); + m_pDiffTextWindowFrame2->init(); + + m_pDiffTextWindow3->init(m_sd3->getAliasName(), m_sd3->getEncoding(), m_sd3->getLineEndStyle(), + m_sd3->getLineDataForDisplay(), m_sd3->getSizeLines(), &m_diff3LineVector, pMDHL); + m_pDiffTextWindowFrame3->init(); + + m_pDiffTextWindowFrame3->setVisible(m_bTripleDiff); + } + + m_bOutputModified = bVisibleMergeResultWindow; + + m_pMergeResultWindow->init( + m_sd1->getLineDataForDisplay(), m_sd1->getSizeLines(), + m_sd2->getLineDataForDisplay(), m_sd2->getSizeLines(), + m_bTripleDiff ? m_sd3->getLineDataForDisplay() : nullptr, m_sd3->getSizeLines(), + &m_diff3LineList, + pTotalDiffStatus, bAutoSolve); + m_pMergeResultWindowTitle->setFileName(m_outputFilename.isEmpty() ? QString("unnamed.txt") : m_outputFilename); + + if(bGUI) + { + m_pOverview->init(&m_diff3LineList); + DiffTextWindow::mVScrollBar->setValue(0); + m_pHScrollBar->setValue(0); + MergeResultWindow::mVScrollBar->setValue(0); + setLockPainting(false); + + if(!bVisibleMergeResultWindow) + m_pMergeWindowFrame->hide(); + else + m_pMergeWindowFrame->show(); + + // Try to create a meaningful but not too long caption + if(!isPart() && errors.isEmpty()) + { + createCaption(); + } + m_bFinishMainInit = true; // call slotFinishMainInit after finishing the word wrap + m_bLoadFiles = bLoadFiles; + postRecalcWordWrap(); + } +} + +void KDiff3App::setLockPainting(bool bLock) +{ + if(m_pDiffTextWindow1) m_pDiffTextWindow1->setPaintingAllowed(!bLock); + if(m_pDiffTextWindow2) m_pDiffTextWindow2->setPaintingAllowed(!bLock); + if(m_pDiffTextWindow3) m_pDiffTextWindow3->setPaintingAllowed(!bLock); + if(m_pOverview) m_pOverview->setPaintingAllowed(!bLock); + if(m_pMergeResultWindow) m_pMergeResultWindow->setPaintingAllowed(!bLock); +} + +void KDiff3App::createCaption() +{ + // Try to create a meaningful but not too long caption + // 1. If the filenames are equal then show only one filename + QString caption; + QString f1 = m_sd1->getAliasName(); + QString f2 = m_sd2->getAliasName(); + QString f3 = m_sd3->getAliasName(); + int p; + + if((p = f1.lastIndexOf('/')) >= 0 || (p = f1.lastIndexOf('\\')) >= 0) + f1 = f1.mid(p + 1); + if((p = f2.lastIndexOf('/')) >= 0 || (p = f2.lastIndexOf('\\')) >= 0) + f2 = f2.mid(p + 1); + if((p = f3.lastIndexOf('/')) >= 0 || (p = f3.lastIndexOf('\\')) >= 0) + f3 = f3.mid(p + 1); + + if(!f1.isEmpty()) + { + if((f2.isEmpty() && f3.isEmpty()) || + (f2.isEmpty() && f1 == f3) || (f3.isEmpty() && f1 == f2) || (f1 == f2 && f1 == f3)) + caption = f1; + } + else if(!f2.isEmpty()) + { + if(f3.isEmpty() || f2 == f3) + caption = f2; + } + else if(!f3.isEmpty()) + caption = f3; + + // 2. If the files don't have the same name then show all names + if(caption.isEmpty() && (!f1.isEmpty() || !f2.isEmpty() || !f3.isEmpty())) + { + caption = (f1.isEmpty() ? QString("") : f1); + caption += QLatin1String(caption.isEmpty() || f2.isEmpty() ? "" : " <-> ") + (f2.isEmpty() ? QString("") : f2); + caption += QLatin1String(caption.isEmpty() || f3.isEmpty() ? "" : " <-> ") + (f3.isEmpty() ? QString("") : f3); + } + + m_pKDiff3Shell->setWindowTitle(caption.isEmpty() ? QString("KDiff3") : caption + QString(" - KDiff3")); +} + +void KDiff3App::setHScrollBarRange() +{ + int w1 = m_pDiffTextWindow1 != nullptr && m_pDiffTextWindow1->isVisible() ? m_pDiffTextWindow1->getMaxTextWidth() : 0; + int w2 = m_pDiffTextWindow2 != nullptr && m_pDiffTextWindow2->isVisible() ? m_pDiffTextWindow2->getMaxTextWidth() : 0; + int w3 = m_pDiffTextWindow3 != nullptr && m_pDiffTextWindow3->isVisible() ? m_pDiffTextWindow3->getMaxTextWidth() : 0; + + int wm = m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isVisible() ? m_pMergeResultWindow->getMaxTextWidth() : 0; + + int v1 = m_pDiffTextWindow1 != nullptr && m_pDiffTextWindow1->isVisible() ? m_pDiffTextWindow1->getVisibleTextAreaWidth() : 0; + int v2 = m_pDiffTextWindow2 != nullptr && m_pDiffTextWindow2->isVisible() ? m_pDiffTextWindow2->getVisibleTextAreaWidth() : 0; + int v3 = m_pDiffTextWindow3 != nullptr && m_pDiffTextWindow3->isVisible() ? m_pDiffTextWindow3->getVisibleTextAreaWidth() : 0; + int vm = m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isVisible() ? m_pMergeResultWindow->getVisibleTextAreaWidth() : 0; + + // Find the minimum, but don't consider 0. + int pageStep = 0; + if((pageStep == 0 || pageStep > v1) && v1 > 0) + pageStep = v1; + if((pageStep == 0 || pageStep > v2) && v2 > 0) + pageStep = v2; + if((pageStep == 0 || pageStep > v3) && v3 > 0) + pageStep = v3; + if((pageStep == 0 || pageStep > vm) && vm > 0) + pageStep = vm; + + int rangeMax = 0; + if(w1 > v1 && w1 - v1 > rangeMax && v1 > 0) + rangeMax = w1 - v1; + if(w2 > v2 && w2 - v2 > rangeMax && v2 > 0) + rangeMax = w2 - v2; + if(w3 > v3 && w3 - v3 > rangeMax && v3 > 0) + rangeMax = w3 - v3; + if(wm > vm && wm - vm > rangeMax && vm > 0) + rangeMax = wm - vm; + + m_pHScrollBar->setRange(0, rangeMax); + m_pHScrollBar->setSingleStep(Utils::getHorizontalAdvance(fontMetrics(), '0') * 10); + m_pHScrollBar->setPageStep(pageStep); +} + +void KDiff3App::resizeDiffTextWindowHeight(int newHeight) +{ + m_DTWHeight = newHeight; + + DiffTextWindow::mVScrollBar->setRange(0, std::max(0, m_neededLines + 1 - newHeight)); + DiffTextWindow::mVScrollBar->setPageStep(newHeight); + m_pOverview->setRange(DiffTextWindow::mVScrollBar->value(), DiffTextWindow::mVScrollBar->pageStep()); + + setHScrollBarRange(); +} + +void KDiff3App::scrollDiffTextWindow(int deltaX, int deltaY) +{ + if(deltaY != 0 && DiffTextWindow::mVScrollBar != nullptr) + { + DiffTextWindow::mVScrollBar->setValue(DiffTextWindow::mVScrollBar->value() + deltaY); + } + if(deltaX != 0 && m_pHScrollBar != nullptr) + m_pHScrollBar->QScrollBar::setValue(m_pHScrollBar->value() + deltaX); +} + +void KDiff3App::scrollMergeResultWindow(int deltaX, int deltaY) +{ + if(deltaY != 0) + MergeResultWindow::mVScrollBar->setValue(MergeResultWindow::mVScrollBar->value() + deltaY); + if(deltaX != 0) + m_pHScrollBar->setValue(m_pHScrollBar->value() + deltaX); +} + +void KDiff3App::sourceMask(int srcMask, int enabledMask) +{ + chooseA->blockSignals(true); + chooseB->blockSignals(true); + chooseC->blockSignals(true); + chooseA->setChecked((srcMask & 1) != 0); + chooseB->setChecked((srcMask & 2) != 0); + chooseC->setChecked((srcMask & 4) != 0); + chooseA->blockSignals(false); + chooseB->blockSignals(false); + chooseC->blockSignals(false); + chooseA->setEnabled((enabledMask & 1) != 0); + chooseB->setEnabled((enabledMask & 2) != 0); + chooseC->setEnabled((enabledMask & 4) != 0); +} + +void KDiff3App::initView() +{ + // set the main widget here + if(mInitCalled) + { + return; + } + + mInitCalled = true; + //m_pMainWidget // Contains vertical splitter and horiz scrollbar + m_pMainSplitter->addWidget(m_pMainWidget); + m_pMainWidget->setObjectName("MainWidget"); + QVBoxLayout* pVLayout = new QVBoxLayout(m_pMainWidget); + pVLayout->setContentsMargins(0, 0, 0, 0); + pVLayout->setSpacing(0); + + QSplitter* pVSplitter = new QSplitter(); + pVSplitter->setObjectName("VSplitter"); + pVSplitter->setOpaqueResize(false); + pVSplitter->setOrientation(Qt::Vertical); + pVLayout->addWidget(pVSplitter); + + QWidget* pDiffWindowFrame = new QWidget(); // Contains diff windows, overview and vert scrollbar + pDiffWindowFrame->setObjectName("DiffWindowFrame"); + QHBoxLayout* pDiffHLayout = new QHBoxLayout(pDiffWindowFrame); + pDiffHLayout->setContentsMargins(0, 0, 0, 0); + pDiffHLayout->setSpacing(0); + pVSplitter->addWidget(pDiffWindowFrame); + + m_pDiffWindowSplitter = new QSplitter(); + m_pDiffWindowSplitter->setObjectName("DiffWindowSplitter"); + m_pDiffWindowSplitter->setOpaqueResize(false); + + m_pDiffWindowSplitter->setOrientation(m_pOptions->m_bHorizDiffWindowSplitting ? Qt::Horizontal : Qt::Vertical); + pDiffHLayout->addWidget(m_pDiffWindowSplitter); + + m_pOverview = new Overview(m_pOptionDialog->getOptions()); + m_pOverview->setObjectName("Overview"); + pDiffHLayout->addWidget(m_pOverview); + + DiffTextWindow::mVScrollBar = new QScrollBar(Qt::Vertical, pDiffWindowFrame); + pDiffHLayout->addWidget(DiffTextWindow::mVScrollBar); + + chk_connect(m_pOverview, &Overview::setLine, DiffTextWindow::mVScrollBar, &QScrollBar::setValue); + chk_connect(this, &KDiff3App::showWhiteSpaceToggled, m_pOverview, &Overview::slotRedraw); + chk_connect(this, &KDiff3App::changeOverViewMode, m_pOverview, &Overview::setOverviewMode); + + m_pDiffTextWindowFrame1 = new DiffTextWindowFrame(m_pDiffWindowSplitter, m_pOptionDialog->getOptions(), e_SrcSelector::A, m_sd1); + m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame1); + m_pDiffTextWindowFrame2 = new DiffTextWindowFrame(m_pDiffWindowSplitter, m_pOptionDialog->getOptions(), e_SrcSelector::B, m_sd2); + m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame2); + m_pDiffTextWindowFrame3 = new DiffTextWindowFrame(m_pDiffWindowSplitter, m_pOptionDialog->getOptions(), e_SrcSelector::C, m_sd3); + m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame3); + m_pDiffTextWindow1 = m_pDiffTextWindowFrame1->getDiffTextWindow(); + m_pDiffTextWindow2 = m_pDiffTextWindowFrame2->getDiffTextWindow(); + m_pDiffTextWindow3 = m_pDiffTextWindowFrame3->getDiffTextWindow(); + + m_pDiffTextWindowFrame1->setupConnections(this); + m_pDiffTextWindowFrame2->setupConnections(this); + m_pDiffTextWindowFrame3->setupConnections(this); + + // Merge window + m_pMergeWindowFrame = new QWidget(pVSplitter); + m_pMergeWindowFrame->setObjectName("MergeWindowFrame"); + pVSplitter->addWidget(m_pMergeWindowFrame); + QHBoxLayout* pMergeHLayout = new QHBoxLayout(m_pMergeWindowFrame); + pMergeHLayout->setContentsMargins(0, 0, 0, 0); + pMergeHLayout->setSpacing(0); + QVBoxLayout* pMergeVLayout = new QVBoxLayout(); + pMergeHLayout->addLayout(pMergeVLayout, 1); + + m_pMergeResultWindowTitle = new WindowTitleWidget(m_pOptionDialog->getOptions()); + pMergeVLayout->addWidget(m_pMergeResultWindowTitle); + + m_pMergeResultWindow = new MergeResultWindow(m_pMergeWindowFrame, m_pOptionDialog->getOptions(), statusBar()); + pMergeVLayout->addWidget(m_pMergeResultWindow, 1); + + MergeResultWindow::mVScrollBar = new QScrollBar(Qt::Vertical, m_pMergeWindowFrame); + pMergeHLayout->addWidget(MergeResultWindow::mVScrollBar); + + m_pMainSplitter->addWidget(m_pMainWidget); + + autoAdvance->setEnabled(true); + + QList sizes = pVSplitter->sizes(); + int total = sizes[0] + sizes[1]; + if(total < 10) + total = 100; + sizes[0] = total / 2; + sizes[1] = total / 2; + pVSplitter->setSizes(sizes); + + QList hSizes; + hSizes << 1 << 1 << 1; + m_pDiffWindowSplitter->setSizes(hSizes); + + m_pMergeResultWindow->installEventFilter(m_pMergeResultWindowTitle); // for focus tracking + + QHBoxLayout* pHScrollBarLayout = new QHBoxLayout(); + pVLayout->addLayout(pHScrollBarLayout); + m_pHScrollBar = new ReversibleScrollBar(Qt::Horizontal, &m_pOptions->m_bRightToLeftLanguage); + pHScrollBarLayout->addWidget(m_pHScrollBar); + m_pCornerWidget = new QWidget(m_pMainWidget); + pHScrollBarLayout->addWidget(m_pCornerWidget); + + chk_connect(DiffTextWindow::mVScrollBar, &QScrollBar::valueChanged, m_pOverview, &Overview::setFirstLine); + chk_connect(DiffTextWindow::mVScrollBar, &QScrollBar::valueChanged, m_pDiffTextWindow1, &DiffTextWindow::setFirstLine); + chk_connect(m_pHScrollBar, &ReversibleScrollBar::valueChanged2, m_pDiffTextWindow1, &DiffTextWindow::setHorizScrollOffset); + m_pDiffTextWindow1->setupConnections(this); + + chk_connect(DiffTextWindow::mVScrollBar, &QScrollBar::valueChanged, m_pDiffTextWindow2, &DiffTextWindow::setFirstLine); + chk_connect(m_pHScrollBar, &ReversibleScrollBar::valueChanged2, m_pDiffTextWindow2, &DiffTextWindow::setHorizScrollOffset); + m_pDiffTextWindow2->setupConnections(this); + + chk_connect(DiffTextWindow::mVScrollBar, &QScrollBar::valueChanged, m_pDiffTextWindow3, &DiffTextWindow::setFirstLine); + chk_connect(m_pHScrollBar, &ReversibleScrollBar::valueChanged2, m_pDiffTextWindow3, &DiffTextWindow::setHorizScrollOffset); + m_pDiffTextWindow3->setupConnections(this); + + MergeResultWindow* p = m_pMergeResultWindow; + chk_connect(MergeResultWindow::mVScrollBar, &QScrollBar::valueChanged, p, &MergeResultWindow::setFirstLine); + + chk_connect(m_pHScrollBar, &ReversibleScrollBar::valueChanged2, p, &MergeResultWindow::setHorizScrollOffset); + chk_connect(p, &MergeResultWindow::modifiedChanged, m_pMergeResultWindowTitle, &WindowTitleWidget::slotSetModified); + p->setupConnections(this); + sourceMask(0, 0); + + chk_connect(p, &MergeResultWindow::setFastSelectorRange, m_pDiffTextWindow1, &DiffTextWindow::setFastSelectorRange); + chk_connect(p, &MergeResultWindow::setFastSelectorRange, m_pDiffTextWindow2, &DiffTextWindow::setFastSelectorRange); + chk_connect(p, &MergeResultWindow::setFastSelectorRange, m_pDiffTextWindow3, &DiffTextWindow::setFastSelectorRange); + chk_connect(m_pDiffTextWindow1, &DiffTextWindow::setFastSelectorLine, p, &MergeResultWindow::slotSetFastSelectorLine); + chk_connect(m_pDiffTextWindow2, &DiffTextWindow::setFastSelectorLine, p, &MergeResultWindow::slotSetFastSelectorLine); + chk_connect(m_pDiffTextWindow3, &DiffTextWindow::setFastSelectorLine, p, &MergeResultWindow::slotSetFastSelectorLine); + chk_connect(m_pDiffTextWindow1, &DiffTextWindow::gotFocus, p, &MergeResultWindow::updateSourceMask); + chk_connect(m_pDiffTextWindow2, &DiffTextWindow::gotFocus, p, &MergeResultWindow::updateSourceMask); + chk_connect(m_pDiffTextWindow3, &DiffTextWindow::gotFocus, p, &MergeResultWindow::updateSourceMask); + chk_connect(m_pDirectoryMergeInfo, &DirectoryMergeInfo::gotFocus, p, &MergeResultWindow::updateSourceMask); + + chk_connect(m_pDiffTextWindow1, &DiffTextWindow::resizeHeightChangedSignal, this, &KDiff3App::resizeDiffTextWindowHeight); + // The following two connects cause the wordwrap to be recalced thrice, just to make sure. Better than forgetting one. + chk_connect(m_pDiffTextWindow1, &DiffTextWindow::resizeWidthChangedSignal, this, &KDiff3App::postRecalcWordWrap); + chk_connect(m_pDiffTextWindow2, &DiffTextWindow::resizeWidthChangedSignal, this, &KDiff3App::postRecalcWordWrap); + chk_connect(m_pDiffTextWindow3, &DiffTextWindow::resizeWidthChangedSignal, this, &KDiff3App::postRecalcWordWrap); + + m_pDiffTextWindow1->setFocus(); + m_pMainWidget->setMinimumSize(50, 50); + m_pCornerWidget->setFixedSize(DiffTextWindow::mVScrollBar->width(), m_pHScrollBar->height()); + showWindowA->setChecked(true); + showWindowB->setChecked(true); + showWindowC->setChecked(true); +} + +// called after word wrap is complete +void KDiff3App::slotFinishMainInit() +{ + Q_ASSERT(m_pDiffTextWindow1 != nullptr && DiffTextWindow::mVScrollBar != nullptr && m_pOverview != nullptr); + + setHScrollBarRange(); + + int newHeight = m_pDiffTextWindow1->getNofVisibleLines(); + /*int newWidth = m_pDiffTextWindow1->getNofVisibleColumns();*/ + m_DTWHeight = newHeight; + + DiffTextWindow::mVScrollBar->setRange(0, std::max(0, m_neededLines + 1 - newHeight)); + DiffTextWindow::mVScrollBar->setPageStep(newHeight); + m_pOverview->setRange(DiffTextWindow::mVScrollBar->value(), DiffTextWindow::mVScrollBar->pageStep()); + + int d3l = -1; + if(!m_manualDiffHelpList.empty()) + d3l = m_manualDiffHelpList.front().calcManualDiffFirstDiff3LineIdx(m_diff3LineVector); + if(d3l >= 0 && m_pDiffTextWindow1) + { + int line = m_pDiffTextWindow1->convertDiff3LineIdxToLine(d3l); + DiffTextWindow::mVScrollBar->setValue(std::max(0, line - 1)); + } + else + { + m_pMergeResultWindow->slotGoTop(); + if(!m_outputFilename.isEmpty() && !m_pMergeResultWindow->isUnsolvedConflictAtCurrent()) + m_pMergeResultWindow->slotGoNextUnsolvedConflict(); + } + + if(m_pCornerWidget) + m_pCornerWidget->setFixedSize(DiffTextWindow::mVScrollBar->width(), m_pHScrollBar->height()); + + slotUpdateAvailabilities(); + setUpdatesEnabled(true); + + bool bVisibleMergeResultWindow = !m_outputFilename.isEmpty(); + + if(m_bLoadFiles) + { + if(bVisibleMergeResultWindow) + m_pMergeResultWindow->showNrOfConflicts(); + else if( + // Avoid showing this message during startup without parameters. + !(m_sd1->getAliasName().isEmpty() && m_sd2->getAliasName().isEmpty() && m_sd3->getAliasName().isEmpty()) && + (m_sd1->isValid() && m_sd2->isValid() && m_sd3->isValid())) + { + QString totalInfo; + if(m_totalDiffStatus->isBinaryEqualAB() && m_totalDiffStatus->isBinaryEqualAC()) + totalInfo += i18n("All input files are binary equal."); + else if(m_totalDiffStatus->isTextEqualAB() && m_totalDiffStatus->isTextEqualAC()) + totalInfo += i18n("All input files contain the same text, but are not binary equal."); + else + { + if(m_totalDiffStatus->isBinaryEqualAB()) + totalInfo += i18n("Files %1 and %2 are binary equal.\n", i18n("A"), i18n("B")); + else if(m_totalDiffStatus->isTextEqualAB()) + totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n", i18n("A"), i18n("B")); + if(m_totalDiffStatus->isBinaryEqualAC()) + totalInfo += i18n("Files %1 and %2 are binary equal.\n", i18n("A"), i18n("C")); + else if(m_totalDiffStatus->isTextEqualAC()) + totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n", i18n("A"), i18n("C")); + if(m_totalDiffStatus->isBinaryEqualBC()) + totalInfo += i18n("Files %1 and %2 are binary equal.\n", i18n("B"), i18n("C")); + else if(m_totalDiffStatus->isTextEqualBC()) + totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n", i18n("B"), i18n("C")); + } + + if(!totalInfo.isEmpty()) + KMessageBox::information(this, totalInfo); + } + + if(bVisibleMergeResultWindow && (!m_sd1->isText() || !m_sd2->isText() || !m_sd3->isText())) + { + KMessageBox::information(this, i18n( + "Some input files do not seem to be pure text files.\n" + "Note that the KDiff3 merge was not meant for binary data.\n" + "Continue at your own risk.")); + } + if(m_sd1->isIncompleteConversion() || m_sd2->isIncompleteConversion() || m_sd3->isIncompleteConversion()) + { + QString files; + if(m_sd1->isIncompleteConversion()) + files += i18n("A"); + if(m_sd2->isIncompleteConversion()) + files += files.isEmpty() ? i18n("B") : i18n(", B"); + if(m_sd3->isIncompleteConversion()) + files += files.isEmpty() ? i18n("C") : i18n(", C"); + + KMessageBox::information(this, i18n("Some input characters could not be converted to valid unicode.\n" + "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" + "Do not save the result if unsure. Continue at your own risk.\n" + "Affected input files are in %1.", files)); + } + } + + if(bVisibleMergeResultWindow && m_pMergeResultWindow) + { + m_pMergeResultWindow->setFocus(); + } + else if(m_pDiffTextWindow1) + { + m_pDiffTextWindow1->setFocus(); + } +} + +void KDiff3App::resizeEvent(QResizeEvent* e) +{ + QSplitter::resizeEvent(e); + if(m_pCornerWidget) + m_pCornerWidget->setFixedSize(DiffTextWindow::mVScrollBar->width(), m_pHScrollBar->height()); +} + +void KDiff3App::wheelEvent(QWheelEvent* pWheelEvent) +{ + pWheelEvent->accept(); + QPoint delta = pWheelEvent->angleDelta(); + + //Block diagonal scrolling easily generated unintentionally with track pads. + if(delta.x() != 0 && abs(delta.y()) < abs(delta.x()) && m_pHScrollBar != nullptr) + QCoreApplication::postEvent(m_pHScrollBar, new QWheelEvent(*pWheelEvent)); +} + +void KDiff3App::keyPressEvent(QKeyEvent* keyEvent) +{ + if(keyEvent->key() == Qt::Key_Escape && m_pKDiff3Shell && m_pOptions->m_bEscapeKeyQuits) + { + m_pKDiff3Shell->close(); + return; + } + + bool bCtrl = (keyEvent->QInputEvent::modifiers() & Qt::ControlModifier) != 0; + + switch(keyEvent->key()) + { + case Qt::Key_Down: + case Qt::Key_Up: + case Qt::Key_PageDown: + case Qt::Key_PageUp: + if(DiffTextWindow::mVScrollBar != nullptr) + QCoreApplication::postEvent(DiffTextWindow::mVScrollBar, new QKeyEvent(*keyEvent)); + return; + case Qt::Key_Left: + case Qt::Key_Right: + if(m_pHScrollBar != nullptr) + QCoreApplication::postEvent(m_pHScrollBar, new QKeyEvent(*keyEvent)); + + break; + case Qt::Key_End: + case Qt::Key_Home: + if(bCtrl) + { + if(DiffTextWindow::mVScrollBar != nullptr) + QCoreApplication::postEvent(DiffTextWindow::mVScrollBar, new QKeyEvent(*keyEvent)); + } + else + { + if(m_pHScrollBar != nullptr) + QCoreApplication::postEvent(m_pHScrollBar, new QKeyEvent(*keyEvent)); + } + break; + default: + break; + } +} + +void KDiff3App::slotFinishDrop() +{ + raise(); + mainInit(m_totalDiffStatus); +} + +void KDiff3App::slotFileOpen() +{ + if(!shouldContinue()) return; + + if(m_pDirectoryMergeWindow->isDirectoryMergeInProgress()) + { + int result = KMessageBox::warningYesNo(this, + i18n("You are currently doing a folder merge. Are you sure, you want to abort?"), + i18n("Warning"), + KGuiItem(i18n("Abort")), + KGuiItem(i18n("Continue Merging"))); + if(result != KMessageBox::Yes) + return; + } + + slotStatusMsg(i18n("Opening files...")); + + for(;;) + { + QPointer d = QPointer(new OpenDialog(this, + QDir::toNativeSeparators(m_bDirCompare ? gDirInfo->dirA().prettyAbsPath() : m_sd1->isFromBuffer() ? QString("") : m_sd1->getAliasName()), + QDir::toNativeSeparators(m_bDirCompare ? gDirInfo->dirB().prettyAbsPath() : m_sd2->isFromBuffer() ? QString("") : m_sd2->getAliasName()), + QDir::toNativeSeparators(m_bDirCompare ? gDirInfo->dirC().prettyAbsPath() : m_sd3->isFromBuffer() ? QString("") : m_sd3->getAliasName()), + m_bDirCompare ? !gDirInfo->destDir().prettyAbsPath().isEmpty() : !m_outputFilename.isEmpty(), + QDir::toNativeSeparators(m_bDefaultFilename ? QString("") : m_outputFilename), m_pOptionDialog->getOptions())); + + int status = d->exec(); + if(status == QDialog::Accepted) + { + m_sd1->setFilename(d->getFileA()); + m_sd2->setFilename(d->getFileB()); + m_sd3->setFilename(d->getFileC()); + + if(d->merge()) + { + if(d->getOutputFile().isEmpty()) + { + m_outputFilename = "unnamed.txt"; + m_bDefaultFilename = true; + } + else + { + m_outputFilename = d->getOutputFile(); + m_bDefaultFilename = false; + } + } + else + m_outputFilename = ""; + + m_bDirCompare = m_sd1->isDir(); + + if(m_bDirCompare) + { + bool bSuccess = doDirectoryCompare(false); + if(bSuccess) + { + m_pDirectoryMergeSplitter->show(); + m_pMainWidget->hide(); + break; + } + } + else + { + improveFilenames(); + + m_pDirectoryMergeSplitter->hide(); + mainInit(m_totalDiffStatus); + + if((!m_sd1->getErrors().isEmpty()) || + (!m_sd2->getErrors().isEmpty()) || + (!m_sd3->getErrors().isEmpty())) + { + QString text(i18n("Opening of these files failed:")); + text += "\n\n"; + if(!m_sd1->getErrors().isEmpty()) + text += " - " + m_sd1->getAliasName() + '\n' + m_sd1->getErrors().join('\n') + '\n'; + if(!m_sd2->getErrors().isEmpty()) + text += " - " + m_sd2->getAliasName() + '\n' + m_sd2->getErrors().join('\n') + '\n'; + if(!m_sd3->getErrors().isEmpty()) + text += " - " + m_sd3->getAliasName() + '\n' + m_sd3->getErrors().join('\n') + '\n'; + + KMessageBox::sorry(this, text, i18n("File open error")); + + continue; + } + } + } + break; + } + + slotUpdateAvailabilities(); + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotFileOpen2(QStringList &errors, const QString& fn1, const QString& fn2, const QString& fn3, const QString& ofn, + const QString& an1, const QString& an2, const QString& an3, TotalDiffStatus* pTotalDiffStatus) +{ + if(!shouldContinue()) return; + + if(fn1.isEmpty() && fn2.isEmpty() && fn3.isEmpty() && ofn.isEmpty()) + { + m_pMainWidget->hide(); + return; + } + + slotStatusMsg(i18n("Opening files...")); + m_sd1->reset(); + m_sd2->reset(); + m_sd3->reset(); + + m_sd1->setFilename(fn1); + m_sd2->setFilename(fn2); + m_sd3->setFilename(fn3); + + m_sd1->setAliasName(an1); + m_sd2->setAliasName(an2); + m_sd3->setAliasName(an3); + + if(!ofn.isEmpty()) + { + m_outputFilename = ofn; + m_bDefaultFilename = false; + } + else + { + m_outputFilename = ""; + m_bDefaultFilename = true; + } + + if(!m_sd1->isDir()) + { + improveFilenames(); + //KDiff3App::slotFileOpen2 needs to handle both GUI and non-GUI diffs. + if(pTotalDiffStatus == nullptr) + mainInit(m_totalDiffStatus); + else + mainInit(pTotalDiffStatus, InitFlag::loadFiles | InitFlag::autoSolve); + + if(m_bDirCompare) + { + errors.append(m_sd1->getErrors()); + errors.append(m_sd2->getErrors()); + errors.append(m_sd3->getErrors()); + + return; + } + + if(m_sd1->isValid() && m_sd2->isValid() && m_sd3->isValid()) + { + if(m_pDirectoryMergeWindow != nullptr && m_pDirectoryMergeWindow->isVisible() && !dirShowBoth->isChecked()) + { + slotDirViewToggle(); + } + } + } + else + doDirectoryCompare(true); // Create new window for KDiff3 for directory comparison. + + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotFileNameChanged(const QString& fileName, e_SrcSelector winIdx) +{ + QStringList errors; + QString fn1 = m_sd1->getFilename(); + QString an1 = m_sd1->getAliasName(); + QString fn2 = m_sd2->getFilename(); + QString an2 = m_sd2->getAliasName(); + QString fn3 = m_sd3->getFilename(); + QString an3 = m_sd3->getAliasName(); + if(winIdx == e_SrcSelector::A) + { + fn1 = fileName; + an1 = ""; + } + else if(winIdx == e_SrcSelector::B) + { + fn2 = fileName; + an2 = ""; + } + else if(winIdx == e_SrcSelector::C) + { + fn3 = fileName; + an3 = ""; + } + + slotFileOpen2(errors, fn1, fn2, fn3, m_outputFilename, an1, an2, an3, nullptr); +} + +void KDiff3App::slotEditCut() +{ + slotStatusMsg(i18n("Cutting selection...")); + Q_EMIT cut(); + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotEditCopy() +{ + slotStatusMsg(i18n("Copying selection to clipboard...")); + + Q_EMIT copy(); + + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotEditPaste() +{ + slotStatusMsg(i18n("Inserting clipboard contents...")); + + if(m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isVisible()) + { + m_pMergeResultWindow->pasteClipboard(false); + } + else + { + if(shouldContinue()) + { + QString error; + bool do_init = false; + + if(m_pDiffTextWindow1->hasFocus()) + { + error = m_sd1->setData(QApplication::clipboard()->text(QClipboard::Clipboard)); + do_init = true; + } + else if(m_pDiffTextWindow2->hasFocus()) + { + error = m_sd2->setData(QApplication::clipboard()->text(QClipboard::Clipboard)); + do_init = true; + } + else if(m_pDiffTextWindow3->hasFocus()) + { + error = m_sd3->setData(QApplication::clipboard()->text(QClipboard::Clipboard)); + do_init = true; + } + + if(!error.isEmpty()) + { + KMessageBox::error(m_pOptionDialog, error); + } + + if(do_init) + { + mainInit(m_totalDiffStatus); + } + } + } + + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotEditSelectAll() +{ + + Q_EMIT selectAll(); + + slotStatusMsg(i18n("Ready.")); +} + +void KDiff3App::slotGoCurrent() +{ + Q_EMIT goCurrent(); +} +void KDiff3App::slotGoTop() +{ + Q_EMIT goTop(); +} +void KDiff3App::slotGoBottom() +{ + Q_EMIT goBottom(); +} +void KDiff3App::slotGoPrevUnsolvedConflict() +{ + Q_EMIT goPrevUnsolvedConflict(); +} +void KDiff3App::slotGoNextUnsolvedConflict() +{ + m_bTimerBlock = false; + Q_EMIT goNextUnsolvedConflict(); +} +void KDiff3App::slotGoPrevConflict() +{ + Q_EMIT goPrevConflict(); +} +void KDiff3App::slotGoNextConflict() +{ + m_bTimerBlock = false; + Q_EMIT goNextConflict(); +} +void KDiff3App::slotGoPrevDelta() +{ + Q_EMIT goPrevDelta(); +} +void KDiff3App::slotGoNextDelta() +{ + Q_EMIT goNextDelta(); +} + +void KDiff3App::choose(e_SrcSelector choice) +{ + if(!m_bTimerBlock) + { + if(m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->hasFocus()) + { + if(choice == e_SrcSelector::A) m_pDirectoryMergeWindow->slotCurrentChooseA(); + if(choice == e_SrcSelector::B) m_pDirectoryMergeWindow->slotCurrentChooseB(); + if(choice == e_SrcSelector::C) m_pDirectoryMergeWindow->slotCurrentChooseC(); + + chooseA->setChecked(false); + chooseB->setChecked(false); + chooseC->setChecked(false); + } + else if(m_pMergeResultWindow) + { + m_pMergeResultWindow->choose(choice); + if(autoAdvance->isChecked()) + { + m_bTimerBlock = true; + QTimer::singleShot(m_pOptions->m_autoAdvanceDelay, this, &KDiff3App::slotGoNextUnsolvedConflict); + } + } + } +} + +void KDiff3App::slotChooseA() +{ + choose(e_SrcSelector::A); +} +void KDiff3App::slotChooseB() +{ + choose(e_SrcSelector::B); +} +void KDiff3App::slotChooseC() +{ + choose(e_SrcSelector::C); +} + +void KDiff3App::slotAutoSolve() +{ + Q_EMIT autoSolve(); + + slotUpdateAvailabilities(); +} + +void KDiff3App::slotUnsolve() +{ + Q_EMIT unsolve(); +} + +void KDiff3App::slotMergeHistory() +{ + Q_EMIT mergeHistory(); +} + +void KDiff3App::slotRegExpAutoMerge() +{ + Q_EMIT regExpAutoMerge(); +} + +void KDiff3App::slotSplitDiff() +{ + LineRef firstLine; + LineRef lastLine; + DiffTextWindow* pDTW = nullptr; + if(m_pDiffTextWindow1) + { + pDTW = m_pDiffTextWindow1; + pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); + } + if(!firstLine.isValid() && m_pDiffTextWindow2) + { + pDTW = m_pDiffTextWindow2; + pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); + } + if(!firstLine.isValid() && m_pDiffTextWindow3) + { + pDTW = m_pDiffTextWindow3; + pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); + } + if(pDTW && firstLine.isValid() && m_pMergeResultWindow) + { + pDTW->resetSelection(); + + m_pMergeResultWindow->slotSplitDiff(firstLine, lastLine); + } +} + +void KDiff3App::slotJoinDiffs() +{ + LineRef firstLine; + LineRef lastLine; + DiffTextWindow* pDTW = nullptr; + if(m_pDiffTextWindow1) + { + pDTW = m_pDiffTextWindow1; + pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); + } + if(!firstLine.isValid() && m_pDiffTextWindow2) + { + pDTW = m_pDiffTextWindow2; + pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); + } + if(!firstLine.isValid() && m_pDiffTextWindow3) + { + pDTW = m_pDiffTextWindow3; + pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); + } + if(pDTW && firstLine.isValid() && m_pMergeResultWindow) + { + pDTW->resetSelection(); + + m_pMergeResultWindow->slotJoinDiffs(firstLine, lastLine); + } +} + +void KDiff3App::slotConfigure() +{ + m_pOptionDialog->setState(); + m_pOptionDialog->setMinimumHeight(m_pOptionDialog->minimumHeight() + 40); + m_pOptionDialog->exec(); + slotRefresh(); +} + +void KDiff3App::slotConfigureKeys() +{ + KShortcutsDialog::configure(actionCollection(), KShortcutsEditor::LetterShortcutsAllowed, this); +} + +void KDiff3App::slotRefresh() +{ + QApplication::setFont(m_pOptions->m_appFont); + + Q_EMIT doRefresh(); + + if(m_pHScrollBar != nullptr) + { + m_pHScrollBar->setAgain(); + } + if(m_pDiffWindowSplitter != nullptr) + { + m_pDiffWindowSplitter->setOrientation(m_pOptions->m_bHorizDiffWindowSplitting ? Qt::Horizontal : Qt::Vertical); + } +} + +void KDiff3App::slotSelectionStart() +{ + const QObject* s = sender(); + + if(m_pDiffTextWindow1 && s != m_pDiffTextWindow1) m_pDiffTextWindow1->resetSelection(); + if(m_pDiffTextWindow2 && s != m_pDiffTextWindow2) m_pDiffTextWindow2->resetSelection(); + if(m_pDiffTextWindow3 && s != m_pDiffTextWindow3) m_pDiffTextWindow3->resetSelection(); + if(m_pMergeResultWindow && s != m_pMergeResultWindow) m_pMergeResultWindow->resetSelection(); +} + +void KDiff3App::slotSelectionEnd() +{ + if(m_pOptions->m_bAutoCopySelection) + { + slotEditCopy(); + } + else + { + QClipboard* clipBoard = QApplication::clipboard(); + + if(clipBoard->supportsSelection()) + { + QString sCurSelection = getSelection(); + + if(!sCurSelection.isEmpty()) + { + clipBoard->setText(sCurSelection, QClipboard::Selection); + } + } + } + + slotUpdateAvailabilities(); +} + +void KDiff3App::slotClipboardChanged() +{ + const QClipboard* clipboard = QApplication::clipboard(); + const QMimeData* mimeData = clipboard->mimeData(); + if(mimeData && mimeData->hasText()) + { + QString s = clipboard->text(); + editPaste->setEnabled(!s.isEmpty()); + } + else + { + editPaste->setEnabled(false); + } +} + +void KDiff3App::slotOutputModified(bool bModified) +{ + if(bModified && !m_bOutputModified) + { + m_bOutputModified = true; + slotUpdateAvailabilities(); + } +} + +void KDiff3App::slotAutoAdvanceToggled() +{ + m_pOptions->m_bAutoAdvance = autoAdvance->isChecked(); +} + +void KDiff3App::slotWordWrapToggled() +{ + m_pOptions->setWordWrap(wordWrap->isChecked()); + postRecalcWordWrap(); +} + +// Enable or disable all widgets except the status bar widget. +void KDiff3App::mainWindowEnable(bool bEnable) +{ + if(QMainWindow* pWindow = dynamic_cast(window())) + { + QWidget* pStatusBarWidget = pWindow->statusBar(); + pWindow->setEnabled(bEnable); + pStatusBarWidget->setEnabled(true); + } +} + +void KDiff3App::postRecalcWordWrap() +{ + if(!m_bRecalcWordWrapPosted) + { + m_bRecalcWordWrapPosted = true; + m_firstD3LIdx = -1; + Q_EMIT sigRecalcWordWrap(); + } + else + { + g_pProgressDialog->cancel(ProgressDialog::eResize); + } +} + +void KDiff3App::slotRecalcWordWrap() +{ + recalcWordWrap(); +} + +// visibleTextWidthForPrinting is >=0 only for printing, otherwise the really visible width is used +void KDiff3App::recalcWordWrap(int visibleTextWidthForPrinting) +{ + m_bRecalcWordWrapPosted = true; + mainWindowEnable(false); + + if(m_firstD3LIdx < 0) + { + m_firstD3LIdx = 0; + if(m_pDiffTextWindow1) + m_firstD3LIdx = m_pDiffTextWindow1->convertLineToDiff3LineIdx(m_pDiffTextWindow1->getFirstLine()); + } + + // Convert selection to D3L-coords (converting back happens in DiffTextWindow::recalcWordWrap() + if(m_pDiffTextWindow1) + m_pDiffTextWindow1->convertSelectionToD3LCoords(); + if(m_pDiffTextWindow2) + m_pDiffTextWindow2->convertSelectionToD3LCoords(); + if(m_pDiffTextWindow3) + m_pDiffTextWindow3->convertSelectionToD3LCoords(); + + g_pProgressDialog->clearCancelState(); // clear cancelled state if previously set + + if(!m_diff3LineList.empty()) + { + if(m_pOptions->wordWrapOn()) + { + m_diff3LineList.recalcWordWrap(true); + + // Let every window calc how many lines will be needed. + if(m_pDiffTextWindow1) + { + m_pDiffTextWindow1->recalcWordWrap(true, 0, visibleTextWidthForPrinting); + } + if(m_pDiffTextWindow2) + { + m_pDiffTextWindow2->recalcWordWrap(true, 0, visibleTextWidthForPrinting); + } + if(m_pDiffTextWindow3) + { + m_pDiffTextWindow3->recalcWordWrap(true, 0, visibleTextWidthForPrinting); + } + } + else + { + m_neededLines = m_diff3LineVector.size(); + if(m_pDiffTextWindow1) + m_pDiffTextWindow1->recalcWordWrap(false, 0, 0); + if(m_pDiffTextWindow2) + m_pDiffTextWindow2->recalcWordWrap(false, 0, 0); + if(m_pDiffTextWindow3) + m_pDiffTextWindow3->recalcWordWrap(false, 0, 0); + } + bool bRunnablesStarted = DiffTextWindow::startRunnables(); + if(!bRunnablesStarted) + slotFinishRecalcWordWrap(visibleTextWidthForPrinting); + else + { + g_pProgressDialog->setInformation(m_pOptions->wordWrapOn() + ? i18n("Word wrap (Cancel disables word wrap)") + : i18n("Calculating max width for horizontal scrollbar"), + false); + } + } + else + { + //don't leave proccessing incomplete if m_diff3LineList isEmpty as when an error occurs during reading. + slotFinishRecalcWordWrap(visibleTextWidthForPrinting); + } +} + +void KDiff3App::slotFinishRecalcWordWrap(int visibleTextWidthForPrinting) +{ + g_pProgressDialog->pop(); + + if(m_pOptions->wordWrapOn() && g_pProgressDialog->wasCancelled()) + { + if(g_pProgressDialog->cancelReason() == ProgressDialog::eUserAbort) + { + wordWrap->setChecked(false); + m_pOptions->setWordWrap(wordWrap->isChecked()); + } + + Q_EMIT sigRecalcWordWrap(); + return; + } + else + { + m_bRecalcWordWrapPosted = false; + } + + g_pProgressDialog->setStayHidden(false); + + const bool bPrinting = visibleTextWidthForPrinting >= 0; + + if(!m_diff3LineList.empty()) + { + if(m_pOptions->wordWrapOn()) + { + LineCount sumOfLines = m_diff3LineList.recalcWordWrap(false); + + // Finish the word wrap + if(m_pDiffTextWindow1) + m_pDiffTextWindow1->recalcWordWrap(true, sumOfLines, visibleTextWidthForPrinting); + if(m_pDiffTextWindow2) + m_pDiffTextWindow2->recalcWordWrap(true, sumOfLines, visibleTextWidthForPrinting); + if(m_pDiffTextWindow3) + m_pDiffTextWindow3->recalcWordWrap(true, sumOfLines, visibleTextWidthForPrinting); + + m_neededLines = sumOfLines; + } + else + { + if(m_pDiffTextWindow1) + m_pDiffTextWindow1->recalcWordWrap(false, 1, 0); + if(m_pDiffTextWindow2) + m_pDiffTextWindow2->recalcWordWrap(false, 1, 0); + if(m_pDiffTextWindow3) + m_pDiffTextWindow3->recalcWordWrap(false, 1, 0); + } + slotStatusMsg(QString()); + } + + if(!bPrinting) + { + if(m_pOverview) + m_pOverview->slotRedraw(); + if(DiffTextWindow::mVScrollBar) + DiffTextWindow::mVScrollBar->setRange(0, std::max(0, m_neededLines + 1 - m_DTWHeight)); + if(m_pDiffTextWindow1) + { + if(DiffTextWindow::mVScrollBar) + DiffTextWindow::mVScrollBar->setValue(m_pDiffTextWindow1->convertDiff3LineIdxToLine(m_firstD3LIdx)); + + setHScrollBarRange(); + m_pHScrollBar->setValue(0); + } + } + mainWindowEnable(true); + + if(m_bFinishMainInit) + { + m_bFinishMainInit = false; + slotFinishMainInit(); + } + if(m_pEventLoopForPrinting) + m_pEventLoopForPrinting->quit(); +} + +void KDiff3App::slotShowWhiteSpaceToggled() +{ + m_pOptions->m_bShowWhiteSpaceCharacters = showWhiteSpaceCharacters->isChecked(); + m_pOptions->m_bShowWhiteSpace = showWhiteSpace->isChecked(); + + Q_EMIT showWhiteSpaceToggled(); +} + +void KDiff3App::slotShowLineNumbersToggled() +{ + m_pOptions->m_bShowLineNumbers = showLineNumbers->isChecked(); + + if(wordWrap->isChecked()) + recalcWordWrap(); + + Q_EMIT showLineNumbersToggled(); +} + +/// Return true for success, else false +bool KDiff3App::doDirectoryCompare(const bool bCreateNewInstance) +{ + FileAccess f1(m_sd1->getFilename()); + FileAccess f2(m_sd2->getFilename()); + FileAccess f3(m_sd3->getFilename()); + FileAccess f4(m_outputFilename); + + Q_ASSERT(f1.isDir()); + + if(bCreateNewInstance) + { + Q_EMIT createNewInstance(f1.absoluteFilePath(), f2.absoluteFilePath(), f3.absoluteFilePath()); + } + else + { + //Only a debugging aid now. Used to insure m_bDirCompare is not changed + const bool bDirCompare = m_bDirCompare; + + FileAccess destDir; + + if(!m_bDefaultFilename) destDir = f4; + m_pDirectoryMergeSplitter->show(); + m_pMainWidget->hide(); + setUpdatesEnabled(true); + + (*gDirInfo) = DirectoryInfo(f1, f2, f3, destDir); + bool bSuccess = m_pDirectoryMergeWindow->init( + gDirInfo, + !m_outputFilename.isEmpty()); + //This is a bug if it still happens. + Q_ASSERT(m_bDirCompare == bDirCompare); + + if(bSuccess) + { + m_sd1->reset(); + if(m_pDiffTextWindow1 != nullptr) + { + m_pDiffTextWindow1->init(QString(""), nullptr, eLineEndStyleDos, nullptr, 0, nullptr, nullptr); + m_pDiffTextWindowFrame1->init(); + } + m_sd2->reset(); + if(m_pDiffTextWindow2 != nullptr) + { + m_pDiffTextWindow2->init(QString(""), nullptr, eLineEndStyleDos, nullptr, 0, nullptr, nullptr); + m_pDiffTextWindowFrame2->init(); + } + m_sd3->reset(); + if(m_pDiffTextWindow3 != nullptr) + { + m_pDiffTextWindow3->init(QString(""), nullptr, eLineEndStyleDos, nullptr, 0, nullptr, nullptr); + m_pDiffTextWindowFrame3->init(); + } + } + slotUpdateAvailabilities(); + return bSuccess; + } + + return true; +} + +/* + If A is targetted to an existing file and the paths point to directories attempt to find that file in the corrisponding + directory. If it exists then the filename from A will be appended to the path. +*/ +void KDiff3App::improveFilenames() +{ + FileAccess f1(m_sd1->getFilename()); + FileAccess f2(m_sd2->getFilename()); + FileAccess f3(m_sd3->getFilename()); + FileAccess f4(m_outputFilename); + + if(f1.isFile() && f1.exists()) + { + if(f2.isDir()) + { + f2.addPath(f1.fileName()); + if(f2.isFile() && f2.exists()) + m_sd2->setFileAccess(f2); + } + if(f3.isDir()) + { + f3.addPath(f1.fileName()); + if(f3.isFile() && f3.exists()) + m_sd3->setFileAccess(f3); + } + if(f4.isDir()) + { + f4.addPath(f1.fileName()); + if(f4.isFile() && f4.exists()) + m_outputFilename = f4.absoluteFilePath(); + } + } +} + +void KDiff3App::slotReload() +{ + if(!shouldContinue()) return; + + mainInit(m_totalDiffStatus); +} + +bool KDiff3App::canContinue() +{ + // First test if anything must be saved. + if(m_bOutputModified) + { + int result = KMessageBox::warningYesNoCancel(this, + i18n("The merge result has not been saved."), + i18n("Warning"), + KGuiItem(i18n("Save && Continue")), + KGuiItem(i18n("Continue Without Saving"))); + if(result == KMessageBox::Cancel) + return false; + else if(result == KMessageBox::Yes) + { + slotFileSave(); + if(m_bOutputModified) + { + KMessageBox::sorry(this, i18n("Saving the merge result failed."), i18n("Warning")); + return false; + } + } + } + + m_bOutputModified = false; + return true; +} + +void KDiff3App::slotDirShowBoth() +{ + if(dirShowBoth->isChecked()) + { + if(m_pDirectoryMergeSplitter) + m_pDirectoryMergeSplitter->setVisible(m_bDirCompare); + + m_pMainWidget->show(); + } + else + { + bool bTextDataAvailable = (m_sd1->hasData() || m_sd2->hasData() || m_sd3->hasData()); + if(bTextDataAvailable) + { + m_pMainWidget->show(); + m_pDirectoryMergeSplitter->hide(); + } + else if(m_bDirCompare) + { + m_pDirectoryMergeSplitter->show(); + } + } + + slotUpdateAvailabilities(); +} + +void KDiff3App::slotDirViewToggle() +{ + if(m_bDirCompare) + { + if(!m_pDirectoryMergeSplitter->isVisible()) + { + m_pDirectoryMergeSplitter->show(); + m_pMainWidget->hide(); + } + else + { + m_pDirectoryMergeSplitter->hide(); + m_pMainWidget->show(); + } + } + slotUpdateAvailabilities(); +} + +void KDiff3App::slotShowWindowAToggled() +{ + if(m_pDiffTextWindow1 != nullptr) + { + m_pDiffTextWindowFrame1->setVisible(showWindowA->isChecked()); + slotUpdateAvailabilities(); + } +} + +void KDiff3App::slotShowWindowBToggled() +{ + if(m_pDiffTextWindow2 != nullptr) + { + m_pDiffTextWindowFrame2->setVisible(showWindowB->isChecked()); + slotUpdateAvailabilities(); + } +} + +void KDiff3App::slotShowWindowCToggled() +{ + if(m_pDiffTextWindow3 != nullptr) + { + m_pDiffTextWindowFrame3->setVisible(showWindowC->isChecked()); + slotUpdateAvailabilities(); + } +} + +void KDiff3App::slotEditFind() +{ + m_pFindDialog->restartFind(); + + // Use currently selected text: + QString sCurSelection = getSelection(); + + if(!sCurSelection.isEmpty() && !sCurSelection.contains('\n')) + { + m_pFindDialog->m_pSearchString->setText(sCurSelection); + } + + if(QDialog::Accepted == m_pFindDialog->exec()) + { + slotEditFindNext(); + } +} + +void KDiff3App::slotEditFindNext() +{ + QString s = m_pFindDialog->m_pSearchString->text(); + if(s.isEmpty()) + { + slotEditFind(); + return; + } + + bool bDirDown = true; + bool bCaseSensitive = m_pFindDialog->m_pCaseSensitive->isChecked(); + + LineRef d3vLine = m_pFindDialog->currentLine; + int posInLine = m_pFindDialog->currentPos; + LineRef l; + int p = 0; + if(m_pFindDialog->getCurrentWindow() == eWindowIndex::A) + { + if(m_pFindDialog->m_pSearchInA->isChecked() && m_pDiffTextWindow1 != nullptr && + m_pDiffTextWindow1->findString(s, d3vLine, posInLine, bDirDown, bCaseSensitive)) + { + m_pDiffTextWindow1->setSelection(d3vLine, posInLine, d3vLine, posInLine + s.length(), l, p); + DiffTextWindow::mVScrollBar->setValue(l - DiffTextWindow::mVScrollBar->pageStep() / 2); + m_pHScrollBar->setValue(std::max(0, p + s.length() - m_pHScrollBar->pageStep())); + m_pFindDialog->currentLine = d3vLine; + m_pFindDialog->currentPos = posInLine + 1; + return; + } + m_pFindDialog->nextWindow(); + } + + d3vLine = m_pFindDialog->currentLine; + posInLine = m_pFindDialog->currentPos; + if(m_pFindDialog->getCurrentWindow() == eWindowIndex::B) + { + if(m_pFindDialog->m_pSearchInB->isChecked() && m_pDiffTextWindow2 != nullptr && + m_pDiffTextWindow2->findString(s, d3vLine, posInLine, bDirDown, bCaseSensitive)) + { + m_pDiffTextWindow2->setSelection(d3vLine, posInLine, d3vLine, posInLine + s.length(), l, p); + DiffTextWindow::mVScrollBar->setValue(l - DiffTextWindow::mVScrollBar->pageStep() / 2); + m_pHScrollBar->setValue(std::max(0, p + s.length() - m_pHScrollBar->pageStep())); + m_pFindDialog->currentLine = d3vLine; + m_pFindDialog->currentPos = posInLine + 1; + return; + } + + m_pFindDialog->nextWindow(); + } + + d3vLine = m_pFindDialog->currentLine; + posInLine = m_pFindDialog->currentPos; + if(m_pFindDialog->getCurrentWindow() == eWindowIndex::C) + { + if(m_pFindDialog->m_pSearchInC->isChecked() && m_pDiffTextWindow3 != nullptr && + m_pDiffTextWindow3->findString(s, d3vLine, posInLine, bDirDown, bCaseSensitive)) + { + m_pDiffTextWindow3->setSelection(d3vLine, posInLine, d3vLine, posInLine + s.length(), l, p); + DiffTextWindow::mVScrollBar->setValue(l - DiffTextWindow::mVScrollBar->pageStep() / 2); + m_pHScrollBar->setValue(std::max(0, p + s.length() - m_pHScrollBar->pageStep())); + m_pFindDialog->currentLine = d3vLine; + m_pFindDialog->currentPos = posInLine + 1; + return; + } + + m_pFindDialog->nextWindow(); + } + + d3vLine = m_pFindDialog->currentLine; + posInLine = m_pFindDialog->currentPos; + if(m_pFindDialog->getCurrentWindow() == eWindowIndex::Output) + { + if(m_pFindDialog->m_pSearchInOutput->isChecked() && m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isVisible() && + m_pMergeResultWindow->findString(s, d3vLine, posInLine, bDirDown, bCaseSensitive)) + { + m_pMergeResultWindow->setSelection(d3vLine, posInLine, d3vLine, posInLine + s.length()); + MergeResultWindow::mVScrollBar->setValue(d3vLine - MergeResultWindow::mVScrollBar->pageStep() / 2); + m_pHScrollBar->setValue(std::max(0, posInLine + s.length() - m_pHScrollBar->pageStep())); + m_pFindDialog->currentLine = d3vLine; + m_pFindDialog->currentPos = posInLine + 1; + return; + } + + m_pFindDialog->nextWindow(); + } + + KMessageBox::information(this, i18n("Search complete."), i18n("Search Complete")); + m_pFindDialog->restartFind(); +} + +void KDiff3App::slotMergeCurrentFile() +{ + if(m_bDirCompare && m_pDirectoryMergeWindow->isVisible() && m_pDirectoryMergeWindow->isFileSelected()) + { + m_pDirectoryMergeWindow->mergeCurrentFile(); + } + else if(m_pMainWidget->isVisible()) + { + if(!shouldContinue()) return; + + if(m_outputFilename.isEmpty()) + { + if(!m_sd3->isEmpty() && !m_sd3->isFromBuffer()) + { + m_outputFilename = m_sd3->getFilename(); + } + else if(!m_sd2->isEmpty() && !m_sd2->isFromBuffer()) + { + m_outputFilename = m_sd2->getFilename(); + } + else if(!m_sd1->isEmpty() && !m_sd1->isFromBuffer()) + { + m_outputFilename = m_sd1->getFilename(); + } + else + { + m_outputFilename = "unnamed.txt"; + m_bDefaultFilename = true; + } + } + mainInit(m_totalDiffStatus); + } +} + +void KDiff3App::slotWinFocusNext() +{ + QWidget* focus = qApp->focusWidget(); + if(focus == m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->isVisible() && !dirShowBoth->isChecked()) + { + slotDirViewToggle(); + } + + std::list visibleWidgetList; + if(m_pDiffTextWindow1 && m_pDiffTextWindow1->isVisible()) visibleWidgetList.push_back(m_pDiffTextWindow1); + if(m_pDiffTextWindow2 && m_pDiffTextWindow2->isVisible()) visibleWidgetList.push_back(m_pDiffTextWindow2); + if(m_pDiffTextWindow3 && m_pDiffTextWindow3->isVisible()) visibleWidgetList.push_back(m_pDiffTextWindow3); + if(m_pMergeResultWindow && m_pMergeResultWindow->isVisible()) visibleWidgetList.push_back(m_pMergeResultWindow); + if(m_bDirCompare /*m_pDirectoryMergeWindow->isVisible()*/) visibleWidgetList.push_back(m_pDirectoryMergeWindow); + //if ( m_pDirectoryMergeInfo->isVisible() ) visibleWidgetList.push_back(m_pDirectoryMergeInfo->getInfoList()); + if(visibleWidgetList.empty()) + return; + + std::list::iterator i = std::find(visibleWidgetList.begin(), visibleWidgetList.end(), focus); + ++i; + if(i == visibleWidgetList.end()) + i = visibleWidgetList.begin(); + + if(*i == m_pDirectoryMergeWindow && !dirShowBoth->isChecked()) + { + slotDirViewToggle(); + } + (*i)->setFocus(); +} + +void KDiff3App::slotWinFocusPrev() +{ + QWidget* focus = qApp->focusWidget(); + if(focus == m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->isVisible() && !dirShowBoth->isChecked()) + { + slotDirViewToggle(); + } + + std::list visibleWidgetList; + if(m_pDiffTextWindow1 && m_pDiffTextWindow1->isVisible()) visibleWidgetList.push_back(m_pDiffTextWindow1); + if(m_pDiffTextWindow2 && m_pDiffTextWindow2->isVisible()) visibleWidgetList.push_back(m_pDiffTextWindow2); + if(m_pDiffTextWindow3 && m_pDiffTextWindow3->isVisible()) visibleWidgetList.push_back(m_pDiffTextWindow3); + if(m_pMergeResultWindow && m_pMergeResultWindow->isVisible()) visibleWidgetList.push_back(m_pMergeResultWindow); + if(m_bDirCompare /* m_pDirectoryMergeWindow->isVisible() */) visibleWidgetList.push_back(m_pDirectoryMergeWindow); + //if ( m_pDirectoryMergeInfo->isVisible() ) visibleWidgetList.push_back(m_pDirectoryMergeInfo->getInfoList()); + if(visibleWidgetList.empty()) + return; + + std::list::iterator i = std::find(visibleWidgetList.begin(), visibleWidgetList.end(), focus); + if(i == visibleWidgetList.begin()) + i = visibleWidgetList.end(); + --i; + //i will never be + if(*i == m_pDirectoryMergeWindow && !dirShowBoth->isChecked()) + { + slotDirViewToggle(); + } + (*i)->setFocus(); +} + +void KDiff3App::slotWinToggleSplitterOrientation() +{ + if(m_pDiffWindowSplitter != nullptr) + { + m_pDiffWindowSplitter->setOrientation( + m_pDiffWindowSplitter->orientation() == Qt::Vertical ? Qt::Horizontal : Qt::Vertical); + + m_pOptions->m_bHorizDiffWindowSplitting = m_pDiffWindowSplitter->orientation() == Qt::Horizontal; + } +} + +void KDiff3App::slotOverviewNormal() +{ + Q_EMIT changeOverViewMode(e_OverviewMode::eOMNormal); + + slotUpdateAvailabilities(); +} + +void KDiff3App::slotOverviewAB() +{ + Q_EMIT changeOverViewMode(e_OverviewMode::eOMAvsB); + + slotUpdateAvailabilities(); +} + +void KDiff3App::slotOverviewAC() +{ + Q_EMIT changeOverViewMode(e_OverviewMode::eOMAvsC); + + slotUpdateAvailabilities(); +} + +void KDiff3App::slotOverviewBC() +{ + Q_EMIT changeOverViewMode(e_OverviewMode::eOMBvsC); + + slotUpdateAvailabilities(); +} + +void KDiff3App::slotNoRelevantChangesDetected() +{ + if(m_bTripleDiff && !m_outputFilename.isEmpty()) + { + //KMessageBox::information( this, "No relevant changes detected", "KDiff3" ); + if(!m_pOptions->m_IrrelevantMergeCmd.isEmpty()) + { + /* + QProcess doesn't check for single quotes and uses non-standard escaping syntax for double quotes. + The distinction between single and double quotes is purely a command shell issue. So + we split the command string ourselves. + */ + QStringList args; + QString program; + Utils::getArguments(m_pOptions->m_IrrelevantMergeCmd, program, args); + QProcess process; + process.start(program, args); + process.waitForFinished(-1); + } + } +} + +void KDiff3App::slotAddManualDiffHelp() +{ + LineRef firstLine; + LineRef lastLine; + e_SrcSelector winIdx = e_SrcSelector::Invalid; + if(m_pDiffTextWindow1) + { + m_pDiffTextWindow1->getSelectionRange(&firstLine, &lastLine, eFileCoords); + winIdx = e_SrcSelector::A; + } + if(!firstLine.isValid() && m_pDiffTextWindow2) + { + m_pDiffTextWindow2->getSelectionRange(&firstLine, &lastLine, eFileCoords); + winIdx = e_SrcSelector::B; + } + if(!firstLine.isValid() && m_pDiffTextWindow3) + { + m_pDiffTextWindow3->getSelectionRange(&firstLine, &lastLine, eFileCoords); + winIdx = e_SrcSelector::C; + } + + if(!firstLine.isValid() || !lastLine.isValid() || lastLine < firstLine) + KMessageBox::information(this, i18n("Nothing is selected in either diff input window."), i18n("Error while adding manual diff range")); + else + { + m_manualDiffHelpList.insertEntry(winIdx, firstLine, lastLine); + + mainInit(m_totalDiffStatus, InitFlag::autoSolve | InitFlag::initGUI); // Init without reload + slotRefresh(); + } +} + +void KDiff3App::slotClearManualDiffHelpList() +{ + m_manualDiffHelpList.clear(); + mainInit(m_totalDiffStatus, InitFlag::autoSolve | InitFlag::initGUI); // Init without reload + slotRefresh(); +} + +void KDiff3App::slotEncodingChanged(QTextCodec* c) +{ + encodingChanged(c); + mainInit(m_totalDiffStatus, InitFlag::loadFiles | InitFlag::useCurrentEncoding | InitFlag::autoSolve ); // Init with reload + slotRefresh(); +} + +void KDiff3App::slotUpdateAvailabilities() +{ + if(m_pMainSplitter == nullptr || m_pDiffTextWindow2 == nullptr || m_pDiffTextWindow1 == nullptr || m_pDiffTextWindow3 == nullptr) + return; + + bool bTextDataAvailable = (m_sd1->hasData() || m_sd2->hasData() || m_sd3->hasData()); + + if(dirShowBoth->isChecked()) + { + if(m_pDirectoryMergeSplitter != nullptr) + m_pDirectoryMergeSplitter->setVisible(m_bDirCompare); + + if( !m_pMainWidget->isVisible() && + bTextDataAvailable && !m_pDirectoryMergeWindow->isScanning()) + m_pMainWidget->show(); + } + + bool bDiffWindowVisible = m_pMainWidget->isVisible(); + bool bMergeEditorVisible = m_pMergeWindowFrame != nullptr && m_pMergeWindowFrame->isVisible() && m_pMergeResultWindow != nullptr; + + m_pDirectoryMergeWindow->updateAvailabilities(bMergeEditorVisible, m_bDirCompare, bDiffWindowVisible, chooseA, chooseB, chooseC); + + dirShowBoth->setEnabled(m_bDirCompare); + dirViewToggle->setEnabled( + m_bDirCompare && + ( m_pDirectoryMergeSplitter != nullptr && + ((!m_pDirectoryMergeSplitter->isVisible() && m_pMainWidget->isVisible()) || + (m_pDirectoryMergeSplitter->isVisible() && !m_pMainWidget->isVisible() && bTextDataAvailable)))); + + showWhiteSpaceCharacters->setEnabled(bDiffWindowVisible); + autoAdvance->setEnabled(bMergeEditorVisible); + mAutoSolve->setEnabled(bMergeEditorVisible && m_bTripleDiff); + mUnsolve->setEnabled(bMergeEditorVisible); + + editCut->setEnabled(allowCut()); + editCopy->setEnabled(allowCopy()); + + if(m_pMergeResultWindow != nullptr) + { + m_pMergeResultWindow->slotUpdateAvailabilities(); + } + + mMergeHistory->setEnabled(bMergeEditorVisible); + mergeRegExp->setEnabled(bMergeEditorVisible); + showWindowA->setEnabled(bDiffWindowVisible && (m_pDiffTextWindow2->isVisible() || m_pDiffTextWindow3->isVisible())); + showWindowB->setEnabled(bDiffWindowVisible && (m_pDiffTextWindow1->isVisible() || m_pDiffTextWindow3->isVisible())); + showWindowC->setEnabled(bDiffWindowVisible && m_bTripleDiff && (m_pDiffTextWindow1->isVisible() || m_pDiffTextWindow2->isVisible())); + editFind->setEnabled(bDiffWindowVisible); + editFindNext->setEnabled(bDiffWindowVisible); + m_pFindDialog->m_pSearchInC->setEnabled(m_bTripleDiff); + m_pFindDialog->m_pSearchInOutput->setEnabled(bMergeEditorVisible); + + bool bSavable = bMergeEditorVisible && m_pMergeResultWindow->getNrOfUnsolvedConflicts() == 0; + fileSave->setEnabled(m_bOutputModified && bSavable); + fileSaveAs->setEnabled(bSavable); + + mGoTop->setEnabled(bDiffWindowVisible && m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isDeltaAboveCurrent()); + mGoBottom->setEnabled(bDiffWindowVisible && m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isDeltaBelowCurrent()); + mGoCurrent->setEnabled(bDiffWindowVisible); + mGoPrevUnsolvedConflict->setEnabled(bMergeEditorVisible && m_pMergeResultWindow->isUnsolvedConflictAboveCurrent()); + mGoNextUnsolvedConflict->setEnabled(bMergeEditorVisible && m_pMergeResultWindow->isUnsolvedConflictBelowCurrent()); + mGoPrevConflict->setEnabled(bDiffWindowVisible && bMergeEditorVisible && m_pMergeResultWindow->isConflictAboveCurrent()); + mGoNextConflict->setEnabled(bDiffWindowVisible && bMergeEditorVisible && m_pMergeResultWindow->isConflictBelowCurrent()); + mGoPrevDelta->setEnabled(bDiffWindowVisible && m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isDeltaAboveCurrent()); + mGoNextDelta->setEnabled(bDiffWindowVisible && m_pMergeResultWindow != nullptr && m_pMergeResultWindow->isDeltaBelowCurrent()); + + overviewModeNormal->setEnabled(m_bTripleDiff && bDiffWindowVisible); + overviewModeAB->setEnabled(m_bTripleDiff && bDiffWindowVisible); + overviewModeAC->setEnabled(m_bTripleDiff && bDiffWindowVisible); + overviewModeBC->setEnabled(m_bTripleDiff && bDiffWindowVisible); + e_OverviewMode overviewMode = m_pOverview == nullptr ? e_OverviewMode::eOMNormal : m_pOverview->getOverviewMode(); + overviewModeNormal->setChecked(overviewMode == e_OverviewMode::eOMNormal); + overviewModeAB->setChecked(overviewMode == e_OverviewMode::eOMAvsB); + overviewModeAC->setChecked(overviewMode == e_OverviewMode::eOMAvsC); + overviewModeBC->setChecked(overviewMode == e_OverviewMode::eOMBvsC); + + winToggleSplitOrientation->setEnabled(bDiffWindowVisible && m_pDiffWindowSplitter != nullptr); +} diff --git a/src/progress.cpp b/src/progress.cpp new file mode 100644 index 0000000..500d3aa --- /dev/null +++ b/src/progress.cpp @@ -0,0 +1,712 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "progress.h" +#include "common.h" +#include "defmac.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +ProgressDialog* g_pProgressDialog = nullptr; + +ProgressDialog::ProgressDialog(QWidget* pParent, QStatusBar* pStatusBar) + : QDialog(pParent), m_pStatusBar(pStatusBar) +{ + m_pGuiThread = QThread::currentThread(); + + setObjectName("ProgressDialog"); + m_bStayHidden = false; + setModal(true); + QVBoxLayout* layout = new QVBoxLayout(this); + + m_pInformation = new QLabel(" ", this); + layout->addWidget(m_pInformation); + + m_pProgressBar = new QProgressBar(); + m_pProgressBar->setRange(0, 1000); + layout->addWidget(m_pProgressBar); + + m_pSubInformation = new QLabel(" ", this); + layout->addWidget(m_pSubInformation); + + m_pSubProgressBar = new QProgressBar(); + m_pSubProgressBar->setRange(0, 1000); + layout->addWidget(m_pSubProgressBar); + + m_pSlowJobInfo = new QLabel(" ", this); + layout->addWidget(m_pSlowJobInfo); + + QHBoxLayout* hlayout = new QHBoxLayout(); + layout->addLayout(hlayout); + hlayout->addStretch(1); + m_pAbortButton = new QPushButton(i18n("&Cancel"), this); + hlayout->addWidget(m_pAbortButton); + chk_connect(m_pAbortButton, &QPushButton::clicked, this, &ProgressDialog::slotAbort); + if(m_pStatusBar != nullptr) + { + m_pStatusBarWidget = new QWidget; + QHBoxLayout* pStatusBarLayout = new QHBoxLayout(m_pStatusBarWidget); + pStatusBarLayout->setContentsMargins(0, 0, 0, 0); + pStatusBarLayout->setSpacing(3); + m_pStatusProgressBar = new QProgressBar; + m_pStatusProgressBar->setRange(0, 1000); + m_pStatusProgressBar->setTextVisible(false); + m_pStatusAbortButton = new QPushButton(i18n("&Cancel")); + chk_connect(m_pStatusAbortButton, &QPushButton::clicked, this, &ProgressDialog::slotAbort); + pStatusBarLayout->addWidget(m_pStatusProgressBar); + pStatusBarLayout->addWidget(m_pStatusAbortButton); + m_pStatusBar->addPermanentWidget(m_pStatusBarWidget, 0); + m_pStatusBarWidget->setFixedHeight(m_pStatusBar->height()); + m_pStatusBarWidget->hide(); + } + else + { + m_pStatusProgressBar = nullptr; + m_pStatusAbortButton = nullptr; + } + + m_progressDelayTimer = 0; + m_delayedHideTimer = 0; + m_delayedHideStatusBarWidgetTimer = 0; + resize(400, 100); +#ifndef AUTOTEST + m_t1.start(); + m_t2.start(); +#endif + m_bWasCancelled = false; + m_eCancelReason = eUserAbort; + m_pJob = nullptr; +} + +void ProgressDialog::setStayHidden(bool bStayHidden) +{ +#ifndef AUTOTEST + if(m_bStayHidden != bStayHidden) + { + m_bStayHidden = bStayHidden; + if(m_pStatusBarWidget != nullptr) + { + if(m_bStayHidden) + { + if(m_delayedHideStatusBarWidgetTimer) + { + killTimer(m_delayedHideStatusBarWidgetTimer); + m_delayedHideStatusBarWidgetTimer = 0; + } + m_pStatusBarWidget->show(); + } + else + hideStatusBarWidget(); // delayed + } + if(isVisible() && m_bStayHidden) + hide(); // delayed hide + } +#else + Q_UNUSED(bStayHidden); +#endif +} + +void ProgressDialog::push() +{ +#ifndef AUTOTEST + ProgressLevelData pld; + if(!m_progressStack.empty()) + { + pld.m_dRangeMax = m_progressStack.back().m_dSubRangeMax; + pld.m_dRangeMin = m_progressStack.back().m_dSubRangeMin; + } + else + { + m_bWasCancelled = false; + m_t1.restart(); + m_t2.restart(); + if(!m_bStayHidden) + show(); + } + + m_progressStack.push_back(pld); +#endif +} + +void ProgressDialog::pop(bool bRedrawUpdate) +{ +#ifndef AUTOTEST + if(!m_progressStack.empty()) + { + m_progressStack.pop_back(); + if(m_progressStack.empty()) + { + hide(); + } + else + recalc(bRedrawUpdate); + } +#else + Q_UNUSED(bRedrawUpdate); +#endif +} + +void ProgressDialog::setInformation(const QString& info, int current, bool bRedrawUpdate) +{ +#ifndef AUTOTEST + if(m_progressStack.empty()) + return; + ProgressLevelData& pld = m_progressStack.back(); + pld.m_current = current; + int level = m_progressStack.size(); + if(level == 1) + { + m_pInformation->setText(info); + m_pSubInformation->setText(""); + if(m_pStatusBar != nullptr && m_bStayHidden) + m_pStatusBar->showMessage(info); + } + else if(level == 2) + { + m_pSubInformation->setText(info); + } + recalc(bRedrawUpdate); +#else + Q_UNUSED(info); + Q_UNUSED(bRedrawUpdate); + Q_UNUSED(current); +#endif +} + +void ProgressDialog::setInformation(const QString& info, bool bRedrawUpdate) +{ +#ifndef AUTOTEST + if(m_progressStack.empty()) + return; + //ProgressLevelData& pld = m_progressStack.back(); + int level = m_progressStack.size(); + if(level == 1) + { + m_pInformation->setText(info); + m_pSubInformation->setText(""); + if(m_pStatusBar && m_bStayHidden) + m_pStatusBar->showMessage(info); + } + else if(level == 2) + { + m_pSubInformation->setText(info); + } + recalc(bRedrawUpdate); +#else + Q_UNUSED(info); + Q_UNUSED(bRedrawUpdate); +#endif +} + +void ProgressDialog::setMaxNofSteps(const qint64 maxNofSteps) +{ +#ifndef AUTOTEST + if(m_progressStack.empty() || maxNofSteps == 0) + return; + ProgressLevelData& pld = m_progressStack.back(); + pld.m_maxNofSteps = maxNofSteps; + pld.m_current = 0; +#else + Q_UNUSED(maxNofSteps); +#endif +} + +void ProgressDialog::addNofSteps(const qint64 nofSteps) +{ +#ifndef AUTOTEST + if(m_progressStack.empty()) + return; + ProgressLevelData& pld = m_progressStack.back(); + pld.m_maxNofSteps.fetchAndAddRelaxed(nofSteps); +#else + Q_UNUSED(nofSteps); +#endif +} + +void ProgressDialog::step(bool bRedrawUpdate) +{ +#ifndef AUTOTEST + if(m_progressStack.empty()) + return; + ProgressLevelData& pld = m_progressStack.back(); + pld.m_current.fetchAndAddRelaxed(1); + recalc(bRedrawUpdate); +#else + Q_UNUSED(bRedrawUpdate); +#endif +} + +void ProgressDialog::setCurrent(qint64 subCurrent, bool bRedrawUpdate) +{ +#ifndef AUTOTEST + if(m_progressStack.empty()) + return; + ProgressLevelData& pld = m_progressStack.back(); + pld.m_current = subCurrent; + recalc(bRedrawUpdate); +#else + Q_UNUSED(subCurrent); + Q_UNUSED(bRedrawUpdate); +#endif +} + +void ProgressDialog::clear() +{ +#ifndef AUTOTEST + if(m_progressStack.isEmpty()) + return; + + ProgressLevelData& pld = m_progressStack.back(); + setCurrent(pld.m_maxNofSteps); +#endif +} + +// The progressbar goes from 0 to 1 usually. +// By supplying a subrange transformation the subCurrent-values +// 0 to 1 will be transformed to dMin to dMax instead. +// Requirement: 0 < dMin < dMax < 1 +void ProgressDialog::setRangeTransformation(double dMin, double dMax) +{ +#ifndef AUTOTEST + if(m_progressStack.empty()) + return; + ProgressLevelData& pld = m_progressStack.back(); + pld.m_dRangeMin = dMin; + pld.m_dRangeMax = dMax; + pld.m_current = 0; +#else + Q_UNUSED(dMin); + Q_UNUSED(dMax); +#endif +} + +void ProgressDialog::setSubRangeTransformation(double dMin, double dMax) +{ +#ifndef AUTOTEST + if(m_progressStack.empty()) + return; + ProgressLevelData& pld = m_progressStack.back(); + pld.m_dSubRangeMin = dMin; + pld.m_dSubRangeMax = dMax; +#else + Q_UNUSED(dMin); + Q_UNUSED(dMax); +#endif +} + +void ProgressDialog::enterEventLoop(KJob* pJob, const QString& jobInfo) +{ +#ifndef AUTOTEST + m_pJob = pJob; + m_currentJobInfo = jobInfo; + m_pSlowJobInfo->setText(m_currentJobInfo); + if(m_progressDelayTimer) + killTimer(m_progressDelayTimer); + m_progressDelayTimer = startTimer(3000); /* 3 s delay */ + + // immediately show the progress dialog for KIO jobs, because some KIO jobs require password authentication, + // but if the progress dialog pops up at a later moment, this might cover the login dialog and hide it from the user. + if(m_pJob && !m_bStayHidden) + show(); + + // instead of using exec() the eventloop is entered and exited often without hiding/showing the window. + if(m_eventLoop == nullptr) + { + m_eventLoop = QPointer(new QEventLoop(this)); + m_eventLoop->exec(); // this function only returns after ProgressDialog::exitEventLoop() is called. + m_eventLoop.clear(); + } + else + { + m_eventLoop->processEvents(QEventLoop::WaitForMoreEvents); + } +#else + Q_UNUSED(pJob); + Q_UNUSED(jobInfo); +#endif +} + +void ProgressDialog::exitEventLoop() +{ +#ifndef AUTOTEST + if(m_progressDelayTimer) + killTimer(m_progressDelayTimer); + m_progressDelayTimer = 0; + m_pJob = nullptr; + if(m_eventLoop != nullptr) + m_eventLoop->exit(); +#endif +} + +void ProgressDialog::recalc(bool bUpdate) +{ +#ifndef AUTOTEST + if(!m_bWasCancelled) + { + if(QThread::currentThread() == m_pGuiThread) + { + if(m_progressDelayTimer) + killTimer(m_progressDelayTimer); + m_progressDelayTimer = 0; + if(!m_bStayHidden) + m_progressDelayTimer = startTimer(3000); /* 3 s delay */ + + int level = m_progressStack.size(); + if((bUpdate && level == 1) || m_t1.elapsed() > 200) + { + if(m_progressStack.empty()) + { + m_pProgressBar->setValue(0); + m_pSubProgressBar->setValue(0); + } + else + { + QList::iterator i = m_progressStack.begin(); + int value = int(1000.0 * (getAtomic(i->m_current) * (i->m_dRangeMax - i->m_dRangeMin) / getAtomic(i->m_maxNofSteps) + i->m_dRangeMin)); + m_pProgressBar->setValue(value); + if(m_bStayHidden && m_pStatusProgressBar) + m_pStatusProgressBar->setValue(value); + + ++i; + if(i != m_progressStack.end()) + m_pSubProgressBar->setValue(int(1000.0 * (getAtomic(i->m_current) * (i->m_dRangeMax - i->m_dRangeMin) / getAtomic(i->m_maxNofSteps) + i->m_dRangeMin))); + else + m_pSubProgressBar->setValue(int(1000.0 * m_progressStack.front().m_dSubRangeMin)); + } + + if(!m_bStayHidden && !isVisible()) + show(); + qApp->processEvents(); + m_t1.restart(); + } + } + else + { + QMetaObject::invokeMethod(this, "recalc", Qt::QueuedConnection, Q_ARG(bool, bUpdate)); + } + } +#else + Q_UNUSED(bUpdate); +#endif +} + +void ProgressDialog::show() +{ +#ifndef AUTOTEST + if(m_progressDelayTimer) + killTimer(m_progressDelayTimer); + if(m_delayedHideTimer) + killTimer(m_delayedHideTimer); + m_progressDelayTimer = 0; + m_delayedHideTimer = 0; + if(!isVisible() && (parentWidget() == nullptr || parentWidget()->isVisible())) + { + QDialog::show(); + } +#endif +} + +void ProgressDialog::hide() +{ +#ifndef AUTOTEST + if(m_progressDelayTimer) + killTimer(m_progressDelayTimer); + m_progressDelayTimer = 0; + // Calling QDialog::hide() directly doesn't always work. (?) + if(m_delayedHideTimer) + killTimer(m_delayedHideTimer); + m_delayedHideTimer = startTimer(100); +#endif +} + +void ProgressDialog::delayedHide() +{ +#ifndef AUTOTEST + if(m_pJob != nullptr) + { + m_pJob->kill(KJob::Quietly); + m_pJob = nullptr; + } + QDialog::hide(); + m_pInformation->setText(""); + + //m_progressStack.clear(); + + m_pProgressBar->setValue(0); + m_pSubProgressBar->setValue(0); + m_pSubInformation->setText(""); + m_pSlowJobInfo->setText(""); +#endif +} + +void ProgressDialog::hideStatusBarWidget() +{ +#ifndef AUTOTEST + if(m_delayedHideStatusBarWidgetTimer) + killTimer(m_delayedHideStatusBarWidgetTimer); + m_delayedHideStatusBarWidgetTimer = startTimer(100); +#endif +} + +void ProgressDialog::delayedHideStatusBarWidget() +{ +#ifndef AUTOTEST + if(m_progressDelayTimer) + killTimer(m_progressDelayTimer); + m_progressDelayTimer = 0; + if(m_pStatusBarWidget != nullptr) + { + m_pStatusBarWidget->hide(); + m_pStatusProgressBar->setValue(0); + m_pStatusBar->clearMessage(); + } +#endif +} + +void ProgressDialog::reject() +{ +#ifndef AUTOTEST + cancel(eUserAbort); + QDialog::reject(); +#endif +} + +void ProgressDialog::slotAbort() +{ +#ifndef AUTOTEST + reject(); +#endif +} + +bool ProgressDialog::wasCancelled() +{ +#ifndef AUTOTEST + if(QThread::currentThread() == m_pGuiThread) + { + if(m_t2.elapsed() > 100) + { + qApp->processEvents(); + m_t2.restart(); + } + } + return m_bWasCancelled; +#else + return false; +#endif +} + +void ProgressDialog::clearCancelState() +{ +#ifndef AUTOTEST + m_bWasCancelled = false; +#endif +} + +void ProgressDialog::cancel(e_CancelReason eCancelReason) +{ +#ifndef AUTOTEST + if(!m_bWasCancelled) + { + m_bWasCancelled = true; + m_eCancelReason = eCancelReason; + if(m_eventLoop != nullptr) + m_eventLoop->exit(1); + } +#else + Q_UNUSED(eCancelReason); +#endif +} + +ProgressDialog::e_CancelReason ProgressDialog::cancelReason() +{ + return m_eCancelReason; +} + +void ProgressDialog::timerEvent(QTimerEvent* te) +{ +#ifndef AUTOTEST + if(te->timerId() == m_progressDelayTimer) + { + if(!isVisible() && !m_bStayHidden) + { + show(); + } + m_pSlowJobInfo->setText(m_currentJobInfo); + } + else if(te->timerId() == m_delayedHideTimer) + { + killTimer(m_delayedHideTimer); + m_delayedHideTimer = 0; + delayedHide(); + } + else if(te->timerId() == m_delayedHideStatusBarWidgetTimer) + { + killTimer(m_delayedHideStatusBarWidgetTimer); + m_delayedHideStatusBarWidgetTimer = 0; + delayedHideStatusBarWidget(); + } +#else + Q_UNUSED(te); +#endif +} +#ifndef AUTOTEST + +ProgressProxy::ProgressProxy() +{ + g_pProgressDialog->push(); +} +#else +ProgressProxy::ProgressProxy()=default; +#endif + +#ifndef AUTOTEST +ProgressProxy::~ProgressProxy() +{ + g_pProgressDialog->pop(false); +} + +#else +ProgressProxy::~ProgressProxy() = default; +#endif + +void ProgressProxy::enterEventLoop(KJob* pJob, const QString& jobInfo) +{ +#ifndef AUTOTEST + g_pProgressDialog->enterEventLoop(pJob, jobInfo); +#else + Q_UNUSED(pJob); + Q_UNUSED(jobInfo); +#endif +} + +void ProgressProxy::exitEventLoop() +{ +#ifndef AUTOTEST + g_pProgressDialog->exitEventLoop(); +#endif +} + +QDialog* ProgressProxy::getDialog() +{ + return g_pProgressDialog; +} + +void ProgressProxy::setInformation(const QString& info, bool bRedrawUpdate) +{ +#ifndef AUTOTEST + g_pProgressDialog->setInformation(info, bRedrawUpdate); +#else + Q_UNUSED(info); + Q_UNUSED(bRedrawUpdate); +#endif +} + +void ProgressProxy::setInformation(const QString& info, int current, bool bRedrawUpdate) +{ +#ifndef AUTOTEST + g_pProgressDialog->setInformation(info, current, bRedrawUpdate); +#else + Q_UNUSED(info); + Q_UNUSED(bRedrawUpdate); + Q_UNUSED(current); +#endif +} + +void ProgressProxy::setCurrent(qint64 current, bool bRedrawUpdate) +{ +#ifndef AUTOTEST + g_pProgressDialog->setCurrent(current, bRedrawUpdate); +#else + Q_UNUSED(bRedrawUpdate); + Q_UNUSED(current); +#endif +} + +void ProgressProxy::step(bool bRedrawUpdate) +{ +#ifndef AUTOTEST + g_pProgressDialog->step(bRedrawUpdate); +#else + Q_UNUSED(bRedrawUpdate); +#endif +} + +void ProgressProxy::clear() +{ +#ifndef AUTOTEST + g_pProgressDialog->clear(); +#endif +} + +void ProgressProxy::setMaxNofSteps(const qint64 maxNofSteps) +{ +#ifndef AUTOTEST + g_pProgressDialog->setMaxNofSteps(maxNofSteps); +#else + Q_UNUSED(maxNofSteps); +#endif +} + +void ProgressProxy::addNofSteps(const qint64 nofSteps) +{ +#ifndef AUTOTEST + g_pProgressDialog->addNofSteps(nofSteps); +#else + Q_UNUSED(nofSteps) +#endif +} + +bool ProgressProxy::wasCancelled() +{ +#ifndef AUTOTEST + return g_pProgressDialog->wasCancelled(); +#else + return false; +#endif +} + +void ProgressProxy::setRangeTransformation(double dMin, double dMax) +{ +#ifndef AUTOTEST + g_pProgressDialog->setRangeTransformation(dMin, dMax); +#else + Q_UNUSED(dMin); + Q_UNUSED(dMax); +#endif +} + +void ProgressProxy::setSubRangeTransformation(double dMin, double dMax) +{ +#ifndef AUTOTEST + g_pProgressDialog->setSubRangeTransformation(dMin, dMax); +#else + Q_UNUSED(dMin); + Q_UNUSED(dMax); +#endif +} + +void ProgressProxy::recalc() +{ +#ifndef AUTOTEST + g_pProgressDialog->recalc(true); +#endif +} diff --git a/src/progress.h b/src/progress.h new file mode 100644 index 0000000..c3b2ecc --- /dev/null +++ b/src/progress.h @@ -0,0 +1,141 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + + +#ifndef PROGRESS_H +#define PROGRESS_H + +#include +#include +#include +#include + +class KJob; +class QEventLoop; +class QLabel; +class QProgressBar; +class QStatusBar; + +class ProgressDialog : public QDialog +{ + Q_OBJECT +public: + ProgressDialog( QWidget* pParent,QStatusBar* ); + + void setStayHidden( bool bStayHidden ); + void setInformation( const QString& info, bool bRedrawUpdate=true ); + void setInformation( const QString& info, int current, bool bRedrawUpdate=true ); + void setCurrent( qint64 current, bool bRedrawUpdate=true ); + void step( bool bRedrawUpdate=true ); + void clear(); + void setMaxNofSteps(const qint64 dMaxNofSteps); + void addNofSteps(const qint64 nofSteps ); + void push(); + void pop(bool bRedrawUpdate=true); + + // The progressbar goes from 0 to 1 usually. + // By supplying a subrange transformation the subCurrent-values + // 0 to 1 will be transformed to dMin to dMax instead. + // Requirement: 0 < dMin < dMax < 1 + void setRangeTransformation( double dMin, double dMax ); + void setSubRangeTransformation( double dMin, double dMax ); + + void exitEventLoop(); + void enterEventLoop( KJob* pJob, const QString& jobInfo ); + + bool wasCancelled(); + enum e_CancelReason{eUserAbort,eResize}; + void cancel(e_CancelReason); + e_CancelReason cancelReason(); + void clearCancelState(); + void show(); + void hide(); + void hideStatusBarWidget(); + void delayedHideStatusBarWidget(); + + void timerEvent(QTimerEvent* event) override; +public Q_SLOTS: + void recalc(bool bUpdate); +private: + + struct ProgressLevelData + { + ProgressLevelData() + { + m_current=0; m_maxNofSteps=1; m_dRangeMin=0; m_dRangeMax=1; + m_dSubRangeMin = 0; m_dSubRangeMax = 1; + } + QAtomicInteger m_current; + QAtomicInteger m_maxNofSteps; // when step() is used. + double m_dRangeMax; + double m_dRangeMin; + double m_dSubRangeMax; + double m_dSubRangeMin; + }; + QList m_progressStack; + + int m_progressDelayTimer; + int m_delayedHideTimer; + int m_delayedHideStatusBarWidgetTimer; + QPointer m_eventLoop; + + QProgressBar* m_pProgressBar; + QProgressBar* m_pSubProgressBar; + QLabel* m_pInformation; + QLabel* m_pSubInformation; + QLabel* m_pSlowJobInfo; + QPushButton* m_pAbortButton; + QElapsedTimer m_t1; + QElapsedTimer m_t2; + bool m_bWasCancelled; + e_CancelReason m_eCancelReason; + KJob* m_pJob = nullptr; + QString m_currentJobInfo; // Needed if the job doesn't stop after a reasonable time. + bool m_bStayHidden; + QThread* m_pGuiThread; + QStatusBar* m_pStatusBar; // status bar of main window (if exists) + QWidget* m_pStatusBarWidget; + QProgressBar* m_pStatusProgressBar; + QPushButton* m_pStatusAbortButton; +protected: + void reject() override; +private Q_SLOTS: + void delayedHide(); + void slotAbort(); +}; + +// When using the ProgressProxy you need not take care of the push and pop, except when explicit. +class ProgressProxy: public QObject +{ + Q_OBJECT +public: + ProgressProxy(); + ~ProgressProxy() override; + + void setInformation( const QString& info, bool bRedrawUpdate=true ); + void setInformation( const QString& info, int current, bool bRedrawUpdate=true ); + void setCurrent( qint64 current, bool bRedrawUpdate=true ); + void step( bool bRedrawUpdate=true ); + void clear(); + void setMaxNofSteps( const qint64 maxNofSteps ); + void addNofSteps( const qint64 nofSteps ); + bool wasCancelled(); + void setRangeTransformation( double dMin, double dMax ); + void setSubRangeTransformation( double dMin, double dMax ); + + static void exitEventLoop(); + static void enterEventLoop( KJob* pJob, const QString& jobInfo ); + static QDialog *getDialog(); + static void recalc(); +private: +}; + +extern ProgressDialog* g_pProgressDialog; + +#endif + diff --git a/src/scroller.ui b/src/scroller.ui new file mode 100644 index 0000000..0970c11 --- /dev/null +++ b/src/scroller.ui @@ -0,0 +1,41 @@ + + + ScrollArea + + + + 0 + 0 + 525 + 432 + + + + + 0 + 0 + + + + Qt::LeftToRight + + + QAbstractScrollArea::AdjustToContents + + + true + + + + + 0 + 0 + 521 + 428 + + + + + + + diff --git a/src/selection.cpp b/src/selection.cpp new file mode 100644 index 0000000..5c4b8d9 --- /dev/null +++ b/src/selection.cpp @@ -0,0 +1,110 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "selection.h" + +#include "TypeUtils.h" + +#include // for swap + +#include + +int Selection::firstPosInLine(LineRef l) const +{ + Q_ASSERT(firstLine.isValid()); + + LineRef l1 = firstLine; + LineRef l2 = lastLine; + int p1 = firstPos; + int p2 = lastPos; + if(l1 > l2) + { + std::swap(l1, l2); + std::swap(p1, p2); + } + if(l1 == l2 && p1 > p2) + { + std::swap(p1, p2); + } + + if(l == l1) + return p1; + + return 0; +} + +int Selection::lastPosInLine(LineRef l) const +{ + Q_ASSERT(firstLine.isValid()); + + LineRef l1 = firstLine; + LineRef l2 = lastLine; + int p1 = firstPos; + int p2 = lastPos; + + if(l1 > l2) + { + std::swap(l1, l2); + std::swap(p1, p2); + } + if(l1 == l2 && p1 > p2) + { + std::swap(p1, p2); + } + + if(l == l2) + return p2; + + return TYPE_MAX(int); +} + +bool Selection::within(LineRef l, LineRef p) const +{ + if(!firstLine.isValid()) + return false; + + LineRef l1 = firstLine; + LineRef l2 = lastLine; + int p1 = firstPos; + int p2 = lastPos; + if(l1 > l2) + { + std::swap(l1, l2); + std::swap(p1, p2); + } + if(l1 == l2 && p1 > p2) + { + std::swap(p1, p2); + } + if(l1 <= l && l <= l2) + { + if(l1 == l2) + return p >= p1 && p < p2; + if(l == l1) + return p >= p1; + if(l == l2) + return p < p2; + return true; + } + return false; +} + +bool Selection::lineWithin(LineRef l) const +{ + if(!firstLine.isValid()) + return false; + LineRef l1 = firstLine; + LineRef l2 = lastLine; + + if(l1 > l2) + { + std::swap(l1, l2); + } + + return (l1 <= l && l <= l2); +} diff --git a/src/selection.h b/src/selection.h new file mode 100644 index 0000000..f2db013 --- /dev/null +++ b/src/selection.h @@ -0,0 +1,85 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + * SPDX-License-Identifier: GPL-2.0-or-later +*/ +#ifndef SELECTION_H +#define SELECTION_H + +#include "LineRef.h" + +#include // for max, min + +class Selection +{ +public: + Selection() = default; +private: + LineRef firstLine; + LineRef lastLine; + + int firstPos = -1; + int lastPos = -1; + + LineRef oldFirstLine; + LineRef oldLastLine; +public: +//private: + bool bSelectionContainsData = false; +public: + inline LineRef getFirstLine() const { return firstLine; }; + inline LineRef getLastLine() const { return lastLine; }; + + inline int getFirstPos() const { return firstPos; }; + inline int getLastPos() const { return lastPos; }; + + inline bool isValidFirstLine() { return firstLine.isValid(); } + inline void clearOldSelection() { oldLastLine.invalidate(), oldFirstLine.invalidate(); }; + + inline LineRef getOldLastLine() const { return oldLastLine; }; + inline LineRef getOldFirstLine() const { return oldFirstLine; }; + inline bool selectionContainsData() const { return bSelectionContainsData; }; + bool isEmpty() const { return !firstLine.isValid() || (firstLine == lastLine && firstPos == lastPos) || !bSelectionContainsData; } + void reset() + { + oldLastLine = lastLine; + oldFirstLine = firstLine; + firstLine.invalidate(); + lastLine.invalidate(); + bSelectionContainsData = false; + } + void start( LineRef l, int p ) { firstLine = l; firstPos = p; } + void end( LineRef l, int p ) { + if ( !oldLastLine.isValid() ) + oldLastLine = lastLine; + lastLine = l; + lastPos = p; + //bSelectionContainsData = (firstLine == lastLine && firstPos == lastPos); + } + bool within( LineRef l, LineRef p ) const; + + bool lineWithin( LineRef l ) const; + int firstPosInLine(LineRef l) const; + int lastPosInLine(LineRef l) const; + + LineRef beginLine() const + { + if (!firstLine.isValid() && !lastLine.isValid()) return LineRef(); + return std::max((LineRef)0,std::min(firstLine,lastLine)); + } + + LineRef endLine() const + { + if (!firstLine.isValid() && !lastLine.isValid()) return LineRef(); + return std::max(firstLine,lastLine); + } + + int beginPos() const { return firstLine==lastLine ? std::min(firstPos,lastPos) : + firstLine +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +// OpenDialog ************************************************************** + +OpenDialog::OpenDialog( + KDiff3App* pParent, const QString& n1, const QString& n2, const QString& n3, + bool bMerge, const QString& outputName, const QSharedPointer &pOptions) + : QDialog(pParent) +{ + dialogUi.setupUi(this); + setModal(true); + m_pOptions = pOptions; + //Abort if verticalLayout is not the immediate child of the dialog. This interferes with re-sizing. + Q_ASSERT(dialogUi.virticalLayout->parent() == this); + + dialogUi.lineA->insertItems(0, m_pOptions->m_recentAFiles); + dialogUi.lineA->setEditText(n1); + + QPushButton* button = dialogUi.fileSelectA; + chk_connect_a(button, &QPushButton::clicked, this, &OpenDialog::selectFileA); + QPushButton* button2 = dialogUi.folderSelectA; + chk_connect_a(button2, &QPushButton::clicked, this, &OpenDialog::selectDirA); + chk_connect_a(dialogUi.lineA, &QComboBox::editTextChanged, this, &OpenDialog::inputFilenameChanged); + + dialogUi.lineB->setEditable(true); + dialogUi.lineB->insertItems(0, m_pOptions->m_recentBFiles); + dialogUi.lineB->setEditText(n2); + + dialogUi.lineB->setMinimumWidth(200); + button = dialogUi.fileSelectB; + chk_connect_a(button, &QPushButton::clicked, this, &OpenDialog::selectFileB); + button2 = dialogUi.folderSelectB; + chk_connect_a(button2, &QPushButton::clicked, this, &OpenDialog::selectDirB); + chk_connect_a(dialogUi.lineB, &QComboBox::editTextChanged, this, &OpenDialog::inputFilenameChanged); + + dialogUi.lineC->setEditable(true); + dialogUi.lineC->insertItems(0, m_pOptions->m_recentCFiles); + dialogUi.lineC->setEditText(n3); + dialogUi.lineC->setMinimumWidth(200); + button = dialogUi.fileSelectC; + chk_connect_a(button, &QPushButton::clicked, this, &OpenDialog::selectFileC); + button2 = dialogUi.folderSelectC; + chk_connect_a(button2, &QPushButton::clicked, this, &OpenDialog::selectDirC); + chk_connect_a(dialogUi.lineC, &QComboBox::editTextChanged, this, &OpenDialog::inputFilenameChanged); + + button = dialogUi.swapCopy; + + QMenu* m = new QMenu(this); + m->addAction(i18n("Swap %1<->%2", i18n("A"), i18n("B"))); + m->addAction(i18n("Swap %1<->%2", i18n("B"), i18n("C"))); + m->addAction(i18n("Swap %1<->%2", i18n("C"), i18n("A"))); + m->addAction(i18n("Copy %1->Output", i18n("A"))); + m->addAction(i18n("Copy %1->Output", i18n("B"))); + m->addAction(i18n("Copy %1->Output", i18n("C"))); + m->addAction(i18n("Swap %1<->Output", i18n("A"))); + m->addAction(i18n("Swap %1<->Output", i18n("B"))); + m->addAction(i18n("Swap %1<->Output", i18n("C"))); + chk_connect_a(m, &QMenu::triggered, this, &OpenDialog::slotSwapCopyNames); + button->setMenu(m); + + dialogUi.lineOut->insertItems(0, m_pOptions->m_recentOutputFiles); + dialogUi.lineOut->setEditText(outputName); + + button = dialogUi.selectOutputFile; + chk_connect_a(button, &QPushButton::clicked, this, &OpenDialog::selectOutputName); + button2 = dialogUi.selectOutputFolder; + chk_connect_a(button2, &QPushButton::clicked, this, &OpenDialog::selectOutputDir); + chk_connect_a(dialogUi.mergeCheckBox, &QCheckBox::stateChanged, this, &OpenDialog::internalSlot); + chk_connect_a(this, &OpenDialog::internalSignal, dialogUi.lineOut, &QComboBox::setEnabled); + chk_connect_a(this, &OpenDialog::internalSignal, button, &QPushButton::setEnabled); + chk_connect_a(this, &OpenDialog::internalSignal, button2, &QPushButton::setEnabled); + + dialogUi.mergeCheckBox->setChecked(bMerge); + + QDialogButtonBox *box = dialogUi.buttonBox; + button = box->addButton(i18n("Configure..."), QDialogButtonBox::ActionRole); + button->setIcon(QIcon::fromTheme("configure")); + chk_connect_a(button, &QPushButton::clicked, pParent, &KDiff3App::slotConfigure); + chk_connect_a(box, &QDialogButtonBox::accepted, this, &OpenDialog::accept); + chk_connect_a(box, &QDialogButtonBox::rejected, this, &OpenDialog::reject); + + QSize sh = sizeHint(); + if(sh.height() > 10) + setFixedHeight(sh.height()); + else + { + //This is likely a bug. It is also a recoverable condition. Assert for it in debug builds. + Q_ASSERT(sh.isValid() && sh.height() > 10); + setFixedHeight(262); + } + m_bInputFileNameChanged = false; + + /* + QComboBox's default handling of Drag and Drop fails to clear existing text on drop. + On some systems it may fail to do anything at all. + + This is not what we want. So manually replace the each QLineEdit object with a FileNameLineEdit. + This makes behavior consitant with the main window. + + On windows this step also needed to bypasses Qt's quirky behavior when converting from QUrl + to QString. Specifically % encoding is by handled differently on windows. This is explicitly documented + as platform specific unspecified behavior. Not what we need. + */ + dialogUi.lineA->setLineEdit(new FileNameLineEdit(dialogUi.lineA)); + dialogUi.lineB->setLineEdit(new FileNameLineEdit(dialogUi.lineB)); + dialogUi.lineC->setLineEdit(new FileNameLineEdit(dialogUi.lineC)); + dialogUi.lineOut->setLineEdit(new FileNameLineEdit(dialogUi.lineOut)); +} + +void OpenDialog::selectURL(QComboBox* pLine, bool bDir, int i, bool bSave) +{ + QString current = pLine->currentText(); + QUrl currentUrl; + + if(current.isEmpty() && i > 3) + { + current = dialogUi.lineC->currentText(); + } + if(current.isEmpty()) + { + current = dialogUi.lineB->currentText(); + } + if(current.isEmpty()) + { + current = dialogUi.lineA->currentText(); + } + + currentUrl = QUrl::fromUserInput(current, QString(), QUrl::AssumeLocalFile); + QUrl newURL = bDir ? QFileDialog::getExistingDirectoryUrl(this, i18n("Open Folder"), currentUrl) + : bSave ? QFileDialog::getSaveFileUrl(this, i18n("Select Output File"), currentUrl, i18n("all/allfiles (*)")) + : QFileDialog::getOpenFileUrl(this, i18n("Open File"), currentUrl, i18n("all/allfiles (*)")); + if(!newURL.isEmpty()) + { + /* + Since we are selecting a directory open in the parent directory + not the one selected. + */ + //QFileDialog::setStartDir( KIO::upUrl( newURL ) ); + pLine->setEditText(newURL.url()); + } + // newURL won't be modified if nothing was selected. +} + +void OpenDialog::selectFileA() { selectURL(dialogUi.lineA, false, 1, false); } +void OpenDialog::selectFileB() { selectURL(dialogUi.lineB, false, 2, false); } +void OpenDialog::selectFileC() { selectURL(dialogUi.lineC, false, 3, false); } +void OpenDialog::selectOutputName() { selectURL(dialogUi.lineOut, false, 4, true); } +void OpenDialog::selectDirA() { selectURL(dialogUi.lineA, true, 1, false); } +void OpenDialog::selectDirB() { selectURL(dialogUi.lineB, true, 2, false); } +void OpenDialog::selectDirC() { selectURL(dialogUi.lineC, true, 3, false); } +void OpenDialog::selectOutputDir() { selectURL(dialogUi.lineOut, true, 4, true); } + +void OpenDialog::internalSlot(int i) +{ + Q_EMIT internalSignal(i != 0); +} + +// Clear the output-filename when any input-filename changed, +// because users forgot to change the output and accidentally overwrote it with +// wrong data during a merge. +void OpenDialog::inputFilenameChanged() +{ + if(!m_bInputFileNameChanged) + { + m_bInputFileNameChanged = true; + dialogUi.lineOut->clearEditText(); + } +} + +void OpenDialog::fixCurrentText(QComboBox* pCB) +{ + QString s = pCB->currentText(); + QtNumberType pos = s.indexOf('\n'); + + if(pos >= 0) + s = s.left(pos); + pos = s.indexOf('\r'); + if(pos >= 0) + s = s.left(pos); + + pCB->setEditText(s); +} + +void OpenDialog::accept() +{ + int maxNofRecentFiles = 10; + fixCurrentText(dialogUi.lineA); + + QString s = dialogUi.lineA->currentText(); + s = FileAccess::prettyAbsPath(QUrl::fromUserInput(s, QString(), QUrl::AssumeLocalFile)); + QStringList* sl = &m_pOptions->m_recentAFiles; + // If an item exist, remove it from the list and reinsert it at the beginning. + sl->removeAll(s); + if(!s.isEmpty()) sl->prepend(s); + if(sl->count() > maxNofRecentFiles) sl->erase(sl->begin() + maxNofRecentFiles, sl->end()); + + fixCurrentText(dialogUi.lineB); + s = dialogUi.lineB->currentText(); + s = FileAccess::prettyAbsPath(QUrl::fromUserInput(s, QString(), QUrl::AssumeLocalFile)); + sl = &m_pOptions->m_recentBFiles; + sl->removeAll(s); + if(!s.isEmpty()) sl->prepend(s); + if(sl->count() > maxNofRecentFiles) sl->erase(sl->begin() + maxNofRecentFiles, sl->end()); + + fixCurrentText(dialogUi.lineC); + s = dialogUi.lineC->currentText(); + s = FileAccess::prettyAbsPath(QUrl::fromUserInput(s, QString(), QUrl::AssumeLocalFile)); + sl = &m_pOptions->m_recentCFiles; + sl->removeAll(s); + if(!s.isEmpty()) sl->prepend(s); + if(sl->count() > maxNofRecentFiles) sl->erase(sl->begin() + maxNofRecentFiles, sl->end()); + + fixCurrentText(dialogUi.lineOut); + s = dialogUi.lineOut->currentText(); + s = FileAccess::prettyAbsPath(QUrl::fromUserInput(s, QString(), QUrl::AssumeLocalFile)); + sl = &m_pOptions->m_recentOutputFiles; + sl->removeAll(s); + if(!s.isEmpty()) sl->prepend(s); + if(sl->count() > maxNofRecentFiles) sl->erase(sl->begin() + maxNofRecentFiles, sl->end()); + + QDialog::accept(); +} + +void OpenDialog::slotSwapCopyNames(QAction* pAction) const // id selected in the popup menu +{ + QtNumberType id = pAction->parentWidget()->actions().indexOf(pAction); + QComboBox* cb1 = nullptr; + QComboBox* cb2 = nullptr; + + switch(id) + { + case 0: + cb1 = dialogUi.lineA; + cb2 = dialogUi.lineB; + break; + case 1: + cb1 = dialogUi.lineB; + cb2 = dialogUi.lineC; + break; + case 2: + cb1 = dialogUi.lineC; + cb2 = dialogUi.lineA; + break; + case 3: + cb1 = dialogUi.lineA; + cb2 = dialogUi.lineOut; + break; + case 4: + cb1 = dialogUi.lineB; + cb2 = dialogUi.lineOut; + break; + case 5: + cb1 = dialogUi.lineC; + cb2 = dialogUi.lineOut; + break; + case 6: + cb1 = dialogUi.lineA; + cb2 = dialogUi.lineOut; + break; + case 7: + cb1 = dialogUi.lineB; + cb2 = dialogUi.lineOut; + break; + case 8: + cb1 = dialogUi.lineC; + cb2 = dialogUi.lineOut; + break; + } + + if(cb1 && cb2) + { + QString t1 = cb1->currentText(); + QString t2 = cb2->currentText(); + cb2->setEditText(t1); + if(id <= 2 || id >= 6) + { + cb1->setEditText(t2); + } + } +} + +// FindDialog ********************************************* + +FindDialog::FindDialog(QWidget* pParent) + : QDialog(pParent) +{ + QGridLayout* layout = new QGridLayout(this); + layout->setContentsMargins(5, 5, 5, 5); + layout->setSpacing(5); + + int line = 0; + layout->addWidget(new QLabel(i18n("Search text:"), this), line, 0, 1, 2); + ++line; + + m_pSearchString = new QLineEdit(this); + layout->addWidget(m_pSearchString, line, 0, 1, 2); + ++line; + + m_pCaseSensitive = new QCheckBox(i18n("Case sensitive"), this); + layout->addWidget(m_pCaseSensitive, line, 1); + + m_pSearchInA = new QCheckBox(i18n("Search A"), this); + layout->addWidget(m_pSearchInA, line, 0); + m_pSearchInA->setChecked(true); + ++line; + + m_pSearchInB = new QCheckBox(i18n("Search B"), this); + layout->addWidget(m_pSearchInB, line, 0); + m_pSearchInB->setChecked(true); + ++line; + + m_pSearchInC = new QCheckBox(i18n("Search C"), this); + layout->addWidget(m_pSearchInC, line, 0); + m_pSearchInC->setChecked(true); + ++line; + + m_pSearchInOutput = new QCheckBox(i18n("Search output"), this); + layout->addWidget(m_pSearchInOutput, line, 0); + m_pSearchInOutput->setChecked(true); + ++line; + + QDialogButtonBox *box = new QDialogButtonBox(QDialogButtonBox::Cancel, this); + layout->addWidget(box, line, 0, 1, 2); + box->addButton(i18n("&Search"), QDialogButtonBox::AcceptRole); + chk_connect(box, &QDialogButtonBox::accepted, this, &FindDialog::accept); + chk_connect(box, &QDialogButtonBox::rejected, this, &FindDialog::reject); + + hide(); +} + +void FindDialog::restartFind() +{ + currentLine = 0; + currentPos = 0; + currentWindow = eWindowIndex::A; +} + +void FindDialog::setVisible(bool bVisible) +{ + QDialog::setVisible(bVisible); + m_pSearchString->selectAll(); + m_pSearchString->setFocus(); +} + +RegExpTester::RegExpTester(QWidget* pParent, const QString& autoMergeRegExpToolTip, + const QString& historyStartRegExpToolTip, const QString& historyEntryStartRegExpToolTip, const QString& historySortKeyOrderToolTip) + : QDialog(pParent) +{ + int line = 0; + setWindowTitle(i18n("Regular Expression Tester")); + QGridLayout* pGrid = new QGridLayout(this); + pGrid->setSpacing(5); + pGrid->setContentsMargins(5, 5, 5, 5); + + QLabel* l = new QLabel(i18n("Auto merge regular expression:"), this); + pGrid->addWidget(l, line, 0); + l->setToolTip(autoMergeRegExpToolTip); + m_pAutoMergeRegExpEdit = new QLineEdit(this); + pGrid->addWidget(m_pAutoMergeRegExpEdit, line, 1); + chk_connect(m_pAutoMergeRegExpEdit, &QLineEdit::textChanged, this, &RegExpTester::slotRecalc); + ++line; + + l = new QLabel(i18n("Example auto merge line:"), this); + pGrid->addWidget(l, line, 0); + l->setToolTip(i18n("To test auto merge, copy a line as used in your files.")); + m_pAutoMergeExampleEdit = new QLineEdit(this); + pGrid->addWidget(m_pAutoMergeExampleEdit, line, 1); + chk_connect(m_pAutoMergeExampleEdit, &QLineEdit::textChanged, this, &RegExpTester::slotRecalc); + ++line; + + l = new QLabel(i18n("Match result:"), this); + pGrid->addWidget(l, line, 0); + m_pAutoMergeMatchResult = new QLineEdit(this); + m_pAutoMergeMatchResult->setReadOnly(true); + pGrid->addWidget(m_pAutoMergeMatchResult, line, 1); + ++line; + + pGrid->addItem(new QSpacerItem(100, 20), line, 0); + pGrid->setRowStretch(line, 5); + ++line; + + l = new QLabel(i18n("History start regular expression:"), this); + pGrid->addWidget(l, line, 0); + l->setToolTip(historyStartRegExpToolTip); + m_pHistoryStartRegExpEdit = new QLineEdit(this); + pGrid->addWidget(m_pHistoryStartRegExpEdit, line, 1); + chk_connect(m_pHistoryStartRegExpEdit, &QLineEdit::textChanged, this, &RegExpTester::slotRecalc); + ++line; + + l = new QLabel(i18n("Example history start line (with leading comment):"), this); + pGrid->addWidget(l, line, 0); + l->setToolTip(i18n("Copy a history start line as used in your files,\n" + "including the leading comment.")); + m_pHistoryStartExampleEdit = new QLineEdit(this); + pGrid->addWidget(m_pHistoryStartExampleEdit, line, 1); + chk_connect(m_pHistoryStartExampleEdit, &QLineEdit::textChanged, this, &RegExpTester::slotRecalc); + ++line; + + l = new QLabel(i18n("Match result:"), this); + pGrid->addWidget(l, line, 0); + m_pHistoryStartMatchResult = new QLineEdit(this); + m_pHistoryStartMatchResult->setReadOnly(true); + pGrid->addWidget(m_pHistoryStartMatchResult, line, 1); + ++line; + + pGrid->addItem(new QSpacerItem(100, 20), line, 0); + pGrid->setRowStretch(line, 5); + ++line; + + l = new QLabel(i18n("History entry start regular expression:"), this); + pGrid->addWidget(l, line, 0); + l->setToolTip(historyEntryStartRegExpToolTip); + m_pHistoryEntryStartRegExpEdit = new QLineEdit(this); + pGrid->addWidget(m_pHistoryEntryStartRegExpEdit, line, 1); + chk_connect(m_pHistoryEntryStartRegExpEdit, &QLineEdit::textChanged, this, &RegExpTester::slotRecalc); + ++line; + + l = new QLabel(i18n("History sort key order:"), this); + pGrid->addWidget(l, line, 0); + l->setToolTip(historySortKeyOrderToolTip); + m_pHistorySortKeyOrderEdit = new QLineEdit(this); + pGrid->addWidget(m_pHistorySortKeyOrderEdit, line, 1); + chk_connect(m_pHistorySortKeyOrderEdit, &QLineEdit::textChanged, this, &RegExpTester::slotRecalc); + ++line; + + l = new QLabel(i18n("Example history entry start line (without leading comment):"), this); + pGrid->addWidget(l, line, 0); + l->setToolTip(i18n("Copy a history entry start line as used in your files,\n" + "but omit the leading comment.")); + m_pHistoryEntryStartExampleEdit = new QLineEdit(this); + pGrid->addWidget(m_pHistoryEntryStartExampleEdit, line, 1); + chk_connect(m_pHistoryEntryStartExampleEdit, &QLineEdit::textChanged, this, &RegExpTester::slotRecalc); + ++line; + + l = new QLabel(i18n("Match result:"), this); + pGrid->addWidget(l, line, 0); + m_pHistoryEntryStartMatchResult = new QLineEdit(this); + m_pHistoryEntryStartMatchResult->setReadOnly(true); + pGrid->addWidget(m_pHistoryEntryStartMatchResult, line, 1); + ++line; + + l = new QLabel(i18n("Sort key result:"), this); + pGrid->addWidget(l, line, 0); + m_pHistorySortKeyResult = new QLineEdit(this); + m_pHistorySortKeyResult->setReadOnly(true); + pGrid->addWidget(m_pHistorySortKeyResult, line, 1); + ++line; + + QDialogButtonBox *box = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); + pGrid->addWidget(box, line, 0, 1, 2); + chk_connect(box, &QDialogButtonBox::accepted, this, &RegExpTester::accept); + chk_connect(box, &QDialogButtonBox::rejected, this, &RegExpTester::reject); + + resize(800, sizeHint().height()); +} + +void RegExpTester::init(const QString& autoMergeRegExp, const QString& historyStartRegExp, const QString& historyEntryStartRegExp, const QString& historySortKeyOrder) +{ + m_pAutoMergeRegExpEdit->setText(autoMergeRegExp); + m_pHistoryStartRegExpEdit->setText(historyStartRegExp); + m_pHistoryEntryStartRegExpEdit->setText(historyEntryStartRegExp); + m_pHistorySortKeyOrderEdit->setText(historySortKeyOrder); +} + +QString RegExpTester::autoMergeRegExp() +{ + return m_pAutoMergeRegExpEdit->text(); +} + +QString RegExpTester::historyStartRegExp() +{ + return m_pHistoryStartRegExpEdit->text(); +} + +QString RegExpTester::historyEntryStartRegExp() +{ + return m_pHistoryEntryStartRegExpEdit->text(); +} + +QString RegExpTester::historySortKeyOrder() +{ + return m_pHistorySortKeyOrderEdit->text(); +} + +void RegExpTester::slotRecalc() +{ + QRegExp autoMergeRegExp(m_pAutoMergeRegExpEdit->text()); + if(autoMergeRegExp.exactMatch(m_pAutoMergeExampleEdit->text())) + { + m_pAutoMergeMatchResult->setText(i18n("Match success.")); + } + else + { + m_pAutoMergeMatchResult->setText(i18n("Match failed.")); + } + + QRegExp historyStartRegExp(m_pHistoryStartRegExpEdit->text()); + if(historyStartRegExp.exactMatch(m_pHistoryStartExampleEdit->text())) + { + m_pHistoryStartMatchResult->setText(i18n("Match success.")); + } + else + { + m_pHistoryStartMatchResult->setText(i18n("Match failed.")); + } + + QStringList parenthesesGroups; + bool bSuccess = findParenthesesGroups(m_pHistoryEntryStartRegExpEdit->text(), parenthesesGroups); + if(!bSuccess) + { + m_pHistoryEntryStartMatchResult->setText(i18n("Opening and closing parentheses do not match in regular expression.")); + m_pHistorySortKeyResult->setText(""); + return; + } + QRegExp historyEntryStartRegExp(m_pHistoryEntryStartRegExpEdit->text()); + QString s = m_pHistoryEntryStartExampleEdit->text(); + + if(historyEntryStartRegExp.exactMatch(s)) + { + m_pHistoryEntryStartMatchResult->setText(i18n("Match success.")); + QString key = calcHistorySortKey(m_pHistorySortKeyOrderEdit->text(), historyEntryStartRegExp, parenthesesGroups); + m_pHistorySortKeyResult->setText(key); + } + else + { + m_pHistoryEntryStartMatchResult->setText(i18n("Match failed.")); + m_pHistorySortKeyResult->setText(""); + } +} + +//#include "smalldialogs.moc" diff --git a/src/smalldialogs.h b/src/smalldialogs.h new file mode 100644 index 0000000..abb52a6 --- /dev/null +++ b/src/smalldialogs.h @@ -0,0 +1,159 @@ +/* + * KDiff3 - Text Diff And Merge Tool + * + * SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + * SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#ifndef SMALLDIALOGS_H +#define SMALLDIALOGS_H + +#include "ui_opendialog.h" + +#include "Logging.h" + +#include +#include +#include +#include + +class Options; +class QLineEdit; +class KDiff3App; + +enum class eWindowIndex +{ + None = 0, + A, + B, + C, + Output, + invalid +}; + +class OpenDialog: public QDialog +{ + Q_OBJECT + public: + OpenDialog( // krazy:exclude=explicit + KDiff3App* pParent, const QString& n1, const QString& n2, const QString& n3, + bool bMerge, const QString& outputName, const QSharedPointer& pOptions); + + const QString getFileA() const { return dialogUi.lineA->currentText(); } + const QString getFileB() const { return dialogUi.lineB->currentText(); } + const QString getFileC() const { return dialogUi.lineC->currentText(); } + + const QString getOutputFile() const { return dialogUi.lineOut->currentText(); } + + bool merge() const { return dialogUi.mergeCheckBox->isChecked(); } + + void accept() override; + private: + void selectURL(QComboBox* pLine, bool bDir, int i, bool bSave); + + void fixCurrentText(QComboBox* pCB); + QSharedPointer m_pOptions; + bool m_bInputFileNameChanged; + + Ui::OpenDialog dialogUi; + private Q_SLOTS: + void selectFileA(); + void selectFileB(); + void selectFileC(); + void selectDirA(); + void selectDirB(); + void selectDirC(); + void selectOutputName(); + void selectOutputDir(); + void internalSlot(int); + void inputFilenameChanged(); + void slotSwapCopyNames(QAction*) const; + Q_SIGNALS: + void internalSignal(bool); +}; + +class FindDialog: public QDialog +{ + Q_OBJECT + public: + explicit FindDialog(QWidget* pParent); + void setVisible(bool) override; + + void restartFind(); + inline void nextWindow() + { + currentLine = 0; + currentPos = 0; + + switch(currentWindow) + { + case eWindowIndex::invalid: + qCWarning(kdiffMain) << "FindDialog::nextWindow called with invalid state."; + Q_FALLTHROUGH(); + case eWindowIndex::None: + currentWindow = eWindowIndex::A; + break; + case eWindowIndex::A: + currentWindow = eWindowIndex::B; + break; + case eWindowIndex::B: + currentWindow = eWindowIndex::C; + break; + case eWindowIndex::C: + currentWindow = eWindowIndex::Output; + break; + case eWindowIndex::Output: + currentWindow = eWindowIndex::invalid; + break; + } + } + + inline eWindowIndex getCurrentWindow() { return currentWindow; } + + Q_SIGNALS: + void findNext(); + + public: + QLineEdit* m_pSearchString; + QCheckBox* m_pSearchInA; + QCheckBox* m_pSearchInB; + QCheckBox* m_pSearchInC; + QCheckBox* m_pSearchInOutput; + QCheckBox* m_pCaseSensitive; + + int currentLine = 0; + int currentPos = 0; + + private: + eWindowIndex currentWindow = eWindowIndex::None; +}; + +class RegExpTester: public QDialog +{ + Q_OBJECT + private: + QLineEdit* m_pAutoMergeRegExpEdit; + QLineEdit* m_pAutoMergeMatchResult; + QLineEdit* m_pAutoMergeExampleEdit; + QLineEdit* m_pHistoryStartRegExpEdit; + QLineEdit* m_pHistoryStartMatchResult; + QLineEdit* m_pHistoryStartExampleEdit; + QLineEdit* m_pHistoryEntryStartRegExpEdit; + QLineEdit* m_pHistorySortKeyOrderEdit; + QLineEdit* m_pHistoryEntryStartExampleEdit; + QLineEdit* m_pHistoryEntryStartMatchResult; + QLineEdit* m_pHistorySortKeyResult; + + public: + RegExpTester(QWidget* pParent, const QString& autoMergeRegExpToolTip, const QString& historyStartRegExpToolTip, + const QString& historyEntryStartRegExpToolTip, const QString& historySortKeyOrderToolTip); + void init(const QString& autoMergeRegExp, const QString& historyStartRegExp, const QString& historyEntryStartRegExp, const QString& sortKeyOrder); + QString autoMergeRegExp(); + QString historyStartRegExp(); + QString historyEntryStartRegExp(); + QString historySortKeyOrder(); + public Q_SLOTS: + void slotRecalc(); +}; + +#endif diff --git a/src/xpm/autoadvance.xpm b/src/xpm/autoadvance.xpm new file mode 100644 index 0000000..d499999 --- /dev/null +++ b/src/xpm/autoadvance.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static const char *autoadvance[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +". c #0080FF", +"# c #000000", +" c None", +/* pixels */ +" ## # # ### # ", +"# # # # # # #", +"# # # # # # #", +"#### # # # # #", +"# # ### # # ", +" ", +" ", +" ######## ", +" #....# ", +" #..# ", +" ## ", +" ######## ", +" #....# ", +" #..# ", +" ## ", +" " +}; diff --git a/src/xpm/currentpos.xpm b/src/xpm/currentpos.xpm new file mode 100644 index 0000000..c027e6c --- /dev/null +++ b/src/xpm/currentpos.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *currentpos[]={ +"16 16 3 1", +" c #0080FF", +"# c #000000", +". c None", +"................", +"................", +"................", +".#............#.", +".##..........##.", +".# #........# #.", +".# #..##..# #.", +".# ## ## #.", +".# # # #.", +".# ## ## #.", +".# #..##..# #.", +".# #........# #.", +".##..........##.", +".#............#.", +"................", +"................"}; diff --git a/src/xpm/down1arrow.xpm b/src/xpm/down1arrow.xpm new file mode 100644 index 0000000..162b692 --- /dev/null +++ b/src/xpm/down1arrow.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static const char *down1arrow[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +" c #0080ff", +"# c #000000", +". c None", +/* pixels */ +"................", +"................", +"................", +"................", +"................", +"..############..", +"...# #...", +"....# #....", +".....# #.....", +"......# #......", +".......##.......", +"................", +"................", +"................", +"................", +"................" +}; diff --git a/src/xpm/down2arrow.xpm b/src/xpm/down2arrow.xpm new file mode 100644 index 0000000..6f34208 --- /dev/null +++ b/src/xpm/down2arrow.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static const char *down2arrow[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +" c #0080ff", +"# c #000000", +". c None", +/* pixels */ +"................", +"................", +"..############..", +"...# #...", +"....# #....", +".....# #.....", +"......# #......", +".......##.......", +"..############..", +"...# #...", +"....# #....", +".....# #.....", +"......# #......", +".......##.......", +"................", +"................" +}; diff --git a/src/xpm/downend.xpm b/src/xpm/downend.xpm new file mode 100644 index 0000000..214bc8b --- /dev/null +++ b/src/xpm/downend.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *downend[]={ +"16 16 3 1", +" c #0080ff", +"# c #000000", +". c None", +"................", +"................", +"................", +"................", +"................", +"..############..", +"...# #...", +"....# #....", +".....# #.....", +"......# #......", +".......##.......", +"..############..", +"................", +"................", +"................", +"................"}; diff --git a/src/xpm/file.xpm b/src/xpm/file.xpm new file mode 100644 index 0000000..faf1472 --- /dev/null +++ b/src/xpm/file.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static const char *file_pm[]={ +"16 16 5 1", +". c None", +"# c #000000", +"c c #c0c0c0", +"b c #dcdcdc", +"a c #ffffff", +"..#########.....", +"..#aaaaaabb#....", +"..#aaaaaacab#...", +"..#aaaaaacaab#..", +"..#aaaaaac####..", +"..#aaaaaaaccc#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..############.."}; diff --git a/src/xpm/folder.xpm b/src/xpm/folder.xpm new file mode 100644 index 0000000..7b2edcd --- /dev/null +++ b/src/xpm/folder.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static const char *folder_pm[]={ +"16 16 5 1", +". c None", +"# c #040404", +"c c #808304", +"a c #f3f704", +"b c #f3f7f3", +"................", +"................", +"................", +".###............", +"#aba#######.....", +"#babababab#.....", +"#ababababa#.....", +"#baba###########", +"#aba#ccccccccc#.", +"#ba#ccccccccc#..", +"#a#ccccccccc#...", +"##ccccccccc#....", +"###########.....", +"................", +"................", +"................"}; diff --git a/src/xpm/iconA.xpm b/src/xpm/iconA.xpm new file mode 100644 index 0000000..4e44f9f --- /dev/null +++ b/src/xpm/iconA.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *iconA[]={ +"16 16 3 1", +" c #0080FF", +"# c #000000", +". c None", +"................", +"................", +"......###.......", +".....# #......", +"....# # #.....", +"...# #.# #....", +"...# #...# #....", +"...# #...# #....", +"...# ##### #....", +"...# #....", +"...# ##### #....", +"...# #...# #....", +"...###...###....", +"................", +"................", +"................"}; diff --git a/src/xpm/iconB.xpm b/src/xpm/iconB.xpm new file mode 100644 index 0000000..9405ee8 --- /dev/null +++ b/src/xpm/iconB.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *iconB[]={ +"16 16 3 1", +" c #0080FF", +"# c #000000", +". c None", +"................", +"................", +"...#######......", +"...# #.....", +"...# #### #....", +"...# #...# #....", +"...# #### #....", +"...# #.....", +"...# #### #....", +"...# #...# #....", +"...# #### #....", +"...# #.....", +"...#######......", +"................", +"................", +"................"}; diff --git a/src/xpm/iconC.xpm b/src/xpm/iconC.xpm new file mode 100644 index 0000000..56b7315 --- /dev/null +++ b/src/xpm/iconC.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *iconC[]={ +"16 16 3 1", +" c #0080FF", +"# c #000000", +". c None", +"................", +"................", +"......####......", +".....# #.....", +"....# ### #....", +"...# #...##....", +"...# #..........", +"...# #..........", +"...# #..........", +"...# #..........", +"...# #...##....", +"....# ### #....", +".....# #.....", +"......####......", +"................", +"................"}; diff --git a/src/xpm/link_arrow.xpm b/src/xpm/link_arrow.xpm new file mode 100644 index 0000000..2ab91e8 --- /dev/null +++ b/src/xpm/link_arrow.xpm @@ -0,0 +1,24 @@ +/* XPM */ +static const char *link_arrow[]={ +"16 16 5 1", +". c None", +"b c #000000", +"# c #585858", +"c c #dcdcdc", +"a c #ffffff", +"................", +"................", +"................", +"................", +"................", +"................", +"................", +"................", +"########........", +"#aaaaaab........", +"#aabbbab........", +"#aac#bab........", +"#acbcbab........", +"#abcaaab........", +"#aaaaaab........", +"#bbbbbbb........"}; diff --git a/src/xpm/nextunsolved.xpm b/src/xpm/nextunsolved.xpm new file mode 100644 index 0000000..0775687 --- /dev/null +++ b/src/xpm/nextunsolved.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *nextunsolved[]={ +"16 16 4 1", +". c None", +" c #0080ff", +"# c #000000", +"a c #ff0000", +"..############..", +"...# #...", +"....# #....", +".....# #.....", +"......# #......", +"..############..", +"...# #...", +"....# #....", +".....# #.....", +"......# #......", +"..############..", +"...#aaaaaaaa#...", +"....#aaaaaa#....", +".....#aaaa#.....", +"......#aa#......", +".......##......."}; diff --git a/src/xpm/prevunsolved.xpm b/src/xpm/prevunsolved.xpm new file mode 100644 index 0000000..d8d175c --- /dev/null +++ b/src/xpm/prevunsolved.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *prevunsolved[]={ +"16 16 4 1", +" c #0080ff", +"# c #000000", +"a c #ff0000", +". c None", +".......##.......", +"......#aa#......", +".....#aaaa#.....", +"....#aaaaaa#....", +"...#aaaaaaaa#...", +"..############..", +"......# #......", +".....# #.....", +"....# #....", +"...# #...", +"..############..", +"......# #......", +".....# #.....", +"....# #....", +"...# #...", +"..############.."}; diff --git a/src/xpm/showequalfiles.xpm b/src/xpm/showequalfiles.xpm new file mode 100644 index 0000000..9fa2e3b --- /dev/null +++ b/src/xpm/showequalfiles.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *showequalfiles[]={ +"16 16 4 1", +"# c None", +"a c None", +". c #000000", +"b c #00ff00", +"...........##aaa", +".bbbb.bbbb.##aaa", +".bbbb.bbbb.##aaa", +".bbbb.bbbb.##aaa", +".bbbb.bbbb.##aaa", +"...........##aaa", +"aaaaaaaaaaaaaaaa", +"................", +"aaaaaaaaaaaaaaaa", +"................", +".bbbb.bbbb.bbbb.", +".bbbb.bbbb.bbbb.", +".bbbb.bbbb.bbbb.", +".bbbb.bbbb.bbbb.", +"................", +"aaaaaaaaaaaaaaaa"}; diff --git a/src/xpm/showfilesonlyina.xpm b/src/xpm/showfilesonlyina.xpm new file mode 100644 index 0000000..041b54d --- /dev/null +++ b/src/xpm/showfilesonlyina.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *showfilesonlyina[]={ +"16 16 4 1", +"# c None", +"a c None", +". c #000000", +"b c #00ff00", +"...........##aaa", +".bbbb......##aaa", +".bbbb......##aaa", +".bbbb......##aaa", +".bbbb......##aaa", +"...........##aaa", +"aaaaaaaaaaaaaaaa", +"................", +"aaaaaaaaaaaaaaaa", +"................", +".bbbb...........", +".bbbb...........", +".bbbb...........", +".bbbb...........", +"................", +"aaaaaaaaaaaaaaaa"}; diff --git a/src/xpm/showfilesonlyinb.xpm b/src/xpm/showfilesonlyinb.xpm new file mode 100644 index 0000000..80caaca --- /dev/null +++ b/src/xpm/showfilesonlyinb.xpm @@ -0,0 +1,23 @@ +/* XPM */ +static const char *showfilesonlyinb[]={ +"16 16 4 1", +"# c None", +"a c None", +". c #000000", +"b c #00ff00", +"...........##aaa", +"......bbbb.##aaa", +"......bbbb.##aaa", +"......bbbb.##aaa", +"......bbbb.##aaa", +"...........##aaa", +"aaaaaaaaaaaaaaaa", +"................", +"aaaaaaaaaaaaaaaa", +"................", +"......bbbb......", +"......bbbb......", +"......bbbb......", +"......bbbb......", +"................", +"aaaaaaaaaaaaaaaa"}; diff --git a/src/xpm/showfilesonlyinc.xpm b/src/xpm/showfilesonlyinc.xpm new file mode 100644 index 0000000..5f548a4 --- /dev/null +++ b/src/xpm/showfilesonlyinc.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *showfilesonlyinc[]={ +"16 16 3 1", +". c None", +"# c #000000", +"a c #00ff00", +"................", +"................", +"................", +"................", +"................", +"################", +"###########aaaa#", +"###########aaaa#", +"###########aaaa#", +"###########aaaa#", +"################", +"................", +"................", +"................", +"................", +"................"}; diff --git a/src/xpm/showlinenumbers.xpm b/src/xpm/showlinenumbers.xpm new file mode 100644 index 0000000..fb697dc --- /dev/null +++ b/src/xpm/showlinenumbers.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static const char *showlinenumbers[]={ +"16 16 2 1", +". c None", +"# c #000040", +"................", +"................", +"................", +"................", +"...#...##..###..", +"..##..#..#....#.", +"...#.....#....#.", +"...#....#...##..", +"...#...#......#.", +"...#..#.......#.", +"..###.####.###..", +"................", +"................", +"................", +"................", +"................"}; diff --git a/src/xpm/showwhitespace.xpm b/src/xpm/showwhitespace.xpm new file mode 100644 index 0000000..2112e91 --- /dev/null +++ b/src/xpm/showwhitespace.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *showwhitespace[]={ +"16 16 3 1", +". c None", +"# c #000000", +"a c #ffffff", +"................", +"................", +"..############..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..#aaaaaaaaaa#..", +"..############..", +"................", +"................"}; diff --git a/src/xpm/showwhitespacechars.xpm b/src/xpm/showwhitespacechars.xpm new file mode 100644 index 0000000..0a637ae --- /dev/null +++ b/src/xpm/showwhitespacechars.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static const char *showwhitespacechars[]={ +"16 16 2 1", +". c None", +"# c #000040", +"................", +"................", +"................", +"................", +"................", +"................", +"................", +"................", +"................", +"................", +".####.####.####.", +".####.####.####.", +"................", +"................", +"................", +"................"}; diff --git a/src/xpm/startmerge.xpm b/src/xpm/startmerge.xpm new file mode 100644 index 0000000..7162719 --- /dev/null +++ b/src/xpm/startmerge.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static const char *startmerge[]={ +"16 16 6 1", +". c None", +"# c #000000", +"b c #0000ff", +"c c #00ffff", +"d c #ff0000", +"a c #ffff00", +".......##.......", +"......#aa#......", +"......#aa#......", +"...b.b.##.b.b...", +"...bb......bb...", +"...bbb....bbb...", +".##..........##.", +"#cc#........#cc#", +"#cc#........#cc#", +".##.b.b..b.b.##.", +".....bb..bb.....", +"....bbb..bbb....", +".......##.......", +"......#dd#......", +"......#dd#......", +".......##......."}; diff --git a/src/xpm/up1arrow.xpm b/src/xpm/up1arrow.xpm new file mode 100644 index 0000000..3e144ba --- /dev/null +++ b/src/xpm/up1arrow.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *up1arrow[]={ +"16 16 3 1", +". c None", +"# c #000000", +"a c #0080ff", +"................", +"................", +"................", +"................", +"................", +".......##.......", +"......#aa#......", +".....#aaaa#.....", +"....#aaaaaa#....", +"...#aaaaaaaa#...", +"..############..", +"................", +"................", +"................", +"................", +"................"}; diff --git a/src/xpm/up2arrow.xpm b/src/xpm/up2arrow.xpm new file mode 100644 index 0000000..ebe933b --- /dev/null +++ b/src/xpm/up2arrow.xpm @@ -0,0 +1,25 @@ +/* XPM */ +static const char *up2arrow[] = { +/* columns rows colors chars-per-pixel */ +"16 16 3 1", +" c #0080ff", +"# c #000000", +". c None", +/* pixels */ +"................", +"................", +".......##.......", +"......# #......", +".....# #.....", +"....# #....", +"...# #...", +"..############..", +".......##.......", +"......# #......", +".....# #.....", +"....# #....", +"...# #...", +"..############..", +"................", +"................" +}; diff --git a/src/xpm/upend.xpm b/src/xpm/upend.xpm new file mode 100644 index 0000000..167433d --- /dev/null +++ b/src/xpm/upend.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static const char *upend[]={ +"16 16 3 1", +" c #0080ff", +"# c #000000", +". c None", +"................", +"................", +"................", +"................", +"..############..", +".......##.......", +"......# #......", +".....# #.....", +"....# #....", +"...# #...", +"..############..", +"................", +"................", +"................", +"................", +"................"}; diff --git a/test/alignmenttest.cpp b/test/alignmenttest.cpp new file mode 100644 index 0000000..1a6ceb1 --- /dev/null +++ b/test/alignmenttest.cpp @@ -0,0 +1,495 @@ +/* + SPDX-FileCopyrightText: 2002-2007 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include +#include + +#include +#include +#include + +#include "diff.h" +#include "gnudiff_diff.h" +#include "options.h" +#include "progress.h" + +#define i18n(s) s + +bool verbose = false; +QSharedPointer m_pOptions; +ManualDiffHelpList m_manualDiffHelpList; + +void printDiffList(const QString caption, const DiffList &diffList) +{ + QTextStream out(stdout); + DiffList::const_iterator i; + + out << "Printing difflist " << caption << ":" << endl; + out << " nofEquals, diff1, diff2" << endl; + + for(i = diffList.begin(); i != diffList.end(); i++) + { + out << " " << i->numberOfEquals() << "," << i->diff1() << "," << i->diff2() << endl; + } +} + +void printDiff3List(const Diff3LineList &diff3LineList, + const SourceData &sd1, + const SourceData &sd2, + const SourceData &sd3, + bool forceVerbosity=false) +{ + const int columnsize = 30; + const int linenumsize = 6; + Diff3LineList::const_iterator i; + for ( i=diff3LineList.begin(); i!=diff3LineList.end(); ++i ) + { + QTextStream out(stdout); + QString lineAText; + QString lineBText; + QString lineCText; + + const Diff3Line& d3l = *i; + + if(d3l.getLineA().isValid()) + { + const LineData *pLineData = &sd1.getLineDataForDiff()->at(d3l.getLineA()); + lineAText = pLineData->getLine(); + lineAText.replace(QString("\r"), QString("\\r")); + lineAText.replace(QString("\n"), QString("\\n")); + lineAText = QString("%1 %2").arg(d3l.getLineA(), linenumsize).arg(lineAText.left(columnsize - linenumsize - 1)); + } + + if(d3l.getLineB().isValid()) + { + const LineData *pLineData = &sd2.getLineDataForDiff()->at(d3l.getLineB()); + lineBText = pLineData->getLine(); + lineBText.replace(QString("\r"), QString("\\r")); + lineBText.replace(QString("\n"), QString("\\n")); + lineBText = QString("%1 %2").arg(d3l.getLineB(), linenumsize).arg(lineBText.left(columnsize - linenumsize - 1)); + } + + if(d3l.getLineC().isValid()) + { + const LineData *pLineData = &sd3.getLineDataForDiff()->at(d3l.getLineC()); + lineCText = pLineData->getLine(); + lineCText.replace(QString("\r"), QString("\\r")); + lineCText.replace(QString("\n"), QString("\\n")); + lineCText = QString("%1 %2").arg(d3l.getLineC(), linenumsize).arg(lineCText.left(columnsize - linenumsize - 1)); + } + + out << QString("%1 %2 %3").arg(lineAText, -columnsize) + .arg(lineBText, -columnsize) + .arg(lineCText, -columnsize); + if(verbose || forceVerbosity) + { + out << " " << d3l.isEqualAB() << " " << d3l.isEqualBC() << " " << d3l.isEqualAC(); + } + + out << endl; + } +} + +void printDiff3List(QString caption, + const Diff3LineList &diff3LineList, + const SourceData &sd1, + const SourceData &sd2, + const SourceData &sd3, + bool forceVerbosity=false) +{ + QTextStream out(stdout); + out << "Printing diff3list " << caption << ":" << endl; + printDiff3List(diff3LineList, sd1, sd2, sd3, forceVerbosity); +} + +void determineFileAlignment(SourceData &m_sd1, SourceData &m_sd2, SourceData &m_sd3, Diff3LineList &m_diff3LineList) +{ + DiffList m_diffList12; + DiffList m_diffList23; + DiffList m_diffList13; + + m_diff3LineList.clear(); + + // Run the diff. + if ( m_sd3.isEmpty() ) + { + m_manualDiffHelpList.runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,A,B, + m_pOptions); + m_diff3LineList.calcDiff3LineListUsingAB( &m_diffList12); + m_diff3LineList.fineDiff(A, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() ); + } + else + { + m_manualDiffHelpList.runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,A,B, m_pOptions); + m_manualDiffHelpList.runDiff( m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList23,B,C, m_pOptions); + m_manualDiffHelpList.runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList13,A,C, m_pOptions); + + if (verbose) + { + printDiffList("m_diffList12", m_diffList12); + printDiffList("m_diffList23", m_diffList23); + printDiffList("m_diffList13", m_diffList13); + } + + m_diff3LineList.calcDiff3LineListUsingAB( &m_diffList12); + if (verbose) printDiff3List("after calcDiff3LineListUsingAB", m_diff3LineList, m_sd1, m_sd2, m_sd3); + + m_diff3LineList.calcDiff3LineListUsingAC( &m_diffList13); + if (verbose) printDiff3List("after calcDiff3LineListUsingAC", m_diff3LineList, m_sd1, m_sd2, m_sd3); + + m_diff3LineList.correctManualDiffAlignment(&m_manualDiffHelpList ); + m_diff3LineList.calcDiff3LineListTrim(m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList ); + if (verbose) printDiff3List("after 1st calcDiff3LineListTrim", m_diff3LineList, m_sd1, m_sd2, m_sd3); + + if ( m_pOptions->m_bDiff3AlignBC ) + { + m_diff3LineList.calcDiff3LineListUsingBC( &m_diffList23); + if (verbose) printDiff3List("after calcDiff3LineListUsingBC", m_diff3LineList, m_sd1, m_sd2, m_sd3); + m_diff3LineList.correctManualDiffAlignment( &m_manualDiffHelpList ); + m_diff3LineList.calcDiff3LineListTrim(m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList ); + if (verbose) printDiff3List("after 2nd calcDiff3LineListTrim", m_diff3LineList, m_sd1, m_sd2, m_sd3); + } + + m_diff3LineList.fineDiff(A, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() ); + m_diff3LineList.fineDiff(B, m_sd2.getLineDataForDisplay(), m_sd3.getLineDataForDisplay() ); + m_diff3LineList.fineDiff(C, m_sd3.getLineDataForDisplay(), m_sd1.getLineDataForDisplay() ); + } + m_diff3LineList.calcWhiteDiff3Lines( m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff() ); +} + +QString getLineFromSourceData(const SourceData &sd, int line) +{ + const LineData *pLineData = &sd.getLineDataForDiff()->at(line); + QString lineText = pLineData->getLine(); + lineText.replace(QString("\r"), QString("\\r")); + lineText.replace(QString("\n"), QString("\\n")); + return lineText; +} + + +void loadExpectedAlignmentFile(QString expectedResultFileName, Diff3LineList &expectedDiff3LineList) +{ + Diff3Line d3l; + + expectedDiff3LineList.clear(); + + QFile file(expectedResultFileName); + QString line; + if ( file.open(QIODevice::ReadOnly) ) + { + QTextStream t( &file ); + while ( !t.atEnd() ) + { + QStringList lst = t.readLine().split(QRegExp("\\s+")); + d3l.setLineA(lst.at(0).toInt()); + d3l.setLineB(lst.at(1).toInt()); + d3l.setLineC(lst.at(2).toInt()); + + expectedDiff3LineList.push_back( d3l ); + } + file.close(); + } +} + +void writeActualAlignmentFile(QString actualResultFileName, const Diff3LineList &actualDiff3LineList) +{ + Diff3LineList::const_iterator p_d3l; + + QFile file(actualResultFileName); + if ( file.open(QIODevice::WriteOnly) ) + { + { + QTextStream t( &file ); + + for(p_d3l = actualDiff3LineList.begin(); p_d3l != actualDiff3LineList.end(); p_d3l++) + { + t << p_d3l->getLineA() << " " << p_d3l->getLineB() << " " << p_d3l->getLineC() << endl; + } + } + file.close(); + } +} + +bool dataIsConsistent(int line1, QString &line1Text, int line2, QString &line2Text, bool equal) +{ + bool consistent = false; + + if(line1 == -1 || line2 == -1) + { + consistent = !equal; + } + else + { + /* If the equal boolean is true the line content must be the same, + * if the line content is different the boolean should be false, + * but other than that we can't be sure: + * - if the line content is the same the boolean may not be true because + * GNU diff may have put that line as a removal in the first file and + * an addition in the second. + * - also the comparison this test does between lines considers all + * whitespace equal, while GNU diff doesn't (for instance U+0020 vs U+00A0) + */ + if(equal) + { + consistent = (line1Text == line2Text); + } + else if (line1Text != line2Text) + { + consistent = !equal; + } + else + { + consistent = true; + } + + } + return consistent; +} + +bool runTest(QString file1, QString file2, QString file3, QString expectedResultFile, QString actualResultFile, int maxLength) +{ + m_pOptions = QSharedPointer::create(); + Diff3LineList actualDiff3LineList, expectedDiff3LineList; + QTextCodec *p_codec = QTextCodec::codecForName("UTF-8"); + QTextStream out(stdout); + + m_pOptions->m_bIgnoreCase = false; + m_pOptions->m_bPreserveCarriageReturn = false; + m_pOptions->m_bDiff3AlignBC = true; + + SourceData m_sd1, m_sd2, m_sd3; + + QString msgprefix = "Running test with "; + QString filepattern = QString(file1).replace("_base.", "_*."); + QString msgsuffix = QString("...%1").arg("", maxLength - filepattern.length()); + out << msgprefix << filepattern << msgsuffix; + if(verbose) + { + out << endl; + } + out.flush(); + + m_sd1.setOptions(m_pOptions); + m_sd1.setFilename(file1); + m_sd1.readAndPreprocess(p_codec, false); + + m_sd2.setOptions(m_pOptions); + m_sd2.setFilename(file2); + m_sd2.readAndPreprocess(p_codec, false); + + m_sd3.setOptions(m_pOptions); + m_sd3.setFilename(file3); + m_sd3.readAndPreprocess(p_codec, false); + + determineFileAlignment(m_sd1, m_sd2, m_sd3, actualDiff3LineList); + + loadExpectedAlignmentFile(expectedResultFile, expectedDiff3LineList); + + Diff3LineList::iterator p_actual = actualDiff3LineList.begin(); + Diff3LineList::iterator p_expected = expectedDiff3LineList.begin(); + bool equal = true; + bool sequenceError = false; + bool consistencyError = false; + + equal = (actualDiff3LineList.size() == expectedDiff3LineList.size()); + + int latestLineA = -1; + int latestLineB = -1; + int latestLineC = -1; + while(equal && (p_actual != actualDiff3LineList.end())) + { + /* Check if all line numbers are in sequence */ + if(p_actual->getLineA().isValid()) + { + if(p_actual->getLineA() <= latestLineA) + { + sequenceError = true; + } + else + { + latestLineA = p_actual->getLineA(); + } + } + if(p_actual->getLineB().isValid()) + { + if(p_actual->getLineB() <= latestLineB) + { + sequenceError = true; + } + else + { + latestLineB = p_actual->getLineB(); + } + } + if(p_actual->getLineC().isValid()) + { + if(p_actual->getLineC() <= latestLineC) + { + sequenceError = true; + } + else + { + latestLineC = p_actual->getLineC(); + } + } + + /* Check if the booleans that indicate if lines are equal are consistent with the content of the lines */ + QString lineAText = (!p_actual->getLineA().isValid()) ? "" : getLineFromSourceData(m_sd1, p_actual->getLineA()).simplified().replace(" ", ""); + QString lineBText = (!p_actual->getLineB().isValid()) ? "" : getLineFromSourceData(m_sd2, p_actual->getLineB()).simplified().replace(" ", ""); + QString lineCText = (!p_actual->getLineC().isValid()) ? "" : getLineFromSourceData(m_sd3, p_actual->getLineC()).simplified().replace(" ", ""); + + if(!dataIsConsistent(p_actual->getLineA(), lineAText, p_actual->getLineB(), lineBText, p_actual->isEqualAB())) + { + if(verbose) out << "inconsistency: line " << p_actual->getLineA() << " of A vs line " << p_actual->getLineB() << " of B" << endl; + consistencyError = true; + } + if(!dataIsConsistent(p_actual->getLineB(), lineBText, p_actual->getLineC(), lineCText, p_actual->isEqualBC())) + { + if(verbose) out << "inconsistency: line " << p_actual->getLineB() << " of B vs line " << p_actual->getLineC() << " of C" << endl; + consistencyError = true; + } + if(!dataIsConsistent(p_actual->getLineA(), lineAText, p_actual->getLineC(), lineCText, p_actual->isEqualAC())) + { + if(verbose) out << "inconsistency: line " << p_actual->getLineA() << " of A vs line " << p_actual->getLineC() << " of C" << endl; + consistencyError = true; + } + + /* Check if the actual output of the algorithm is equal to the expected output */ + equal = (p_actual->getLineA() == p_expected->getLineA()) && + (p_actual->getLineB() == p_expected->getLineB()) && + (p_actual->getLineC() == p_expected->getLineC()); + p_actual++; + p_expected++; + } + + if(sequenceError) + { + out << "NOK" << endl; + + out << "Actual result has incorrectly sequenced line numbers:" << endl; + out << "----------------------------------------------------------------------------------------------" << endl; + printDiff3List(actualDiff3LineList, m_sd1, m_sd2, m_sd3); + } + else if(consistencyError) + { + out << "NOK" << endl; + + out << "Actual result has inconsistent equality booleans:" << endl; + out << "----------------------------------------------------------------------------------------------" << endl; + printDiff3List(actualDiff3LineList, m_sd1, m_sd2, m_sd3, true); + } + else if(equal) + { + out << "OK" << endl; + } + else + { + out << "NOK" << endl; + + writeActualAlignmentFile(actualResultFile, actualDiff3LineList); + + out << "Actual result (written to " << actualResultFile << "):" << endl; + out << "----------------------------------------------------------------------------------------------" << endl; + printDiff3List(actualDiff3LineList, m_sd1, m_sd2, m_sd3); + out << "----------------------------------------------------------------------------------------------" << endl; + out << "Expected result:" << endl; + out << "----------------------------------------------------------------------------------------------" << endl; + printDiff3List(expectedDiff3LineList, m_sd1, m_sd2, m_sd3); + out << "----------------------------------------------------------------------------------------------" << endl; + } + + return equal; +} + + +QStringList gettestdatafiles(QString testdir) +{ + QStringList baseFilePaths; + QTextStream out(stdout); + QStringList nameFilter; + nameFilter << "*_base.*"; + + QDir testdatadir(testdir); + + QStringList baseFileNames = testdatadir.entryList(nameFilter, QDir::Files, QDir::Name); + QListIterator file_it(baseFileNames); + while(file_it.hasNext()) + { + baseFilePaths.append(testdir + "/" + file_it.next()); + } + out << testdir << ": " << baseFilePaths.size() << " files" << endl; + + + QStringList subdirs = testdatadir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); + QListIterator dir_it(subdirs); + + while (dir_it.hasNext()) + { + QString subdir = dir_it.next(); + QStringList subdirBaseFilePaths = gettestdatafiles(testdir + "/" + subdir); + + baseFilePaths.append(subdirBaseFilePaths); + } + + return baseFilePaths; +} + + +int main(int argc, char *argv[]) +{ + bool allOk = true; + int maxLength = 0; + QTextStream out(stdout); + QDir testdatadir("testdata"); + + /* Print data at various steps in the algorithm to get an idea where to look for the root cause of a failing test */ + if((argc == 2) && (!strcmp(argv[1], "-v"))) + { + verbose = true; + } + + QStringList baseFiles = gettestdatafiles("testdata"); + QListIterator it(baseFiles); + + for (int i = 0; i < baseFiles.size(); i++) + { + maxLength = std::max(baseFiles.at(i).length(), maxLength); + } + maxLength += testdatadir.path().length() + 1; + + while (it.hasNext()) + { + QString fileName = it.next(); + + QRegExp baseFileRegExp("(.*)_base\\.(.*)"); + baseFileRegExp.exactMatch(fileName); + + QString prefix = baseFileRegExp.cap(1); + QString suffix = baseFileRegExp.cap(2); + + QString contrib1FileName(prefix + "_contrib1." + suffix); + QString contrib2FileName(prefix + "_contrib2." + suffix); + QString expectedResultFileName(prefix + "_expected_result." + suffix); + QString actualResultFileName(prefix + "_actual_result." + suffix); + + if(QFile(contrib1FileName).exists() && + QFile(contrib2FileName).exists() && + QFile(expectedResultFileName).exists()) + { + bool ok = runTest(fileName, contrib1FileName, contrib2FileName, expectedResultFileName, actualResultFileName, maxLength); + + allOk = allOk && ok; + } + else + { + out << "Skipping " << fileName << " " << contrib1FileName << " " << contrib2FileName << " " << expectedResultFileName << " " << endl; + } + } + + out << (allOk ? "All OK" : "Not all OK") << endl; + + return allOk ? 0 : -1; +} diff --git a/test/fakefileaccess.cpp b/test/fakefileaccess.cpp new file mode 100644 index 0000000..f43b5cb --- /dev/null +++ b/test/fakefileaccess.cpp @@ -0,0 +1,102 @@ +/* + SPDX-FileCopyrightText: 2002-2007 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include "fileaccess.h" + +#include + +FileAccess::FileAccess(const QString& name, bool bWantToWrite) +{ + Q_ASSERT(!bWantToWrite); + + m_name = name; +} + +// FileAccess( const QString& name, bool bWantToWrite=false ); // name: local file or dirname or url (when supported) +// void setFile( const QString& name, bool bWantToWrite=false ); +// +bool FileAccess::isValid() const +{ + return m_name.length() != 0; +} + +// bool isFile() const; +// bool isDir() const; +// bool isSymLink() const; +bool FileAccess::exists() const +{ + return true; +} +qint64 FileAccess::size() const +{ + return 64; +} + +qint64 FileAccess::sizeForReading() +{ + return 64; +} + +// bool isReadable() const; +// bool isWritable() const; +// bool isExecutable() const; +// bool isHidden() const; +// QString readLink() const; +// +// QDateTime created() const; +// QDateTime lastModified() const; +// QDateTime lastRead() const; +// +// QString fileName() const; // Just the name-part of the path, without parent directories +// QString filePath() const; // The path-string that was used during construction +QString FileAccess::prettyAbsPath() const +{ + return QString(""); +} +// KUrl url() const; +QString FileAccess::absoluteFilePath() const +{ + return ""; +} + +bool FileAccess::isLocal() const +{ + return true; +} + +bool FileAccess::readFile(void* pDestBuffer, qint64 maxLength ) +{ + Q_UNUSED(pDestBuffer) + Q_UNUSED(maxLength); + return true; +} +bool FileAccess::writeFile(const void* pSrcBuffer, qint64 length ) +{ + Q_UNUSED(pSrcBuffer); + Q_UNUSED(length); + return true; +} + +// bool listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, +// const QString& filePattern, const QString& fileAntiPattern, +// const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore ); +bool FileAccess::copyFile( const QString& destUrl ) +{ + Q_UNUSED(destUrl); + return true; +} +// bool createBackup( const QString& bakExtension ); +// +QString FileAccess::getTempName() const +{ + return QString(""); +} + +bool FileAccess::removeFile() +{ + return true; +} + diff --git a/test/fakekdiff3_part.cpp b/test/fakekdiff3_part.cpp new file mode 100644 index 0000000..6f59fc9 --- /dev/null +++ b/test/fakekdiff3_part.cpp @@ -0,0 +1,13 @@ +/* + SPDX-FileCopyrightText: 2002-2007 Joachim Eibl, joachim.eibl at gmx.de + SPDX-FileCopyrightText: 2018-2020 Michael Reeves reeves.87@gmail.com + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +extern "C" +{ + void* init_libkdiff3part() + { + return 0; + } +} diff --git a/test/fakeprogressproxy.cpp b/test/fakeprogressproxy.cpp new file mode 100644 index 0000000..1c31764 --- /dev/null +++ b/test/fakeprogressproxy.cpp @@ -0,0 +1,95 @@ +/* + SPDX-FileCopyrightText: 2002-2011 Joachim Eibl, joachim.eibl at gmx.de + SPDX-License-Identifier: GPL-2.0-or-later +*/ + +#include +#include "progress.h" + +void ProgressDialog::delayedHide() +{ +} + +void ProgressDialog::slotAbort() +{ +} + +void ProgressDialog::reject() +{ +} + +void ProgressDialog::timerEvent(QTimerEvent*) +{ +} + +ProgressProxy::ProgressProxy() +{ +} + +ProgressProxy::~ProgressProxy() +{ +} + +void ProgressProxy::setInformation( const QString& info, bool bRedrawUpdate ) +{ + /* Suppress warning about unused parameters */ + Q_UNUSED(info); + Q_UNUSED(bRedrawUpdate); +} + +void ProgressProxy::setInformation( const QString& info, int current, bool bRedrawUpdate ) +{ + /* Suppress warning about unused parameters */ + Q_UNUSED(info); + Q_UNUSED(current); + Q_UNUSED(bRedrawUpdate); +} + +void ProgressProxy::setCurrent( qint64 current, bool bRedrawUpdate ) +{ + /* Suppress warning about unused parameters */ + Q_UNUSED(current); + Q_UNUSED(bRedrawUpdate); +} + +void ProgressProxy::step( bool bRedrawUpdate ) +{ + /* Suppress warning about unused parameters */ + Q_UNUSED(bRedrawUpdate); +} + +void ProgressProxy::setMaxNofSteps( qint64 dMaxNofSteps ) +{ + /* Suppress warning about unused parameters */ + Q_UNUSED(dMaxNofSteps); +} + + + +bool ProgressProxy::wasCancelled() +{ + return false; +} + +void ProgressProxy::enterEventLoop( KJob* pJob, const QString& jobInfo ) +{ + /* Suppress warning about unused parameters */ + Q_UNUSED(pJob); + Q_UNUSED(jobInfo); +} + +void ProgressProxy::exitEventLoop() +{ +} + +void ProgressDialog::recalc(bool bUpdate) +{ + /* Suppress warning about unused parameters */ + Q_UNUSED(bUpdate); +} + +QDialog *ProgressProxy::getDialog() +{ + return NULL; +} + diff --git a/test/generate_testdata_from_git_merges.py b/test/generate_testdata_from_git_merges.py new file mode 100755 index 0000000..33b2f35 --- /dev/null +++ b/test/generate_testdata_from_git_merges.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python + +# SPDX-FileCopyrightText: 2002-2007 Joachim Eibl, joachim.eibl at gmx.de +# SPDX-License-Identifier: GPL-2.0-or-later + +import argparse +import glob +import os +import subprocess as sp +import sys + +parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, + description='Generate input files for alignmenttest from the files merged for each merge commit in a git repository.\n\n' + + 'This script finds all merge commits in the clone where it is run, checks which files were modified in both\n' + + 'parents of the merge commit and then finds the common ancestor of these files to get the merge base.\n\n' + 'Example:\n' + ' cd ~/git/linux\n' + ' ~/kdiff3/test/%s -d ~/kdiff3/test/testdata/linux\n' % os.path.basename(sys.argv[0])) + +parser.add_argument('-d', metavar='destination_path', nargs=1, default=['testdata_from_git/'], + help='specify the folder where to save the test input files. If the folder does not exist it will be created.') +args = parser.parse_args() +dirname=args.d[0] + +print 'Generating input files in %s ...' % dirname +sys.stdout.flush() + +if not os.path.exists(dirname): + os.makedirs(dirname) + +merges = sp.check_output('git rev-list --merges --parents master'.split()).strip() + +for entry in merges.splitlines(): + fields = entry.split() + + if len(fields) > 3: + print 'merge %s had more than 2 parents: %s' % (fields[0], fields) + + merge, contrib1, contrib2 = fields[:3] + + if glob.glob('%s/%s_*' % (dirname, merge)): + print 'skipping merge %s because files for this merge already present' % merge + continue + + base = sp.check_output(('git merge-base %s %s' % (contrib1, contrib2)).split()).strip() + + fileschanged1 = sp.check_output(('git diff --name-only %s %s' % (base, contrib1)).split()).strip().splitlines() + fileschanged2 = sp.check_output(('git diff --name-only %s %s' % (base, contrib2)).split()).strip().splitlines() + + fileschangedboth = set(fileschanged1) & set(fileschanged2) + + if not fileschangedboth: + print 'No files overlapped for merge %s' % merge + else: + print 'Overlapping files for merge %s with base %s: %s' % (merge, base, fileschangedboth) + for filename in fileschangedboth: + simplified_filename = filename.replace('/', '_').replace('.', '_') + + try: + base_content = sp.check_output(('git show %s:%s' % (base, filename)).split()) + contrib1_content = sp.check_output(('git show %s:%s' % (contrib1, filename)).split()) + contrib2_content = sp.check_output(('git show %s:%s' % (contrib2, filename)).split()) + + if base_content == contrib1_content or \ + base_content == contrib2_content or \ + contrib1_content == contrib2_content: + print 'this merge was trivial. Skipping.' + else: + basefilename = '%s/%s_%s_base.txt' % (dirname, merge, simplified_filename) + contrib1filename = '%s/%s_%s_contrib1.txt' % (dirname, merge, simplified_filename) + contrib2filename = '%s/%s_%s_contrib2.txt' % (dirname, merge, simplified_filename) + + for filename, content in [(basefilename, base_content), + (contrib1filename, contrib1_content), + (contrib2filename, contrib2_content)]: + with open(filename, 'wb') as f: + f.write(content) + + with open('%s/%s_%s_expected_result.txt' % (dirname, merge, simplified_filename), 'a') as f: + pass + + except sp.CalledProcessError: + print 'error from git show, continuing with next file' + +print 'Input files generated.' +print '' +print 'To create a reference set of expected_result.txt files, run alignmenttest and copy/move all %s/*_actual_result.txt files to %s/*_expected_result.txt:' % (dirname, dirname) +print ' ./alignmenttest > /dev/null' +print ' cd %s' % dirname +print ' for file in *_actual_result.txt; do mv ${file} ${file/actual/expected}; done' +print 'If you\'ve already modified the algorithm, you can run the alignment test of an older version of kdiff3 and copy those result files over' diff --git a/test/generate_testdata_from_permutations.py b/test/generate_testdata_from_permutations.py new file mode 100755 index 0000000..b4bc285 --- /dev/null +++ b/test/generate_testdata_from_permutations.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python + +# SPDX-FileCopyrightText: 2002-2007 Joachim Eibl, joachim.eibl at gmx.de +# SPDX-License-Identifier: GPL-2.0-or-later + +import argparse +import os +import random +import sys + +dirname = 'testdata/permutations' + +defaultlines = ['aaa\n', + 'bbb\n', + 'ccc\n', + 'ddd\n', + 'eee\n'] + +# For the lines of the A file only consider removing them because modifying +# them ("diff") would be equivalent to modifying both B and C, so that will +# be covered anyway. +options = [ ('1','1','1'), + ('1','1','2'), + ('1','1',None), + ('1','2','1'), + ('1','2','2'), + ('1','2','3'), + ('1','2',None), + (None,'1','1'), + (None,'1','2'), + (None,'1',None), + (None,None,'1') ] + +def permutations(nr_of_options, count, currentlist): + + if count == 0: + filename = ''.join([format(i, '1x') for i in currentlist]) + + baselines = [] + contrib1lines = [] + contrib2lines = [] + for optionindex, defaultline in zip(currentlist, defaultlines): + option = options[optionindex] + + if option[0]: + baselines.append(defaultline) + + if option[1] == '1': + contrib1lines.append(defaultline) + elif option[1] == '2': + contrib1lines.append('xxx' + defaultline) + + if option[2] == '1': + contrib2lines.append(defaultline) + elif option[2] == '2': + contrib2lines.append('xxx' + defaultline) + elif option[2] == '3': + contrib2lines.append('yyy' + defaultline) + + with open('%s/perm_%s_base.txt' % (dirname, filename), 'wb') as f: + f.writelines(baselines) + + with open('%s/perm_%s_contrib1.txt' % (dirname, filename), 'wb') as f: + f.writelines(contrib1lines) + + with open('%s/perm_%s_contrib2.txt' % (dirname, filename), 'wb') as f: + f.writelines(contrib2lines) + + with open('%s/perm_%s_expected_result.txt' % (dirname, filename), 'a') as f: + pass + + else: + optionindices = random.sample(range(len(options)), nr_of_options) + for optionindex in optionindices: + permutations(nr_of_options, count - 1, [optionindex] + currentlist) + + +parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter, + description='Generate input files for alignmenttest in ./testdata/permutations/ containing some or all permutations of 3 sets of 5 lines.\n\n' + + 'Everything is based on a default set of 5 different lines: aaa, bbb, ccc, ddd and eee.\n' + + 'For the base file each line will be either equal to the default set or removed.\n' + + 'For contributor 1 each line will either be equal to the default set, different than the default set (\'xxx\' prepended) or removed.\n' + + 'For contributor 2 each line will either be equal to the default set, equal to contributor 1, different (\'yyy\' prepended) or removed.\n' + + 'This results in %d possible permutations. The -r option can be used to make a smaller \'random\' selection (the same seed is used each time).' % (len(options) ** len(defaultlines))) + +parser.add_argument('-r', metavar='num', nargs='?', type=int, default=len(options), const=len(options), + help='instead of generating all %d permutations for each line, generate randomly chosen ones. The number of test cases will become num^5.' % len(options)) +parser.add_argument('-s', metavar='num', nargs='?', type=int, default=0, const=0, + help='specify the seed to use for the random number generator (default=0). This only makes sense when the -r option is specified.') +args = parser.parse_args() + +if not os.path.exists(dirname): + os.makedirs(dirname) + +print 'Generating input files in %s ...' % dirname +sys.stdout.flush() + +random.seed(args.s) +permutations(args.r, len(defaultlines), []) + +print 'Input files generated.' +print '' +print 'To create a reference set of expected_result.txt files, run alignmenttest and copy/move all %s/*_actual_result.txt files to %s/*_expected_result.txt:' % (dirname, dirname) +print ' ./alignmenttest > /dev/null' +print ' cd %s' % dirname +print ' for file in *_actual_result.txt; do mv ${file} ${file/actual/expected}; done' +print 'If you\'ve already modified the algorithm, you can run the alignment test of an older version of kdiff3 and copy those result files over' diff --git a/test/testdata/1_simpletest_base.txt b/test/testdata/1_simpletest_base.txt new file mode 100644 index 0000000..cfe6960 --- /dev/null +++ b/test/testdata/1_simpletest_base.txt @@ -0,0 +1,2 @@ +same everywhere + diff --git a/test/testdata/1_simpletest_contrib1.txt b/test/testdata/1_simpletest_contrib1.txt new file mode 100644 index 0000000..9b11be5 --- /dev/null +++ b/test/testdata/1_simpletest_contrib1.txt @@ -0,0 +1,6 @@ +same in b and c +only in b +again same in b and c +same in b and c except for space +same everywhere + diff --git a/test/testdata/1_simpletest_contrib2.txt b/test/testdata/1_simpletest_contrib2.txt new file mode 100644 index 0000000..61afd81 --- /dev/null +++ b/test/testdata/1_simpletest_contrib2.txt @@ -0,0 +1,5 @@ +same in b and c +again same in b and c +same in b and c except for space +same everywhere + diff --git a/test/testdata/1_simpletest_expected_result.txt b/test/testdata/1_simpletest_expected_result.txt new file mode 100644 index 0000000..609d069 --- /dev/null +++ b/test/testdata/1_simpletest_expected_result.txt @@ -0,0 +1,7 @@ +-1 0 0 +-1 1 -1 +-1 2 1 +-1 3 2 +0 4 3 +1 5 4 +2 6 5 diff --git a/test/testdata/2_prefer_identical_to_space_differences_base.txt b/test/testdata/2_prefer_identical_to_space_differences_base.txt new file mode 100644 index 0000000..cdfc83c --- /dev/null +++ b/test/testdata/2_prefer_identical_to_space_differences_base.txt @@ -0,0 +1,2 @@ +aaa + diff --git a/test/testdata/2_prefer_identical_to_space_differences_contrib1.txt b/test/testdata/2_prefer_identical_to_space_differences_contrib1.txt new file mode 100644 index 0000000..186af72 --- /dev/null +++ b/test/testdata/2_prefer_identical_to_space_differences_contrib1.txt @@ -0,0 +1,3 @@ +bbb + aaa + diff --git a/test/testdata/2_prefer_identical_to_space_differences_contrib2.txt b/test/testdata/2_prefer_identical_to_space_differences_contrib2.txt new file mode 100644 index 0000000..a49a514 --- /dev/null +++ b/test/testdata/2_prefer_identical_to_space_differences_contrib2.txt @@ -0,0 +1,3 @@ +aaa + aaa + diff --git a/test/testdata/2_prefer_identical_to_space_differences_expected_result.txt b/test/testdata/2_prefer_identical_to_space_differences_expected_result.txt new file mode 100644 index 0000000..a131bb6 --- /dev/null +++ b/test/testdata/2_prefer_identical_to_space_differences_expected_result.txt @@ -0,0 +1,4 @@ +0 0 0 +-1 1 1 +1 2 2 +2 3 3 diff --git a/test/testdata/README b/test/testdata/README new file mode 100644 index 0000000..cbd6a9a --- /dev/null +++ b/test/testdata/README @@ -0,0 +1,43 @@ +Adding test cases +----------------- + +Each test case consists of 4 files: three files with input data and one +file that contains the expected vertical alignment chosen by kdiff3. + +Test data files should follow this naming convention: + *_base.* + *_contrib1.* + *_contrib2.* + *_expected_result.* + +The test automatically detects files that follow this convention and executes the +test on these sets of files in alphabetical order. + + +Specifying expected alignment +----------------------------- + +Each line in the alignment file corresponds to a line in the diff view of +kdiff3 and consists of the three line numbers from files A, B and C that are +put on that line in the diff view. + +So for instance if file A contains two lines, file B is empty and file C +contains one line that is the same as the second line in A, kdiff3 may align +them like this in the diff view: + +A: B: C: +something +something else something else + +An alignment file for this alignment would look like this: +1 -1 -1 +2 -1 1 + +As you can see -1 is used to indicate that a line in the diff view does not +contain a line from the input file. + + +-- +Maurice van der Pot +griffon26@kfk4ever.com + diff --git a/windows_installer/COPYING.txt b/windows_installer/COPYING.txt new file mode 100644 index 0000000..3f96206 --- /dev/null +++ b/windows_installer/COPYING.txt @@ -0,0 +1,323 @@ +This package contains + +KDiff3 : Copyright (C) 2002-2006 Joachim Eibl + License: GNU-General Public License (see below) + +Diff-Ext-For-KDiff3 : Copyright (c) 2003-2006, Sergey Zorin + Extensions for KDiff3 by Joachim Eibl + License: See bottom + +---------------------------------------------------------------------- + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 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 + +(End of GNU-General Public License) + +------------------------------------------------------------------------ + +Diff-Ext-License: + +Diff-Ext: Copyright (c) 2003-2006, Sergey Zorin + All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/windows_installer/DIFF-EXT-LICENSE.txt b/windows_installer/DIFF-EXT-LICENSE.txt new file mode 100644 index 0000000..c05a18d --- /dev/null +++ b/windows_installer/DIFF-EXT-LICENSE.txt @@ -0,0 +1,25 @@ +Diff-Ext: Copyright (c) 2003-2006, Sergey Zorin + All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + 1. Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/windows_installer/Kdiff3-64bit.nsi b/windows_installer/Kdiff3-64bit.nsi new file mode 100644 index 0000000..17a1cf6 --- /dev/null +++ b/windows_installer/Kdiff3-64bit.nsi @@ -0,0 +1,3 @@ +!define KDIFF3_64BIT + +!include "Kdiff3.nsi" diff --git a/windows_installer/README b/windows_installer/README new file mode 100644 index 0000000..5a9fd89 --- /dev/null +++ b/windows_installer/README @@ -0,0 +1,9 @@ +This directory contains the files needed to create the windows installer. + +Note that files that are created by some process are omitted here. +These are: +kdiff3.exe (compiler output) +kdiff3*.qm-files (translation output, see po-directory) +qt*.qm-files (translation files that come with Qt) +Changelog.txt (../Changelog converted to dos) +COPYING (../COPYING converted to dos) \ No newline at end of file diff --git a/windows_installer/README_WIN.txt b/windows_installer/README_WIN.txt new file mode 100644 index 0000000..5cdc0ca --- /dev/null +++ b/windows_installer/README_WIN.txt @@ -0,0 +1,123 @@ +KDiff3-Readme for Windows +========================= + +Author: Joachim Eibl (joachim.eibl@gmx.de) +Copyright: (C) 2002-2009 by Joachim Eibl +KDiff3-Version: 0.9.93 +Homepage: http://kdiff3.sourceforge.net + +KDiff3 is a program that +- compares and merges two or three input files or directories, +- shows the differences line by line and character by character (!), +- provides an automatic merge-facility and +- an integrated editor for comfortable solving of merge-conflicts +- and has an intuitive graphical user interface. + +Now KDiff3-strings are translated into some languages by the KDE-I18N-team. +(*.qm-files in the KDiff3-directory) + +See the Changelog.txt for a list of fixed bugs and new features. + + +Windows-specific information for the precompiled KDiff3 version: +================================================================ + +This executable is provided for the convenience of users who don't have a +compiler at hand. + +You may redistribute it under the terms of the GNU GENERAL PUBLIC LICENCE. + +Note that there is NO WARRANTY for this program. + +Installation: +- The installer was initially created by Sebastien Fricker (sebastien.fricker@web.de). + It is based on the Nullsoft Scriptable Install System (http://nsis.sourceforge.net) + +- You can place the directory where you want it. But don't separate the file + kdiff3.exe from the others, since they are needed for correct execution. + (Using kdiff3.exe standalone is possible except for translations and help.) + +- Integration with WinCVS: When selected the installer sets KDiff3 to be the + default diff-tool for WinCVS if available. + Registry HKEY_CURRENT_USER\Software\WinCvs\wincvs\CVS settings: "P_Extdiff" and "P_DiffUseExtDiff" + +- Integration with TortoiseSVN: When selected the installer sets KDiff3 to be the + default diff-tool for TortoiseSVN if available. + Registry HKEY_CURRENT_USER\Software\TortoiseSVN: "Diff" and "Merge" + +- Integration with Explorer (1): When selected KDiff3 will be added to the "Send To" + menu in the context menu. If you then select two files or two directories and + choose "Send To"->"KDiff3" then KDiff3 will start and compare the specified files. + +- Integration with Explorer (2): When selected Diff-Ext-For-KDiff3 will be installed. + This is a Shell-Extension which adds an entry "KDiff3" into the context menu of + Windows Explorer. (e.g. when right-clicking a file or directory) With this it + is possible to select files and directories sequentially and in separate directories + for comparison with KDiff3. This is based on Diff-Ext by Sergey Zorin + (http://diff-ext.sourceforge.net) with extensions for KDiff3 by Joachim Eibl. + This extension is not under GPL but under a BSD-style licence. (See file DIFF-EXT-LICENSE.txt.) + +- SVN Merge Tool: Allows to use KDiff3 for explicit graphical merges with Subversion. + This installation option copies a file diff3_cmd.bat into your Application Data subdirectory. + (C:\Documents and Settings\Username\Application Data\Subversion\diff3_cmd.bat) + (Installation is disabled by default) + +Since this program was actually developed for GNU/Linux, there might be Windows +specific problems I don't know of yet. Please write me about problems you encounter. + +Known bugs: +- Links are not handled correctly. (This is because links in Windows are not + the same as under Un*x-filesystems.) + +Licence: + GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 + 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 + + For details see file "COPYING". + +Exception from the GPL: + As a special exception, the copyright holder Joachim Eibl gives permission + to link this program with the Qt-library (commercial or non-commercial edition) + from Trolltech (www.trolltech.com), and he permits to distribute the resulting + executable, without including the source code for the Qt-library in the + source distribution. + + + +Start from commandline: +- Comparing 2 files: kdiff3 file1 file2 +- Merging 2 files: kdiff3 file1 file2 -o outputfile +- Comparing 3 files: kdiff3 file1 file2 file3 +- Merging 3 files: kdiff3 file1 file2 file3 -o outputfile + Note that file1 will be treated as base of file2 and file3. + +If all files have the same name but are in different directories, you can +reduce typework by specifying the filename only for the first file. E.g.: +- Comparing 3 files: kdiff3 dir1/filename dir2 dir3 +(This also works in the open-dialog.) + +- Comparing 2 directories: kdiff3 dir1 dir2 +- Merging 2 directories: kdiff3 dir1 dir2-o destinationdir +- Comparing 3 directories: kdiff3 dir1 dir2 dir3 +- Merging 3 directories: kdiff3 dir1 dir2 dir3 -o destinationdir +(Please read the documentation about comparing/merging directories, +especially before you start merging.) + +If you start without arguments, then a dialog will appear where you can +select your files and directories via a filebrowser. + +For more documentation, see the help-menu or the subdirectory doc. + +Have fun! diff --git a/windows_installer/diff3_cmd.bat b/windows_installer/diff3_cmd.bat new file mode 100644 index 0000000..72c78e0 --- /dev/null +++ b/windows_installer/diff3_cmd.bat @@ -0,0 +1,36 @@ +@ECHO OFF + +REM In file "c:\Documents and Settings\\Application +REM Data\Subversion\config" you can change that behavior by +REM modifying "diff3-cmd" line to call KDiff3 instead of +REM automatic merge. Well, you need a batch file actually (based on +REM http://svn.collab.net/repos/svn/trunk/contrib/client-side/diff3wrap.bat): + +REM Configure your favorite diff3/merge program here. +if exist "C:\Program Files\KDiff3" ( + SET DIFF3="C:\Program Files\KDiff3\kdiff3.exe" +) else ( + SET DIFF3="C:\Program Files (x86)\KDiff3\kdiff3.exe" +) + +REM Subversion provides the paths we need as the ninth, tenth, and eleventh +REM parameters. But we only have access to nine parameters at a time, so we +REM shift our nine-parameter window twice to let us get to what we need. +SHIFT +SHIFT +SET MINE=%7 +SET OLDER=%8 +SET YOURS=%9 + +REM Call the merge command (change the following line to make sense for +REM your merge program). +%DIFF3% %OLDER% %MINE% %YOURS% -o merged.txt + +REM After performing the merge, this script needs to print the contents +REM of the merged file to stdout. Do that in whatever way you see fit. +REM Return an errorcode of 0 on successful merge, 1 if unresolved conflicts +REM remain in the result. Any other errorcode will be treated as fatal. + +type merged.txt + +del merged.txt diff --git a/windows_installer/installForAllUsersPage.ini b/windows_installer/installForAllUsersPage.ini new file mode 100644 index 0000000..2c46272 --- /dev/null +++ b/windows_installer/installForAllUsersPage.ini @@ -0,0 +1,19 @@ +[Settings] +NumFields=2 + +[Field 1] +Type=label +Text=Install for all users or only for the current user? (Installing for all users requires admin rights.) +Left=0 +Right=-1 +Top=0 +Bottom=10 + +[Field 2] +Type=checkbox +Text=Install for all users +Left=0 +Right=-1 +Top=30 +Bottom=40 +State=1 \ No newline at end of file diff --git a/windows_installer/kdiff3.bmp b/windows_installer/kdiff3.bmp new file mode 100644 index 0000000..e69de29 diff --git a/windows_installer/kdiff3.nsi b/windows_installer/kdiff3.nsi new file mode 100644 index 0000000..b00be31 --- /dev/null +++ b/windows_installer/kdiff3.nsi @@ -0,0 +1,515 @@ +;KDiff3-NSIS configuration +;Based on Modern User Interface example files +;Apdapted for KDiff3 by Sebastien Fricker and Joachim Eibl +;Requires nsis_v2.19 + +!define KDIFF3_VERSION "1.08.70" +!define DIFF_EXT32_CLSID "{9F8528E4-AB20-456E-84E5-3CE69D8720F3}" +!define DIFF_EXT64_CLSID "{34471FFB-4002-438b-8952-E4588D0C0FE9}" + +!ifdef KDIFF3_64BIT + !define BITS 64 +!else + !define BITS 32 +!endif + +!define SetupFileName "KDiff3-${BITS}bit-Setup_${KDIFF3_VERSION}.exe" + +;-------------------------------- +;Include Modern UI + + !include "MUI.nsh" + !include "x64.nsh" + +;-------------------------------- +;General + + ;Name and file + Name "KDiff3" + OutFile ${SetupFileName} + + ;Default installation folder + !ifdef KDIFF3_64BIT + ;SetRegView 64 + InstallDir "$PROGRAMFILES64\KDiff3" + !else + InstallDir "$PROGRAMFILES\KDiff3" + !endif + ;Get installation folder from registry if available + InstallDirRegKey HKCU "Software\KDiff3" "" + + !addplugindir ".\nsisplugins" + +;-------------------------------- +;Variables + + Var MUI_TEMP + Var STARTMENU_FOLDER + Var DIFF_EXT_CLSID + Var DIFF_EXT_ID + Var DIFF_EXT_DLL + Var DIFF_EXT_OLD_DLL + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + !define MUI_HEADERIMAGE + !define MUI_HEADERIMAGE_BITMAP "kdiff3.bmp" ; optional + +;-------------------------------- +;Language Selection Dialog Settings + + ;Remember the installer language + !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" + !define MUI_LANGDLL_REGISTRY_KEY "Software\KDiff3" + !define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language" + +;-------------------------------- +;Pages + + ;!insertmacro MUI_PAGE_WELCOME + !insertmacro MUI_PAGE_LICENSE $(MUILicense) + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + Page custom CustomPageC + + ;Start Menu Folder Page Configuration + !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU" + !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\KDiff3" + !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder" + + !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER + + !insertmacro MUI_PAGE_INSTFILES + + !define MUI_FINISHPAGE_RUN KDiff3.exe + !define MUI_FINISHPAGE_RUN_NOTCHECKED + !define MUI_FINISHPAGE_SHOWREADME README_WIN.txt + !define MUI_FINISHPAGE_SHOWREADME_CHECKED + + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" # first language is the default language + !insertmacro MUI_LANGUAGE "French" + !insertmacro MUI_LANGUAGE "German" + !insertmacro MUI_LANGUAGE "Spanish" + !insertmacro MUI_LANGUAGE "SimpChinese" + !insertmacro MUI_LANGUAGE "TradChinese" + !insertmacro MUI_LANGUAGE "Japanese" + !insertmacro MUI_LANGUAGE "Korean" + !insertmacro MUI_LANGUAGE "Italian" + !insertmacro MUI_LANGUAGE "Dutch" + !insertmacro MUI_LANGUAGE "Danish" + !insertmacro MUI_LANGUAGE "Swedish" + !insertmacro MUI_LANGUAGE "Norwegian" + !insertmacro MUI_LANGUAGE "Finnish" + !insertmacro MUI_LANGUAGE "Greek" + !insertmacro MUI_LANGUAGE "Russian" + !insertmacro MUI_LANGUAGE "Portuguese" + !insertmacro MUI_LANGUAGE "PortugueseBR" + !insertmacro MUI_LANGUAGE "Polish" + !insertmacro MUI_LANGUAGE "Ukrainian" + !insertmacro MUI_LANGUAGE "Czech" + !insertmacro MUI_LANGUAGE "Slovak" + !insertmacro MUI_LANGUAGE "Croatian" + !insertmacro MUI_LANGUAGE "Bulgarian" + !insertmacro MUI_LANGUAGE "Hungarian" + !insertmacro MUI_LANGUAGE "Thai" + !insertmacro MUI_LANGUAGE "Romanian" + !insertmacro MUI_LANGUAGE "Latvian" + !insertmacro MUI_LANGUAGE "Macedonian" + !insertmacro MUI_LANGUAGE "Estonian" + !insertmacro MUI_LANGUAGE "Turkish" + !insertmacro MUI_LANGUAGE "Lithuanian" + !insertmacro MUI_LANGUAGE "Catalan" + !insertmacro MUI_LANGUAGE "Slovenian" + !insertmacro MUI_LANGUAGE "Serbian" + !insertmacro MUI_LANGUAGE "SerbianLatin" + !insertmacro MUI_LANGUAGE "Arabic" + !insertmacro MUI_LANGUAGE "Farsi" + !insertmacro MUI_LANGUAGE "Hebrew" + !insertmacro MUI_LANGUAGE "Indonesian" + !insertmacro MUI_LANGUAGE "Mongolian" + !insertmacro MUI_LANGUAGE "Luxembourgish" + !insertmacro MUI_LANGUAGE "Albanian" + !insertmacro MUI_LANGUAGE "Breton" + !insertmacro MUI_LANGUAGE "Belarusian" + !insertmacro MUI_LANGUAGE "Icelandic" + !insertmacro MUI_LANGUAGE "Malay" + !insertmacro MUI_LANGUAGE "Bosnian" + !insertmacro MUI_LANGUAGE "Kurdish" + +;-------------------------------- +;License Language String + + LicenseLangString MUILicense ${LANG_ENGLISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_FRENCH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_GERMAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_SPANISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_SIMPCHINESE} "COPYING.txt" + LicenseLangString MUILicense ${LANG_TRADCHINESE} "COPYING.txt" + LicenseLangString MUILicense ${LANG_JAPANESE} "COPYING.txt" + LicenseLangString MUILicense ${LANG_KOREAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_ITALIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_DUTCH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_DANISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_SWEDISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_NORWEGIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_FINNISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_GREEK} "COPYING.txt" + LicenseLangString MUILicense ${LANG_RUSSIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_PORTUGUESE} "COPYING.txt" + LicenseLangString MUILicense ${LANG_PORTUGUESEBR} "COPYING.txt" + LicenseLangString MUILicense ${LANG_POLISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_UKRAINIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_CZECH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_SLOVAK} "COPYING.txt" + LicenseLangString MUILicense ${LANG_CROATIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_BULGARIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_HUNGARIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_THAI} "COPYING.txt" + LicenseLangString MUILicense ${LANG_ROMANIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_LATVIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_MACEDONIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_ESTONIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_TURKISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_LITHUANIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_CATALAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_SLOVENIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_SERBIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_SERBIANLATIN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_ARABIC} "COPYING.txt" + LicenseLangString MUILicense ${LANG_FARSI} "COPYING.txt" + LicenseLangString MUILicense ${LANG_HEBREW} "COPYING.txt" + LicenseLangString MUILicense ${LANG_INDONESIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_MONGOLIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_LUXEMBOURGISH} "COPYING.txt" + LicenseLangString MUILicense ${LANG_ALBANIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_BRETON} "COPYING.txt" + LicenseLangString MUILicense ${LANG_BELARUSIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_ICELANDIC} "COPYING.txt" + LicenseLangString MUILicense ${LANG_MALAY} "COPYING.txt" + LicenseLangString MUILicense ${LANG_BOSNIAN} "COPYING.txt" + LicenseLangString MUILicense ${LANG_KURDISH} "COPYING.txt" + +;-------------------------------- +;Reserve Files + + ;These files should be inserted before other files in the data block + ;Keep these lines before any File command + ;Only for solid compression (by default, solid compression is enabled for BZIP2 and LZMA) + + !insertmacro MUI_RESERVEFILE_LANGDLL + ReserveFile "installForAllUsersPage.ini" + !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS + +;-------------------------------- +;Variables + + Var INSTALL_FOR_ALL_USERS + +;-------------------------------- +;Installer Sections + +Section "Software" SecSoftware +SectionIn RO + ;Read a value from an InstallOptions INI file + !insertmacro MUI_INSTALLOPTIONS_READ $INSTALL_FOR_ALL_USERS "installForAllUsersPage.ini" "Field 2" "State" + + ;Set ShellVarContext: Defines if SHCTX points to HKLM or HKCU + StrCmp $INSTALL_FOR_ALL_USERS "0" "" +3 + SetShellVarContext current + Goto +2 + SetShellVarContext all + + WriteRegStr HKCU "Software\KDiff3" "InstalledForAllUsers" "$INSTALL_FOR_ALL_USERS" + + ; Make the KDiff3 uninstaller visible via "System Settings: Add or Remove Programs", (Systemsteuerung/Software) + WriteRegStr SHCTX "Software\KDiff3" "" "$INSTDIR" + WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" "DisplayName" "KDiff3 (remove only)" + WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" "UninstallString" '"$INSTDIR\Uninstall.exe"' + + + SetOutPath "$INSTDIR" + + ;ADD YOUR OWN FILES HERE... + DetailPrint "Writing files" + File "${BITS}bit\kdiff3.exe" + File "${BITS}bit\kdiff3.exe.manifest" + File "${BITS}bit\qt.conf" + File "COPYING.txt" + File "Readme_Win.txt" + File "ChangeLog.txt" + SetOutPath "$INSTDIR\bin" + File /r "${BITS}bit\bin\*.*" + SetOutPath "$INSTDIR" + Delete "$INSTDIR\kdiff3-QT4.exe" + + ;Store installation folder + WriteRegStr HKCU "Software\KDiff3" "" $INSTDIR + + ;Create uninstaller + WriteUninstaller "$INSTDIR\Uninstall.exe" + + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + + ;Create shortcuts + CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\KDiff3.lnk" "$INSTDIR\kdiff3.exe" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Readme.lnk" "$INSTDIR\Readme_Win.txt" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\GPL.lnk" "$INSTDIR\Copying.txt" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninstall.exe" + CreateShortCut "$QUICKLAUNCH\KDiff3.lnk" "$INSTDIR\kdiff3.exe" + + !insertmacro MUI_STARTMENU_WRITE_END + +SectionEnd + +Section "Documentation" SecDocumentation + DetailPrint "Writing the documentation" + SetOutPath "$INSTDIR" + File /r doc + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Documentation.lnk" "$INSTDIR\doc\index.html" +SectionEnd + +Section "Translations" SecTranslations + DetailPrint "Writing the translation messages" + SetOutPath "$INSTDIR" + File /r translations +SectionEnd + +Section "Utilities" SecUtilities + DetailPrint "Writing the command line utilities (GNU sed, diff, diff3, etc.)" + SetOutPath "$INSTDIR\bin" + File /r "bin\*.*" +SectionEnd + +SubSection "Integration" SecIntegration + +Section "Explorer" SecIntegrationExplorer + DetailPrint "Integration to Explorer" +; WriteRegStr HKCR "Directory\shell\KDiff3" "" '&KDiff3' +; WriteRegStr HKCR "Directory\shell\KDiff3\command" "" '"$INSTDIR\kdiff3.exe" "%1"' + CreateShortCut "$SENDTO\KDiff3.lnk" '"$INSTDIR\kdiff3.exe"' +SectionEnd + +Section "Diff-Ext" SecIntegrationDiffExtForKDiff3 + DetailPrint "Diff-Ext for KDiff3" + SetOutPath "$INSTDIR" +${If} ${RunningX64} + StrCpy $DIFF_EXT_CLSID ${DIFF_EXT64_CLSID} + StrCpy $DIFF_EXT_DLL "diff_ext_for_kdiff3_64.dll" + StrCpy $DIFF_EXT_OLD_DLL "diff_ext_for_kdiff3_64_old.dll" + StrCpy $DIFF_EXT_ID "diff-ext-for-kdiff3-64" + IfFileExists "$INSTDIR\$DIFF_EXT_OLD_DLL" 0 +2 + Delete "$INSTDIR\$DIFF_EXT_OLD_DLL" + + IfFileExists "$INSTDIR\$DIFF_EXT_DLL" 0 +2 + Rename "$INSTDIR\$DIFF_EXT_DLL" "$INSTDIR\$DIFF_EXT_OLD_DLL" + File "64bit\diff_ext_for_kdiff3_64.dll" + + SetRegView 64 + + WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID" "" "$DIFF_EXT_ID" + WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "" "$INSTDIR\$DIFF_EXT_DLL" + WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "ThreadingModel" "Apartment" + WriteRegStr SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\$DIFF_EXT_ID" "" "$DIFF_EXT_CLSID" + WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID" "$DIFF_EXT_ID" + WriteRegStr SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\$DIFF_EXT_ID" "" "$DIFF_EXT_CLSID" + WriteRegStr SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\$DIFF_EXT_ID" "" "$DIFF_EXT_CLSID" + + SetRegView 32 + +${EndIf} + StrCpy $DIFF_EXT_CLSID ${DIFF_EXT32_CLSID} + StrCpy $DIFF_EXT_DLL "diff_ext_for_kdiff3.dll" + StrCpy $DIFF_EXT_OLD_DLL "diff_ext_for_kdiff3_old.dll" + StrCpy $DIFF_EXT_ID "diff-ext-for-kdiff3" + + IfFileExists "$INSTDIR\$DIFF_EXT_OLD_DLL" 0 +2 + Delete "$INSTDIR\$DIFF_EXT_OLD_DLL" + + IfFileExists "$INSTDIR\$DIFF_EXT_DLL" 0 +2 + Rename "$INSTDIR\$DIFF_EXT_DLL" "$INSTDIR\$DIFF_EXT_OLD_DLL" + + File "32bit\diff_ext_for_kdiff3.dll" + + SetRegView 64 + + WriteRegStr HKCU "Software\KDiff3\diff-ext" "" "" + WriteRegStr SHCTX "Software\KDiff3\diff-ext" "InstallDir" "$INSTDIR" + WriteRegStr SHCTX "Software\KDiff3\diff-ext" "diffcommand" "$INSTDIR\kdiff3.exe" + + SetRegView 32 + + WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID" "" "$DIFF_EXT_ID" + WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "" "$INSTDIR\$DIFF_EXT_DLL" + WriteRegStr SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID\InProcServer32" "ThreadingModel" "Apartment" + WriteRegStr SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\$DIFF_EXT_ID" "" "$DIFF_EXT_CLSID" + WriteRegStr SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID" "$DIFF_EXT_ID" + WriteRegStr SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\$DIFF_EXT_ID" "" "$DIFF_EXT_CLSID" + WriteRegStr SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\$DIFF_EXT_ID" "" "$DIFF_EXT_CLSID" + + + File "DIFF-EXT-LICENSE.txt" + CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Diff-Ext License.lnk" "$INSTDIR\DIFF-EXT-LICENSE.txt" + +SectionEnd + +Section "WinCVS" SecIntegrationWinCVS + DetailPrint "Integration to WinCVS" + #MessageBox MB_OK "If WinCVS is running, please close it before proceeding." + WriteRegStr HKCU "Software\WinCvs\wincvs\CVS settings" "P_Extdiff" '$INSTDIR\kdiff3.exe' + WriteRegBin HKCU "Software\WinCvs\wincvs\CVS settings" "P_DiffUseExtDiff" 01 +SectionEnd + +Section "TortoiseSVN" SecIntegrationTortoiseSVN + DetailPrint "Integration to TortoiseSVN" + WriteRegStr HKCU "Software\TortoiseSVN\" "Diff" '$INSTDIR\kdiff3.exe %base %mine --L1 Base --L2 Mine' + WriteRegStr HKCU "Software\TortoiseSVN\" "Merge" '$INSTDIR\kdiff3.exe %base %mine %theirs -o %merged --L1 Base --L2 Mine --L3 Theirs' +SectionEnd + +Section /o "SVN Merge tool" SecIntegrationSubversionDiff3Cmd + DetailPrint "Integrate diff3_cmd.bat for Subversion" + File "diff3_cmd.bat" + CreateDirectory '$APPDATA\Subversion' + CopyFiles '$INSTDIR\diff3_cmd.bat' '$APPDATA\Subversion' +SectionEnd + +SubSectionEnd + +;-------------------------------- +;Installer Functions + +Function .onInit + + !insertmacro MUI_LANGDLL_DISPLAY + !insertmacro MUI_INSTALLOPTIONS_EXTRACT "installForAllUsersPage.ini" + +FunctionEnd + +Function CustomPageC + + !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)" + !insertmacro MUI_INSTALLOPTIONS_DISPLAY "installForAllUsersPage.ini" + +FunctionEnd + + +;-------------------------------- +;Descriptions + + ;USE A LANGUAGE STRING IF YOU WANT YOUR DESCRIPTIONS TO BE LANGUAGE SPECIFIC + + ;Assign descriptions to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecSoftware} "Main program." + !insertmacro MUI_DESCRIPTION_TEXT ${SecDocumentation} "English documentation in HTML-format (Docs for other languages are available on the homepage.)" + !insertmacro MUI_DESCRIPTION_TEXT ${SecTranslations} "Translations for visible strings in many languages. Not needed for US-English." + !insertmacro MUI_DESCRIPTION_TEXT ${SecUtilities} "Command Line Utilities: GNU sed, diff, diff3, etc. precompiled for Windows" + !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegration} "Integrate KDiff3 with certain programs. (See also the Readme for details.)" + !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationExplorer} "Integrate KDiff3 with Explorer. Adds an entry for KDiff3 in the Send-To context menu." + !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationDiffExtForKDiff3} "Installs Diff-Ext by Sergey Zorin. Adds entries for KDiff3 in Explorer context menu." + !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationWinCVS} "Integrate KDiff3 with WinCVS. (Please close WinCVS before proceeding.)" + !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationTortoiseSVN} "Integrate KDiff3 with TortoiseSVN." + !insertmacro MUI_DESCRIPTION_TEXT ${SecIntegrationSubversionDiff3Cmd} "Install diff3_cmd.bat for Subversion merge" + !insertmacro MUI_FUNCTION_DESCRIPTION_END + + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + ReadRegStr $INSTALL_FOR_ALL_USERS HKCU "Software\KDiff3" "InstalledForAllUsers" + ;Set ShellVarContext: Defines if SHCTX points to HKLM or HKCU + StrCmp $INSTALL_FOR_ALL_USERS "0" "" +3 + SetShellVarContext current + Goto +2 + SetShellVarContext all + + Delete "$INSTDIR\Uninstall.exe" + Delete "$INSTDIR\kdiff3.exe" + Delete "$INSTDIR\kdiff3.exe.manifest" + Delete "$INSTDIR\qt.conf" + Delete "$INSTDIR\COPYING.txt" + Delete "$INSTDIR\Readme_Win.txt" + Delete "$INSTDIR\ChangeLog.txt" + Delete "$INSTDIR\diff_ext_for_kdiff3.dll" + Delete "$INSTDIR\diff_ext_for_kdiff3_old.dll" + Delete "$INSTDIR\diff_ext_for_kdiff3_64.dll" + Delete "$INSTDIR\diff_ext_for_kdiff3_64_old.dll" + Delete "$INSTDIR\DIFF-EXT-LICENSE.txt" + + RMDir /r "$INSTDIR\doc" + RMDir /r "$INSTDIR\translations" + RMDir /r "$INSTDIR\bin" + RMDir "$INSTDIR" # without /r the dir is only removed if completely empty + + !insertmacro MUI_STARTMENU_GETFOLDER Application $MUI_TEMP + + Delete "$SMPROGRAMS\$MUI_TEMP\Uninstall.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\KDiff3.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\KDiff3-Qt4.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Readme.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\GPL.lnk" + Delete "$SMPROGRAMS\$MUI_TEMP\Diff-Ext License.lnk" + + Delete "$SMPROGRAMS\$MUI_TEMP\Documentation.lnk" + Delete "$QUICKLAUNCH\KDiff3.lnk" + Delete "$SENDTO\KDiff3.lnk" + + ;Delete empty start menu parent diretories + StrCpy $MUI_TEMP "$SMPROGRAMS\$MUI_TEMP" + + startMenuDeleteLoop: + ClearErrors + RMDir $MUI_TEMP + GetFullPathName $MUI_TEMP "$MUI_TEMP\.." + + IfErrors startMenuDeleteLoopDone + + StrCmp $MUI_TEMP $SMPROGRAMS startMenuDeleteLoopDone startMenuDeleteLoop + startMenuDeleteLoopDone: + + DeleteRegKey HKCU "Software\KDiff3" + DeleteRegKey SHCTX "Software\KDiff3" + DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\KDiff3" + + ; diff_ext_for_kdiff3 +${If} ${RunningX64} + StrCpy $DIFF_EXT_CLSID ${DIFF_EXT64_CLSID} + StrCpy $DIFF_EXT_ID "diff-ext-for-kdiff3-64" + SetRegView 64 + DeleteRegKey SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID" + DeleteRegKey SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\$DIFF_EXT_ID" + DeleteRegKey SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\$DIFF_EXT_ID" + DeleteRegKey SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\$DIFF_EXT_ID" + DeleteRegValue SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID" + SetRegView 32 +${EndIf} + + StrCpy $DIFF_EXT_CLSID ${DIFF_EXT32_CLSID} + StrCpy $DIFF_EXT_ID "diff-ext-for-kdiff3" + DeleteRegKey SHCTX "Software\Classes\CLSID\$DIFF_EXT_CLSID" + DeleteRegKey SHCTX "Software\Classes\*\shellex\ContextMenuHandlers\$DIFF_EXT_ID" + DeleteRegKey SHCTX "Software\Classes\Folder\shellex\ContextMenuHandlers\$DIFF_EXT_ID" + DeleteRegKey SHCTX "Software\Classes\Directory\shellex\ContextMenuHandlers\$DIFF_EXT_ID" + DeleteRegValue SHCTX "Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved" "$DIFF_EXT_CLSID" + +SectionEnd + +;-------------------------------- +;Uninstaller Functions + +Function un.onInit + + !insertmacro MUI_UNGETLANGUAGE + +FunctionEnd -- 2.30.2